smehmood_modal_mcp_server

smehmood_modal_mcp_server

by smehmood
An MCP server implementation for managing Modal volumes and deploying Modal applications within Cursor.

Modal MCP Server for Cursor Integration

Overview

The Modal MCP Server is a specialized implementation designed to manage Modal applications and volumes directly from within the Cursor IDE. It provides a seamless way to interact with Modal's infrastructure, enabling developers to deploy applications, manage files, and perform volume operations without leaving their development environment.

Installation

  1. Clone this repository:
    shell git clone https://github.com/smehmood/modal-mcp-server.git cd modal-mcp-server
  2. Install dependencies using uv:
    shell uv sync

Configuration

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.

Requirements

  • Python 3.11 or higher
  • uv package manager
  • Modal CLI configured with valid credentials
  • For Modal deploy support:
  • Project being deployed must use uv for dependency management
  • Modal must be installed in the project's virtual environment

Supported Tools

Modal Volume Operations

  1. List Modal Volumes (list_modal_volumes)
  2. Lists all Modal volumes in your environment
  3. Returns JSON-formatted volume information
  4. Parameters: None

  5. List Volume Contents (list_modal_volume_contents)

  6. Lists files and directories in a Modal volume
  7. Parameters:

    • volume_name: Name of the Modal volume
    • path: Path within volume (default: "/")
  8. Copy Files (copy_modal_volume_files)

  9. Copies files within a Modal volume
  10. Parameters:
    • volume_name: Name of the Modal volume
    • paths: List of paths where last path is destination
  11. Example: ["source.txt", "dest.txt"] or ["file1.txt", "file2.txt", "dest_dir/"]

  12. Remove Files (remove_modal_volume_file)

  13. Deletes a file or directory from a Modal volume
  14. Parameters:

    • volume_name: Name of the Modal volume
    • remote_path: Path to file/directory to delete
    • recursive: Boolean flag for recursive deletion (default: false)
  15. Upload Files (put_modal_volume_file)

  16. Uploads a file or directory to a Modal volume
  17. Parameters:

    • volume_name: Name of the Modal volume
    • local_path: Path to local file/directory to upload
    • remote_path: Path in volume to upload to (default: "/")
    • force: Boolean flag to overwrite existing files (default: false)
  18. Download Files (get_modal_volume_file)

  19. Downloads files from a Modal volume
  20. Parameters:
    • volume_name: Name of the Modal volume
    • remote_path: Path to file/directory in volume to download
    • local_destination: Local path to save downloaded files (default: current directory)
    • force: Boolean flag to overwrite existing files (default: false)
  21. Note: Use "-" as local_destination to write file contents to stdout

Modal Deployment

  1. Deploy Modal App (deploy_modal_app)
  2. Deploys a Modal application
  3. Parameters:
    • absolute_path_to_app: Absolute path to the Modal application file
  4. Note: The project containing the Modal app must:
    • Use uv for dependency management
    • Have the modal CLI installed in its virtual environment

Response Format

All 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
}

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

MCP Server for managing Modal applications.

Features & Capabilities

Categories
mcp_server model_context_protocol python modal cursor api_integration deployment

Implementation Details

Stats

0 Views
0 Favorites
2 GitHub Stars

Repository Info

smehmood Organization

Similar Servers

continuedev_continue by continuedev
0
0
0