Skip to main content
Glama

Servidor MCP modal

Una implementación de servidor MCP para interactuar con volúmenes modales e implementar aplicaciones modales desde Cursor.

Instalación

  1. Clonar este repositorio:

git clone https://github.com/smehmood/modal-mcp-server.git
cd modal-mcp-server
  1. Instalar dependencias usando uv :

uv sync

Related MCP server: MCP Shell Server

Configuración

Para utilizar este servidor MCP en Cursor, agregue la siguiente configuración a su ~/.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"
      ]
    }
  }
}

Reemplace /path/to/modal-mcp-server con la ruta absoluta a su repositorio clonado.

Requisitos

  • Python 3.11 o superior

  • administrador de paquetes uv

  • CLI modal configurada con credenciales válidas

  • Para compatibilidad con implementación modal:

    • El proyecto que se está implementando debe usar uv para la gestión de dependencias

    • Modal debe estar instalado en el entorno virtual del proyecto.

Herramientas compatibles

Operaciones de volumen modal

  1. Lista de volúmenes modales ( list_modal_volumes )

    • Enumera todos los volúmenes modales en su entorno

    • Devuelve información de volumen en formato JSON

    • Parámetros: Ninguno

  2. Lista de contenidos del volumen ( list_modal_volume_contents )

    • Enumera archivos y directorios en un volumen modal

    • Parámetros:

      • volume_name : Nombre del volumen modal

      • path : Ruta dentro del volumen (predeterminado: "/")

  3. Copiar archivos ( copy_modal_volume_files )

    • Copia archivos dentro de un volumen modal

    • Parámetros:

      • volume_name : Nombre del volumen modal

      • paths : Lista de rutas donde la última ruta es el destino

    • Ejemplo: ["source.txt", "dest.txt"] o ["file1.txt", "file2.txt", "dest_dir/"]

  4. Eliminar archivos ( remove_modal_volume_file )

    • Elimina un archivo o directorio de un volumen modal

    • Parámetros:

      • volume_name : Nombre del volumen modal

      • remote_path : Ruta al archivo/directorio a eliminar

      • recursive : indicador booleano para eliminación recursiva (predeterminado: falso)

  5. Subir archivos ( put_modal_volume_file )

    • Carga un archivo o directorio a un volumen modal

    • Parámetros:

      • volume_name : Nombre del volumen modal

      • local_path : Ruta al archivo/directorio local para cargar

      • remote_path : Ruta en el volumen a cargar (predeterminado: "/")

      • force : indicador booleano para sobrescribir archivos existentes (predeterminado: falso)

  6. Descargar archivos ( get_modal_volume_file )

    • Descarga archivos de un volumen modal

    • Parámetros:

      • volume_name : Nombre del volumen modal

      • remote_path : Ruta al archivo/directorio en el volumen para descargar

      • local_destination : Ruta local para guardar los archivos descargados (predeterminado: directorio actual)

      • force : indicador booleano para sobrescribir archivos existentes (predeterminado: falso)

    • Nota: Utilice "-" como local_destination para escribir el contenido del archivo en la salida estándar

Despliegue modal

  1. Implementar aplicación modal ( deploy_modal_app )

    • Implementa una aplicación modal

    • Parámetros:

      • absolute_path_to_app : Ruta absoluta al archivo de la aplicación modal

    • Nota: El proyecto que contiene la aplicación Modal debe:

      • Utilice uv para la gestión de dependencias

      • Tener la CLI modal instalada en su entorno virtual

Formato de respuesta

Todas las herramientas devuelven respuestas en un formato estandarizado, con ligeras variaciones según el tipo de operación:

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

Contribuyendo

¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/smehmood/modal-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server