Modal
STDIO用于与Modal卷交互和部署Modal应用的服务器
用于与Modal卷交互和部署Modal应用的服务器
An MCP server implementation for interacting with Modal volumes and deploying Modal applications from within Cursor.
git clone https://github.com/smehmood/modal-mcp-server.git cd modal-mcp-server
uv:uv sync
To use this MCP server in Cursor, add the following configuration to your ~/.cursor/mcp.json:
{ "mcpServers": { "modal-mcp-server": { "command": "uv", "args": [ "--project", "/path/to/modal-mcp-server", "run", "/path/to/modal-mcp-server/src/modal_mcp/server.py" ] } } }
Replace /path/to/modal-mcp-server with the absolute path to your cloned repository.
uv package manageruv for dependency managementList Modal Volumes (list_modal_volumes)
List Volume Contents (list_modal_volume_contents)
volume_name: Name of the Modal volumepath: Path within volume (default: "/")Copy Files (copy_modal_volume_files)
volume_name: Name of the Modal volumepaths: List of paths where last path is destination["source.txt", "dest.txt"] or ["file1.txt", "file2.txt", "dest_dir/"]Remove Files (remove_modal_volume_file)
volume_name: Name of the Modal volumeremote_path: Path to file/directory to deleterecursive: Boolean flag for recursive deletion (default: false)Upload Files (put_modal_volume_file)
volume_name: Name of the Modal volumelocal_path: Path to local file/directory to uploadremote_path: Path in volume to upload to (default: "/")force: Boolean flag to overwrite existing files (default: false)Download Files (get_modal_volume_file)
volume_name: Name of the Modal volumeremote_path: Path to file/directory in volume to downloadlocal_destination: Local path to save downloaded files (default: current directory)force: Boolean flag to overwrite existing files (default: false)local_destination to write file contents to stdoutdeploy_modal_app)
absolute_path_to_app: Absolute path to the Modal application fileuv for dependency managementmodal CLI installed in its virtual environmentAll tools return responses in a standardized format, with slight variations depending on the operation type:
# JSON operations (list volumes, list contents): { "success": True, "data": {...} # JSON data from Modal CLI } # File operations (put, get, copy, remove): { "success": True, "message": "Operation successful message", "command": "executed command string", "stdout": "command output", # if any "stderr": "error output" # if any } # Error case (all operations): { "success": False, "error": "Error message describing what went wrong", "command": "executed command string", # for file operations "stdout": "command output", # if available "stderr": "error output" # if available }
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.