Modal卷管理器
STDIO用于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.