MCPPlatform

Conecte sua API REST e obtenha um servidor MCP hospedado com ferramentas geradas, controles de política, aprovações, gerenciamento de credenciais e auditoria completa de chamadas de ferramentas.

Documentação

Documentação para desenvolvedores

Tudo para ir de uma especificação OpenAPI a um servidor MCP ativo e governado — e para chamá-lo a partir de um agente.

Início rápido

A forma mais rápida de ver um servidor MCP governado funcionando é conectar o Claude a um que já esteja ativo — sem cadastro, sem chave de API. Isso usa o Cat Facts, um dos 5 servidores de exemplo públicos em execução na plataforma, e leva menos de 5 minutos.

  1. No Claude, abra Configurações → Conectores → Adicionar conector personalizado.
  2. Cole a URL do endpoint MCP (dê o nome que quiser, ex.: "Cat Facts"): https://mcpplatform.dev/mcp/srv\_c7dcf1cd45
  3. Salve o conector. O Claude chama initialize e tools/list nos bastidores e descobre uma ferramenta, get_cat_fact.
  4. Peça algo ao Claude que o faça usar a ferramenta: Use o conector Cat Facts para me contar um fato aleatório sobre gatos.

O Claude emite um tools/call e recebe conteúdo real de volta pela mesma conexão JSON-RPC:

POST /mcp/srv_c7dcf1cd45 { "jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": { "name": "get_cat_fact", "arguments": {} } } → 200 { "result": { "content": [{ "type": "text", "text": "{\"fact\": \"Cats only sweat through their paws...\", \"length\": 65}" }], "isError": false } }

O Claude lê esse JSON e responde em português claro com o fato — esse é o ciclo completo: conectar, descobrir ferramentas, chamar, responder.

Zero configuração: srv_c7dcf1cd45 é um dos 5 servidores de exemplo públicos, sem autenticação, ativos na plataforma agora — seguro para conectar diretamente, nada para configurar ou cadastrar.

Prefere ver a requisição/resposta bruta antes de abrir o Claude? Experimente o sandbox ao vivo — ele dispara as mesmas requisições tools/list/tools/call direto do seu navegador, sem necessidade de cadastro.

Pronto para publicar seu próprio servidor MCP governado a partir de uma especificação OpenAPI em vez de um de demonstração? Cadastre-se para criar um tenant e continue em Importar um contrato abaixo.

Conceitos principais

Tenant

Um espaço de trabalho isolado do cliente. Todos os servidores, contratos, ferramentas e auditoria pertencem a exatamente um tenant, aplicado na camada do banco de dados.

Contrato

Uma especificação OpenAPI ou URL base REST que você registra. Cada operação é mapeada para uma ferramenta.

Servidor MCP

Um pacote publicado e versionado de ferramentas, recursos e prompts que um agente instala por URL.

Ponto de decisão de política

O componente em tempo de execução que decide allow, allow_with_confirmation, allow_with_approval ou denied para cada chamada.

Guias de como fazer

Escritos focados em tarefas para as formas mais comuns de colocar uma API nesta plataforma. Cada um é autossuficiente — escolha o que corresponde ao seu ponto de partida:

Importar um contrato

No console, vá para Build → Contracts → Import. Forneça uma URL de especificação ou cole JSON/YAML, escolha um ambiente, e nós validamos. O relatório de validação sinaliza esquemas ausentes e padrões arriscados antes da publicação.

Configurar política

Para cada ferramenta, defina sua classe de risco e escopos necessários. O mapeamento para decisões:

  • Somente leitura dentro do escopo → allow
  • Financeiro / com efeitos colaterais → allow_with_confirmation
  • Destrutivo → allow_with_approval (retido para um humano)
  • Escopo ausente ou acima do limite de taxa → denied

Conectar credenciais

Em Secure → Credentials, conecte um provedor OAuth ou armazene um segredo. O runtime faz a intermediação de tokens downstream de curta duração por chamada — o agente nunca vê a chave bruta.

Referência da API

GET /v1/bootstrap

Retorna o conjunto de dados completo com escopo do tenant que o console renderiza — tenants, servidores, ferramentas, contratos, auditoria e documentos de referência. Com escopo do tenant via RLS.

GET /mcp/:serverId/tools/list

Lista as ferramentas de um servidor (nome, descrição, método, caminho, risco, escopos). Apenas descoberta — sem efeitos colaterais, não cobrada.

POST /mcp/:serverId/tools/call

Invoca uma ferramenta. Corpo: { toolName, args, ctx? }. Retorna a decisão de política, a resposta downstream e a linha de auditoria gravada.

POST /mcp/mcp_msg/tools/call { "toolName": "delete_message", "args": { "sid": "SM1" } } → 200 { "result": { "decision": "allow_with_approval",... } }

Runtime e decisões

Cada chamada executa um pipeline fixo: resolver tenant (escopo RLS) → validar escopo → limite de taxa → decisão de política → intermediar credenciais → invocar downstream → anexar auditoria. Uma negação interrompe o fluxo antes de qualquer chamada downstream ser feita.

Segurança e RLS

A aplicação conecta-se ao Postgres como um papel não privilegiado sujeito à Segurança em Nível de Linha. Cada tabela de propriedade do tenant carrega um tenant_id e uma política:

CREATE POLICY tenant_isolation ON tool USING (tenant_id = current_setting('app.tenant_id', true)) WITH CHECK (tenant_id = current_setting('app.tenant_id', true));

Como o RLS é aplicado pelo banco de dados, uma consulta que esquece sua cláusula WHERE ainda não consegue ler ou gravar linhas de outro tenant. As migrações são executadas como um papel proprietário separado com BYPASSRLS.

Verifique você mesmo: solicite /v1/bootstrap com um X-Tenant-Id diferente e você verá zero linhas de outros tenants.

Autohospedagem no GCP

A plataforma roda em Cloud SQL para PostgreSQL (armazenamento multitenant), Cloud Run (plano de controle + dados), um balanceador de carga HTTPS global com Cloud Armor e Cloud KMS para o cofre. Veja o runbook completo em doc/gcp-deployment-runbook.md.