Skip to content

Cantila MCP server

Cantila publishes a remote MCP (Model Context Protocol) server. Add it once to Claude (Claude Code, the Claude app, Cowork, any MCP host) and every Claude surface gets cantila_deploy, cantila_provision_db, cantila_add_domain, and the rest of the Cantila toolset as native capabilities. Any project you build in Claude ships to Cantila by asking.

There's a marketing overview for the why; this is the how.

The MCP server is one of two ways Cantila connects to Claude. The other is to connect your Claude account so the Chat Deploy assistant reasons on your own subscription. They're independent — use either, both, or neither.

Mint an API key

Console → Settings → API keysCreate key. Pick a scope:

  • Account — every project, every domain, full surface.
  • Project — locked to one project. Best for repo-scoped agents.

Copy the key (ct_live_...) — Cantila hashes it on save, so it's only visible once.

Add to Claude Code

In your repo, create .mcp.json:

{
  "mcpServers": {
    "cantila": {
      "url": "https://api.cantila.app/v1/mcp",
      "headers": {
        "Authorization": "Bearer ${CANTILA_API_KEY}"
      }
    }
  }
}

Set CANTILA_API_KEY in your shell:

export CANTILA_API_KEY=ct_live_...

Restart Claude Code. The Cantila tools appear in the tool list — try /tools to confirm.

Add to Claude Desktop

Edit claude_desktop_config.json (location depends on OS — see Anthropic docs). Add:

{
  "mcpServers": {
    "cantila": {
      "command": "npx",
      "args": ["-y", "@cantila/mcp"],
      "env": {
        "CANTILA_API_KEY": "ct_live_..."
      }
    }
  }
}

Restart the app. The "Cantila" provider appears in the connectors list.

Add to Cowork / Claude.ai

The HTTP endpoint is hosted — paste it into Cowork or claude.ai's MCP connector:

URL:    https://api.cantila.app/v1/mcp
Auth:   Bearer ct_live_...

No local proxy needed.

The tool list

ToolWhat it does
cantila_deployShip a project (files or repo); return a live URL.
cantila_create_projectCreate a project — auto-wired services land on first deploy.
cantila_list_projectsList projects and their status.
cantila_get_logsFetch build and runtime logs.
cantila_set_envSet or update environment variables.
cantila_provision_dbCreate a managed DB and wire it.
cantila_add_domainAttach a domain and issue SSL.
cantila_scaleResize or scale a deployment.
cantila_statusReport health, services, domains, deploys.
cantila_connect_gitConnect a repo for push-to-deploy.
cantila_rollbackRoll back to a previous deployment.
cantila_agents_statusRead what the brain has decided, what's queued for review.

Plus backup tools — cantila_create_backup, cantila_list_backups, cantila_restore_backup — automation tools — cantila_create_automation, cantila_list_automations, cantila_save_workflow, cantila_run_workflow — and connection tools — cantila_list_connections, cantila_create_connection. The full list is in the API reference.

What one ask looks like

ship the repo in this folder to Cantila with a Postgres
and the domain blogapp.dev

Claude calls three tools in sequence and reports back:

cantila_deploy             ok  build started for repo (next.js detected)
cantila_provision_db       ok  postgres-17 created, wired into env
cantila_add_domain         ok  blogapp.dev attached, SSL issued
live · https://blogapp.dev

Security

  • API keys are hashed at rest; only the prefix is logged.
  • Each tool call is recorded in Activity with the source key fingerprint.
  • Revoke a key from Settings → API keys at any time — the next tool call fails with 401.

Project-scoped keys can only call tools whose target resolves inside the scoped project. cantila_list_projects returns just that project; cantila_deploy against another project's id returns 403.