Skip to main content
Glama

Modal MCP Server

Servidor MCP (Model Context Protocol) que conecta agentes de IA (como o Google Antigravity) à infraestrutura da Modal.com, permitindo gerenciar deployments, apps, containers, volumes, secrets e ambientes via ferramentas MCP.

Arquitetura

O projeto usa o SDK oficial do MCP para expor comandos da CLI modal como ferramentas MCP. A comunicação é feita via stdio (StdioServerTransport), ideal para integração com agentes que suportam subprocessos MCP.

Agente de IA (ex: Antigravity)
        |
    [MCP - stdio]
        |
Modal MCP Server (Node.js)
        |
    [CLI: modal]
        |
    Modal.com API

Related MCP server: Modal MCP Server

Estrutura do Projeto

modal-mcp/
├── build/                      # Código compilado (TypeScript → JavaScript)
│   ├── index.js
│   ├── tools/
│   │   ├── deploy.js
│   │   ├── container.js
│   │   ├── volume.js
│   │   ├── secret.js
│   │   ├── app.js
│   │   └── environment.js
│   └── utils/
│       └── exec.js
├── src/                        # Código-fonte TypeScript
│   ├── index.ts                # Entry point do servidor MCP
│   ├── tools/                  # Módulos de ferramentas MCP
│   │   ├── deploy.ts           # Deploy e execução de apps
│   │   ├── container.ts        # Gerenciamento de containers
│   │   ├── volume.ts           # Gerenciamento de volumes persistentes
│   │   ├── secret.ts           # Gerenciamento de secrets
│   │   ├── app.ts              # Gerenciamento de apps
│   │   └── environment.ts      # Gerenciamento de ambientes
│   └── utils/
│       └── exec.ts             # Utilitário de execução da CLI modal
├── package.json
├── tsconfig.json
└── README.md

Pré-requisitos

  • Node.js 18+

  • Conta no Modal.com e token de autenticação configurado (modal token set)

  • CLI do Modal instalada (pip install modal ou modal disponível no PATH)

Instalação

npm install
npm run build

Uso

Iniciar o servidor

npm start
# ou diretamente:
node build/index.js

O servidor escuta comandos MCP via stdin/stdout e se comunica com seu agente de IA.

Integração com Antigravity (opencode.json)

Exemplo de configuração no seu opencode.json para conectar o agente do Google Antigravity ao Modal MCP Server:

{
  "antigravityAgents": {
    "meu-agente": {
      "mcpServers": {
        "modal": {
          "command": "node",
          "args": ["caminho/para/modal-mcp/build/index.js"]
        }
      }
    }
  }
}

Ferramentas MCP Disponíveis

Deploy & Run

Ferramenta

Descrição

modal_deploy

Deploy de uma aplicação Modal a partir de um script Python

modal_run

Execução de função ou entrypoint local no Modal

App Management

Ferramenta

Descrição

modal_app_list

Lista apps em execução, deployed ou parados

modal_app_history

Histórico de deploys de um app

modal_app_logs

Logs de um app

modal_app_stop

Para permanentemente um app

modal_app_rollback

Redeploy de versão anterior

modal_app_rollover

Redeploy sem mudanças de código (novos containers)

Container Management

Ferramenta

Descrição

modal_container_list

Lista containers em execução

modal_container_exec

Executa comando dentro de um container

modal_container_logs

Logs de um container específico

modal_container_stop

Termina um container

Volume Management

Ferramenta

Descrição

modal_volume_list

Lista volumes

modal_volume_create

Cria um volume persistente

modal_volume_delete

Deleta um volume

modal_volume_ls

Lista arquivos/diretórios dentro de um volume

modal_volume_put

Upload de arquivo/diretório para um volume

modal_volume_get

Download de arquivos de um volume

modal_volume_rm

Remove arquivo/diretório de um volume

modal_volume_rename

Renomeia um volume

Secret Management

Ferramenta

Descrição

modal_secret_list

Lista secrets publicados

modal_secret_create

Cria um novo secret

modal_secret_delete

Deleta um secret

Environment Management

Ferramenta

Descrição

modal_env_list

Lista ambientes do workspace

modal_env_create

Cria um novo ambiente

modal_env_delete

Deleta um ambiente

modal_env_update

Atualiza configurações de ambiente

modal_env_members_list

Lista membros de ambiente restrito

modal_env_members_update

Adiciona/atualiza papel de membro

modal_env_members_remove

Remove membro de ambiente restrito

Fluxo de Funcionamento

  1. O agente de IA (ex: Google Antigravity) envia requisições MCP via stdio

  2. O servidor MCP recebe a requisição e identifica qual ferramenta foi chamada

  3. A ferramenta monta o comando modal <subcomando> apropriado

  4. O comando é executado via child_process.exec

  5. O stdout do comando é retornado como resposta MCP

Scripts

Comando

Descrição

npm run build

Compila TypeScript para JavaScript (tsc)

npm run dev

Compila em modo watch (tsc -w)

npm start

Inicia o servidor MCP

Available Tools

30 tools

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 30 tool updatesv1.0.0
    • First observedmodal_app_history
    • First observedmodal_app_list
    • First observedmodal_app_logs
    • First observedmodal_app_rollback
    • First observedmodal_app_rollover
    • First observedmodal_app_stop
    • First observedmodal_container_exec
    • First observedmodal_container_list
    • First observedmodal_container_logs
    • First observedmodal_container_stop
    • First observedmodal_deploy
    • First observedmodal_env_create
    • First observedmodal_env_delete
    • First observedmodal_env_list
    • First observedmodal_env_members_list
    • First observedmodal_env_members_remove
    • First observedmodal_env_members_update
    • First observedmodal_env_update
    • First observedmodal_run
    • First observedmodal_secret_create
    • First observedmodal_secret_delete
    • First observedmodal_secret_list
    • First observedmodal_volume_create
    • First observedmodal_volume_delete
    • First observedmodal_volume_get
    • First observedmodal_volume_list
    • First observedmodal_volume_ls
    • First observedmodal_volume_put
    • First observedmodal_volume_rename
    • First observedmodal_volume_rm

TDQS

B3.2/5.0

Scored across 30 tools

Disambiguation5/5

Each tool targets a distinct resource and action, with no overlapping purposes. The few similar operations (e.g., app_stop vs. container_stop) are clearly differentiated by resource scope and descriptions.

Naming Consistency4/5

The predominant pattern modal_<resource>_<action> is consistent across most tools. Two tools (modal_deploy, modal_run) omit the resource prefix, causing minor deviation, but the overall scheme remains predictable and readable.

Tool Count3/5

With 30 tools, the set is above the ideal 3-15 range and falls into the heavy category. However, the broad scope of Modal (environments, apps, secrets, volumes, containers, deployments) justifies the number, even though it feels dense.

Completeness4/5

The tool surface covers most lifecycle operations for each resource: environments have full CRUD, apps have management and deployment actions, volumes include file operations, and containers have exec/logs/stop. A notable gap is the lack of a secret update operation, but agents can work around by deleting and recreating.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers