AIREITER

Implantação de servidor MCP para o ChatGPT: do desenvolvimento ao deploy

Última Atualização: 2026-10-01 19:12:05

Implantar um servidor MCP para o ChatGPT não significa apenas fazer o endpoint /mcp responder. O ChatGPT precisa conseguir acessá-lo, descobrir as ferramentas certas, autenticar usuários e escolher essas ferramentas corretamente. Para a maioria das equipes, a hospedagem gerenciada é o caminho mais sensato; já a infraestrutura privada deve ficar atrás do Secure MCP Tunnel.

Defina o limite da implantação antes de escrever código

O limite da implantação determina o transporte, o trabalho de autenticação, a carga operacional e até se o servidor poderá ser publicado. O ChatGPT é um cliente MCP remoto: ao contrário de alguns clientes para desktop, ele não inicia diretamente um processo local em stdio (Central de Ajuda da OpenAI).

Modo de implantaçãoConexão com o ChatGPTMais indicado paraPrincipal custo
Hospedagem pública gerenciadaEndpoint HTTPS estável com Streamable HTTPA maioria dos aplicativos para equipes e clientesLimites da plataforma e dependência do fornecedor
Endpoint público autogerenciadoEndpoint HTTPS estável no seu contêiner, VM ou clusterEquipes de plataforma que já existem e têm requisitos de compliance ou redeVocê assume TLS, escalabilidade, correções, rollback e monitoramento
Secure MCP TunnelEndpoint hospedado pela OpenAI encaminha chamadas para um servidor privado em stdio ou HTTPSistemas on-premises, redes privadas e desenvolvimentoUm tunnel-client saudável passa a fazer parte da disponibilidade

Prefira a hospedagem gerenciada quando o servidor MCP for stateless, o tráfego for intermitente e a equipe não operar uma plataforma pública confiável. O padrão de route handler da Vercel e o padrão de Worker stateless da Cloudflare geram o endpoint HTTPS estável que o ChatGPT espera; antes de escolher, confirme as limitações de duração das requisições, streaming e estado de cada plataforma (Vercel, Cloudflare).

Autogerencie o endpoint público quando o servidor precisar ficar próximo de bancos de dados existentes, usar a infraestrutura de identidade já adotada pela empresa, atender a regras de residência de dados ou executar cargas que não cabem no modelo de duração serverless. Essa escolha só faz sentido se a equipe já tiver gerenciamento de segredos, rollback de deploy, alertas e um responsável de plantão.

Use o Secure MCP Tunnel quando expor uma entrada pública não for o limite de segurança adequado. O cliente de túnel da OpenAI abre conexões HTTPS de saída para api.openai.com:443 e encaminha as requisições para um servidor privado em HTTP ou stdio; não é necessário manter um listener acessível pela internet. A documentação de implantação da OpenAI também informa que o Secure MCP Tunnel não atende ao requisito de publicação pública de um endpoint HTTPS estável e acessível (documentação do túnel da OpenAI, orientações de desenvolvimento da OpenAI).

Documentação do OpenAI Secure MCP Tunnel mostrando o modelo de conexão com um servidor privado

Leve as ferramentas locais para um servidor MCP de produção no ChatGPT

Uma implantação confiável de servidor MCP para o ChatGPT separa as etapas de validação do comportamento das ferramentas, do protocolo, da acessibilidade em produção e do roteamento pelo modelo. Passar por uma etapa não significa que a próxima também será aprovada.

1. Defina ferramentas objetivas e contratos estáveis

Comece com uma ferramenta para cada ação reconhecível do usuário. As orientações de desenvolvimento da OpenAI usam ferramentas separadas como list_projects, get_project e update_project, em vez de uma única ferramenta com modos sem relação entre si (documentação para desenvolvedores da OpenAI). Cada ferramenta precisa de um nome orientado à ação, uma descrição precisa, um esquema de entrada explícito, uma resposta útil e anotações de segurança corretas.

Marque uma ferramenta com readOnlyHint: true somente quando ela não puder alterar o estado. Use destructiveHint: true para efeitos irreversíveis ou difíceis de desfazer e openWorldHint: true quando a ferramenta acessar entidades externas de escopo aberto. A OpenAI documenta essas anotações como metadados voltados ao modelo, usados no comportamento das ferramentas e no tratamento de segurança, mas exige que a autorização seja aplicada pelo servidor em cada requisição protegida (documentação para desenvolvedores da OpenAI).

Retorne identificadores estáveis de registros em structuredContent quando uma chamada posterior puder atualizar o mesmo registro. Mantenha tokens, segredos e dados pessoais desnecessários fora de content, structuredContent e _meta; a OpenAI afirma explicitamente que _meta fica oculto para o modelo, mas não é um armazenamento seguro.

2. Exponha o Streamable HTTP localmente

A conexão remota normal do ChatGPT usa Streamable HTTP, geralmente em /mcp. O caminho é convencional, não obrigatório, mas a URL completa implantada precisa ser informada no ChatGPT (guia de conexão da OpenAI).

Execute o servidor localmente e abra o MCP Inspector:

npx @modelcontextprotocol/inspector@latest

Conecte o Inspector a uma URL como http://localhost:3000/mcp. Confirme a inicialização, liste as ferramentas e chame cada uma com uma requisição válida, um esquema inválido, um identificador ausente e um caso de resultado vazio. Para ferramentas protegidas, verifique se credenciais ausentes ou insuficientes resultam em falha segura.

3. Adicione controle de acesso antes de expor o servidor

Um health check público não justifica uma superfície de ferramentas pública. Se as ferramentas expuserem apenas dados intencionalmente públicos e somente de leitura, um endpoint sem autenticação pode ser aceitável. Dados privados, informações específicas de usuários e ações exigem autenticação e autorização em todas as requisições (orientações de desenvolvimento da OpenAI).

No MCP protegido por OAuth, o servidor atua como um resource server. Uma requisição sem autenticação retorna 401 e direciona o cliente aos metadados do recurso protegido, normalmente em /.well-known/oauth-protected-resource. O fluxo de autorização deve usar PKCE, tokens com escopo restrito, validação rigorosa de issuer e audience e suporte a refresh token quando conexões persistentes exigirem esse recurso (Central de Ajuda da OpenAI).

Não encaminhe o token de acesso do MCP para um serviço upstream apenas porque os dois reconhecem tokens bearer. O token precisa ser destinado ao recurso que o recebe; para chamadas downstream, use credenciais de serviço ou um desenho adequado de troca de tokens (guia de segurança para implantação de MCP).

4. Implante um candidato imutável

Implante em um endpoint de preview ou staging exatamente o mesmo build aprovado pelo Inspector e, depois, promova esse artefato para produção. O endpoint de produção deve usar HTTPS, preservar o caminho completo do MCP, alcançar suas dependências e manter os segredos no armazenamento de secrets da plataforma de hospedagem.

Para um caminho compacto baseado na Vercel, instale mcp-handler, @modelcontextprotocol/server e zod; monte o Web handler retornado em app/api/mcp/route.ts; exporte-o para GET e POST; e faça o deploy com:

npx vercel deploy --prod

A URL de conexão do ChatGPT terá o formato https://your-project.vercel.app/api/mcp. A Vercel documenta uma duração padrão de 300 segundos para funções com Fluid compute e limites maiores em configurações pagas elegíveis. Portanto, transfira para um job retomável qualquer trabalho que ultrapasse uma requisição, em vez de manter um stream ocioso aberto (guia de implantação da Vercel). Mantenha a rota stateless, a menos que o runtime escolhido ofereça um desenho deliberado para estado compartilhado.

Adicione quatro controles operacionais antes de conectar o ChatGPT:

  1. Defina timeouts e limites de requisições para ferramentas caras.
  2. Registre falhas de inicialização e de ferramentas sem gravar tokens ou resultados sensíveis.
  3. Associe um identificador de release a cada invocação para que um incidente possa ser relacionado ao código implantado.
  4. Mantenha um caminho de rollback testado para regressões no esquema das ferramentas ou na autorização.

Execute o MCP Inspector contra a URL de produção, não apenas contra o localhost. Verifique novamente descoberta, esquemas, anotações, autenticação, chamadas válidas e erros. Um balanceador de carga, proxy, regra de CORS ou redirecionamento do provedor de identidade pode falhar mesmo quando a aplicação funcionou localmente.

Estruture o controle de acesso em três camadas

O controle de acesso do ChatGPT MCP tem três camadas independentes de aplicação; ativar o OAuth resolve apenas a camada de identidade.

CamadaPonto de aplicaçãoDecisão necessária
Acesso ao workspaceControles administrativos do ChatGPTQuem pode criar, publicar, ativar ou usar o app?
Identidade do usuárioServidor de autorização OAuth e resource server MCPQual conta está fazendo a chamada e o token é válido para este servidor?
Autorização de recurso/açãoHandler da ferramenta MCP e backendEste usuário pode executar esta ação neste tenant, registro ou ambiente?

No ChatGPT Business, administradores ou proprietários controlam o modo de desenvolvedor e a publicação. Os workspaces Enterprise e Edu adicionam RBAC para acesso de desenvolvedores, acesso a apps e ações (Central de Ajuda da OpenAI). Esses controles governam o uso do app pelo ChatGPT; eles não comprovam que uma chamada pode editar o registro A de um cliente no backend.

O handler MCP precisa extrair a identidade de credenciais validadas e aplicar a autorização de tenant e objeto em todas as chamadas. Nunca aceite um ID de usuário, ID de organização ou função fornecida nos argumentos gerados pelo modelo como prova de identidade. Trate todos os argumentos das ferramentas como entradas não confiáveis.

Separe escopos de leitura e escrita. Uma política prática pode permitir projects:read de forma ampla, reservar projects:write para editores e exigir uma nova verificação no servidor antes de operações destrutivas. O ChatGPT pode pedir confirmação para ações importantes, mas a confirmação é uma proteção de experiência do usuário, não um controle de autorização.

Injeção de prompt também é um problema de controle de acesso. As respostas das ferramentas e os documentos recuperados podem conter instruções maliciosas; por isso, ferramentas de escrita devem expor a ação mais restrita possível e validar os campos permitidos no servidor. Uma ferramenta genérica como execute_action aumenta tanto a ambiguidade do roteamento quanto o raio de impacto.

Conecte, teste e publique o app no ChatGPT

Conectar o endpoint cria um app em rascunho e um snapshot dos metadados. Publicar disponibiliza uma configuração revisada para o workspace; isso não é a mesma coisa que implantar o código do servidor.

  1. Ative o modo de desenvolvedor conforme a política aplicável do workspace do ChatGPT.
  2. Abra o fluxo de criação de app e informe a URL MCP HTTPS completa, incluindo /mcp quando essa for a rota montada.
  3. Selecione o mecanismo de autenticação e conclua o OAuth, se necessário.
  4. Execute Scan Tools, revise cada nome, esquema, anotação e ação descoberta e crie o rascunho.
  5. Teste o rascunho em um novo chat antes de publicá-lo no workspace.

Para um servidor privado, escolha Tunnel como conexão e selecione um túnel associado ou informe o tunnel_id. O operador precisa da permissão Tunnels Read + Use na OpenAI Platform, enquanto o modo de desenvolvedor do ChatGPT continua sendo uma permissão separada do workspace (documentação do túnel da OpenAI).

Alterações nos metadados exigem um ciclo de vida explícito. Em uma conexão no modo de desenvolvedor, faça o deploy ou reinicie o servidor, abra a conexão, selecione Refresh, verifique os metadados alterados e inicie uma nova conversa. A orientação atual da OpenAI para o Business diz que apps publicados precisam ser recriados e republicados para alterar ferramentas ou metadados; administradores de Enterprise/Edu podem atualizar ações, revisar diferenças e ativar novas ações, que vêm desabilitadas por padrão (Central de Ajuda da OpenAI).

A evolução compatível continua sendo a política mais segura para o servidor. Adicione campos opcionais e novas ferramentas; evite mudar silenciosamente o significado de uma ferramenta existente. Mantenha os esquemas antigos disponíveis até que todos os snapshots e clientes aprovados tenham migrado.

Teste o comportamento que os usuários do ChatGPT realmente verão

Testes de protocolo comprovam que o servidor consegue responder. Testes no ChatGPT mostram se o modelo escolhe a ferramenta pretendida, envia argumentos adequados, respeita os limites e evita usar a ferramenta quando ela não é relevante.

O usuário do Reddit u/EmailNo8428 descreveu o problema em duas camadas:

“Na prática, você está testando duas coisas ao mesmo tempo: a lógica da sua ferramenta e a forma como um cliente específico a chama.” (r/mcp)

Monte um conjunto pequeno e versionado de avaliações com estes casos:

CasoResultado esperado
Solicitação diretaSelecionar a capacidade indicada com argumentos válidos
Solicitação indiretaInferir a ferramenta correta a partir do objetivo do usuário
ContinuaçãoReutilizar o identificador estável retornado anteriormente
Solicitação negativaNão chamar nenhuma ferramenta MCP
Permissão ausenteRetornar um erro de autorização útil sem vazar dados
Solicitação de escritaSelecionar a ferramenta de escrita específica e solicitar a confirmação aplicável
Solicitação ambíguaPedir as informações necessárias em vez de inventar argumentos
Resultado vazioRetornar um estado vazio válido, não um erro de transporte ou esquema

Registre a ferramenta selecionada, os argumentos, o resultado retornado, o erro e o comportamento de confirmação. Repita os casos afetados sempre que houver mudança no nome, na descrição, no esquema, na anotação, na regra de autenticação ou no formato de resposta de uma ferramenta; a OpenAI recomenda o mesmo ciclo de atualização e novo teste em seu guia de conexão.

Um servidor que passa pelo Inspector, mas roteia mal no ChatGPT, geralmente precisa de limites, descrições ou esquemas de ferramentas mais claros. Já um servidor que roteia corretamente, mas retorna 401, sofre timeout ou perde estado, tem um problema de infraestrutura ou autorização. Separar esses diagnósticos torna o ciclo de correção mais curto.

Perguntas frequentes

O ChatGPT pode se conectar diretamente a um servidor MCP em localhost ou stdio?

Não. Normalmente, o ChatGPT se conecta a um endpoint MCP remoto. O OpenAI Secure MCP Tunnel pode encaminhar chamadas para um servidor privado em stdio ou HTTP sem exigir uma entrada pública, enquanto um túnel HTTPS temporário pode servir ao desenvolvimento, mas não à publicação pública de plugins.

Um servidor MCP para o ChatGPT precisa de um endpoint HTTPS público?

Uma conexão remota normal e a publicação pública de um plugin exigem HTTPS estável. Um servidor privado no modo de desenvolvedor pode usar o Secure MCP Tunnel, mantendo o servidor dentro do ambiente controlado pelo cliente.

search e fetch são obrigatórios?

Não. A OpenAI informa que os servidores conectados não precisam mais dessas ferramentas. Implemente os contratos padrão de search e fetch quando o app precisar participar das superfícies de conhecimento corporativo ou recuperação do deep research (Central de Ajuda da OpenAI).

Por que o ChatGPT continua mostrando ferramentas antigas depois do deploy?

O ChatGPT armazena os metadados descobertos, em vez de tratar cada deploy de código como uma alteração de ferramenta já aprovada. Atualize uma conexão no modo de desenvolvedor e inicie uma nova conversa; apps publicados em workspaces seguem o processo de revisão e republicação específico do plano.