deploy_modal_appLABSCO SUMMARY
Log search with context is the tool you'll actually reach for.
Deploy and run are the headline, but the one that changes a debugging session is search_modal_logs: it pulls the logs once and greps them locally, so you get surrounding lines, regex and match counts rather than the bare matching line the CLI's own search returns. The repository is candid that a few tools are escalation paths — deploy_modal_app, put_modal_volume_file, exec_modal_container — and says to keep them behind your client's approval prompts.
What it is
A server that drives the Modal platform — apps, containers, volumes and secrets — by shelling out to your local modal CLI. Because it uses whatever profile is already configured in ~/.modal.toml, there is no second set of credentials to issue or rotate.
What you get
- 26 tools grouped by area, most of them taking an optional
envargument to target a specific Modal environment deploy_modal_appdeploys an app and returns live, shareable endpointurls;run_modal_appruns one function or entrypoint and streams the outputget_modal_app_logsandget_modal_container_logsfetch or follow logs withsince,until,tail,search,sourceandtimestampssearch_modal_logsgreps an app's or container's logs and returns each hit withcontext_linesaround it (default 3), plus amatch_count— regex, case control and anexcludefilter included- Containers:
list_modal_containers,exec_modal_container,stop_modal_container - Volumes:
list_modal_volumes,list_modal_volume_contents,copy_modal_volume_files,put_modal_volume_file,get_modal_volume_file,remove_modal_volume_file, pluscreate_modal_volume,rename_modal_volume,delete_modal_volume - Secrets and discovery:
list_modal_secrets,create_modal_secret(values redacted from the echoed command),delete_modal_secret,get_modal_profile,list_modal_environments
Requirements
Python 3.11 or higher, uv for uvx, and the Modal CLI 1.x already authenticated — run modal setup if not. Run it as uvx mcp-modal (PyPI package mcp-modal, version 0.2.4, stdio transport). Deploy and run support additionally requires the target project to use uv with modal installed in its virtualenv. Optionally set MCP_MODAL_ALLOWED_LOCAL_PATHS to a list of directories; the two volume tools that touch local files then refuse any path outside them.
Setup effort
One command plus credentials — uvx mcp-modal, then supply credentials
USE CASES
Shipping an app and getting a URL back
Deploy from a path and read the live endpoints out of the response.
Finding where a run went wrong
Grep the app's logs for the error and read the lines around each hit.
Rolling back a bad deploy
Read the deployment history, pick a version, and redeploy it.
Poking at a container that is misbehaving
List running containers, run a command inside one, then stop it.
Moving a file into a persistent volume
Upload it, list the directory to confirm, and read it back when needed.
26 tools
Listed in project docs. Your client may show a different list.
run_modal_applist_modal_appsget_modal_app_logsstop_modal_approllback_modal_appget_modal_app_historylist_modal_containersget_modal_container_logsexec_modal_containerstop_modal_containersearch_modal_logslist_modal_volumeslist_modal_volume_contentscopy_modal_volume_filesremove_modal_volume_fileput_modal_volume_fileget_modal_volume_filecreate_modal_volumedelete_modal_volumerename_modal_volumelist_modal_secretscreate_modal_secretdelete_modal_secretget_modal_profilelist_modal_environmentsBEFORE YOU INSTALL
What to know first
Tools you get
26 tools named in the project's documentation.
Requires
- uvx on PATH
- Python 3.11 or later
- Modal CLI 1.x configured with valid credentials (modal setup)
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
uvx mcp-modalMCP Clients
Claude Code
{
"mcpServers": {
"mcp-modal": {
"command": "uvx",
"args": [
"mcp-modal"
]
}
}
}