Ir para o conteúdo
decodecodeveloper docs
Studio → MCP Apps e extensões → Criar MCP Apps

Deployment

Compile e implante seu MCP App

Este guia usa o template de MCP App no commit 3fc9bd15. Um MCP App é um servidor e uma interface HTML que você implanta e depois conecta ao Studio.

Build

bun run build

Isso executa duas etapas:

  1. build:web — o Vite compila o app React em um bundle HTML de arquivo único (dist/client/index.html)
  2. build:server — o Bun empacota api/main.bun.ts em dist/server/main.js

Implante o servidor e dist/client/index.html juntos em um host que execute Bun. Na raiz do projeto, o servidor compilado pode ser iniciado com:

NODE_ENV=production PORT=3001 bun dist/server/main.js

Configure a URL HTTPS pública e o ciclo de vida do processo no seu host. O template, por si só, não transforma um push no Git em deploy de produção.

Configuração do app.json

Atualize o app.json com os detalhes do seu app antes de publicar:

{
  "scopeName": "your-org",
  "name": "your-app",
  "friendlyName": "Your App Name",
  "description": "What your app does.",
  "connection": {
    "type": "HTTP",
    "url": "https://mcp.example.com/api/mcp",
    "configSchema": {
      "type": "object",
      "properties": {},
      "required": []
    }
  }
}
  • scopeName + name — identificador único na plataforma deco
  • connection.url — seu endpoint MCP implantado; o template serve /api/mcp
  • configSchema — JSON Schema para as opções de configuração mostradas a quem instala seu app

Publicando no Deco Studio

  1. Faça o build e implante o app em um host HTTPS acessível.
  2. Abra o Studio e vá a Settings → Connections → Add connection → Custom Connection.
  3. Escolha HTTP, cole a URL implantada com /api/mcp e configure as credenciais exigidas pelo servidor.
  4. Em Settings do agente, associe a conexão e selecione suas ferramentas. Execute uma ferramenta para abrir a interface do MCP App vinculada.

app.json registra a identidade e os detalhes de conexão do app. Criar uma conexão customizada o disponibiliza na sua organização; publicar em um catálogo é um fluxo separado de distribuição. Veja Conexões.

CI/CD

GitHub Actions

O template inclui um workflow de CI (.github/workflows/ci.yml):

name: CI
 
on: [push, pull_request]
 
jobs:
  ci:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
 
      - uses: oven-sh/setup-bun@v2
        with:
          bun-version: latest
 
      - name: Cache Bun dependencies
        uses: actions/cache@v4
        with:
          path: ~/.bun/install/cache
          key: ${{ runner.os }}-bun-${{ hashFiles('bun.lock') }}
          restore-keys: ${{ runner.os }}-bun-
 
      - run: bun install --frozen-lockfile
      - run: bun run ci:check
      - run: bun run check
      - run: bun run build

Isso roda em todo push e pull request:

  • bun run ci:check — lint e checagem de formatação com Biome
  • bun run check — checagem de tipos do TypeScript
  • bun run build — build de produção completo

Testando Após o Deploy

  1. Conecte o endpoint implantado no Studio seguindo as etapas acima.
  2. Chame hello_world com um nome de teste e confira a saudação estruturada.
  3. Verifique que o recurso vinculado serve text/html;profile=mcp-app e que a UI renderiza o resultado da ferramenta.
  4. Confira os logs do servidor e o Monitor para chamadas roteadas pela conexão.

Para testar localmente pelo Studio hospedado, use o fluxo de túnel HTTPS. Um client MCP local alcança diretamente http://localhost:3001/api/mcp; /mcp não é o endpoint público do template.