For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegação principal

Servidores MCP

Conecte modelos a servidores MCP remotos e a servidores locais por meio do Túnel MCP seguro.

Além das ferramentas que você disponibiliza ao modelo com a chamada de função, você pode oferecer novas capacidades aos modelos usando servidores MCP remotos ou o Túnel MCP seguro. Essas ferramentas permitem que o modelo se conecte a serviços externos e os controle quando necessário para responder ao prompt de um usuário. Essas chamadas de ferramentas podem ser permitidas automaticamente ou restringidas para exigir sua aprovação explícita como desenvolvedor.

  • Servidores MCP remotos podem ser quaisquer servidores na internet pública que implementem um servidor remoto do Model Context Protocol (MCP).

  • O Túnel MCP seguro conecta um servidor MCP local ou privado sem expô-lo à internet pública.

Este guia mostra como usar ferramentas MCP com a API Responses. Os conectores integrados continuam disponíveis para os modelos existentes; consulte Conectores legados para conhecer a política de descontinuação e os exemplos de compatibilidade. Para sessões da API de Agentes, consulte Conexões MCP, que aborda conexões a partir do serviço gerenciado ou do seu sandbox.

Túnel MCP seguro

Se o seu servidor MCP for privado, estiver em infraestrutura local ou atrás de um firewall, use o Túnel MCP seguro para conectá-lo a produtos OpenAI compatíveis sem expor o servidor à internet pública. Baixe a versão pública mais recente em openai/tunnel-client.

Início rápido

Use o tipo de ferramenta mcp na API Responses. Defina server_url para um servidor MCP remoto ou use tunnel_id para um servidor MCP local por meio do Túnel MCP seguro. Dependendo do servidor, você também pode precisar de um token de acesso OAuth no parâmetro authorization.

Usar um servidor MCP remoto na Responses API
curl https://api.openai.com/v1/responses \ 
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer $OPENAI_API_KEY" \ 
-d '{
  "model": "gpt-6-astra",
    "tools": [
      {
        "type": "mcp",
        "server_label": "dmcp",
        "server_description": "A Dungeons and Dragons MCP server to assist with dice rolling.",
        "server_url": "https://dmcp-server.deno.dev/mcp",
        "require_approval": "never"
      }
    ],
    "input": "Roll 2d4+1"
  }'

É muito importante que os desenvolvedores confiem em qualquer servidor MCP remoto que usem com a API Responses. Um servidor malicioso pode exfiltrar dados sensíveis de qualquer conteúdo que entre no contexto do modelo. Leia com atenção a seção Riscos e segurança abaixo antes de usar esta ferramenta.

A API retornará novos itens no array output da resposta do modelo. Se o modelo decidir usar um servidor MCP, primeiro fará uma solicitação para listar as ferramentas disponíveis no servidor, o que criará um item de saída mcp_list_tools. No exemplo de servidor MCP remoto acima, esse item contém apenas uma definição de ferramenta:

{
  "id": "mcpl_68a6102a4968819c8177b05584dd627b0679e572a900e618",
  "type": "mcp_list_tools",
  "server_label": "dmcp",
  "tools": [
    {
      "annotations": null,
      "description": "Given a string of text describing a dice roll...",
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "diceRollExpression": {
            "type": "string"
          }
        },
        "required": ["diceRollExpression"],
        "additionalProperties": false
      },
      "name": "roll"
    }
  ]
}

Se o modelo decidir chamar uma das ferramentas disponíveis no servidor MCP, você também encontrará uma saída mcp_call que mostrará o que o modelo enviou à ferramenta MCP e o que ela retornou como saída.

{
  "id": "mcp_68a6102d8948819c9b1490d36d5ffa4a0679e572a900e618",
  "type": "mcp_call",
  "approval_request_id": null,
  "arguments": "{\"diceRollExpression\":\"2d4 + 1\"}",
  "error": null,
  "name": "roll",
  "output": "4",
  "server_label": "dmcp"
}

Continue lendo o guia abaixo para saber mais sobre como a ferramenta MCP funciona, como filtrar as ferramentas disponíveis e como lidar com solicitações de aprovação de chamadas de ferramenta.

Como funciona

A ferramenta MCP está disponível na API Responses na maioria dos modelos recentes. Verifique aqui a compatibilidade da ferramenta MCP com seu modelo. Ao usar a ferramenta MCP, você paga apenas pelos tokens usados ao importar definições de ferramentas ou fazer chamadas de ferramentas. Não há taxas adicionais por chamada de ferramenta.

A seguir, veremos passo a passo o processo que a API segue ao chamar uma ferramenta MCP.

Etapa 1: Listar as ferramentas disponíveis

Quando você especifica um servidor MCP remoto no parâmetro tools, a API tenta obter uma lista de ferramentas do servidor. A Responses API funciona com servidores MCP remotos que oferecem suporte aos protocolos de transporte Streamable HTTP ou HTTP/SSE.

Se a lista de ferramentas for obtida com sucesso, um novo item de saída mcp_list_tools aparecerá na saída da resposta do modelo. A propriedade tools desse objeto mostrará as ferramentas que foram importadas com sucesso.

{
  "id": "mcpl_68a6102a4968819c8177b05584dd627b0679e572a900e618",
  "type": "mcp_list_tools",
  "server_label": "dmcp",
  "tools": [
    {
      "annotations": null,
      "description": "Given a string of text describing a dice roll...",
      "input_schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "diceRollExpression": {
            "type": "string"
          }
        },
        "required": ["diceRollExpression"],
        "additionalProperties": false
      },
      "name": "roll"
    }
  ]
}

Enquanto o item mcp_list_tools estiver presente no contexto de uma solicitação à API, ela não buscará novamente a lista de ferramentas do servidor MCP a cada turno de uma conversa. Recomendamos manter esse item no contexto do modelo em todas as conversas ou execuções de fluxos de trabalho para reduzir a latência.

Filtrar ferramentas

Alguns servidores MCP podem ter dezenas de ferramentas, e expor muitas ferramentas ao modelo pode resultar em custo e latência elevados. Se você tiver interesse apenas em um subconjunto das ferramentas que um servidor MCP expõe, poderá usar o parâmetro allowed_tools para importar somente essas ferramentas.

Restringir as ferramentas permitidas
curl https://api.openai.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
    "model": "gpt-6-astra",
    "tools": [
      {
        "type": "mcp",
        "server_label": "dmcp",
        "server_description": "A Dungeons and Dragons MCP server to assist with dice rolling.",
        "server_url": "https://dmcp-server.deno.dev/mcp",
        "require_approval": "never",
        "allowed_tools": ["roll"]
      }
    ],
    "input": "Roll 2d4+1"
  }'

Etapa 2: Chamar ferramentas

Depois que o modelo tiver acesso a essas definições de ferramentas, poderá optar por chamá-las dependendo do que estiver em seu contexto. Quando o modelo decidir chamar uma ferramenta MCP, a API fará uma solicitação ao servidor MCP remoto para chamar a ferramenta e incluirá a saída no contexto do modelo. Isso cria um item mcp_call como este:

{
  "id": "mcp_68a6102d8948819c9b1490d36d5ffa4a0679e572a900e618",
  "type": "mcp_call",
  "approval_request_id": null,
  "arguments": "{\"diceRollExpression\":\"2d4 + 1\"}",
  "error": null,
  "name": "roll",
  "output": "4",
  "server_label": "dmcp"
}

Esse item inclui tanto os argumentos que o modelo decidiu usar nessa chamada de ferramenta quanto o output retornado pelo servidor MCP remoto. Todos os modelos podem optar por fazer várias chamadas de ferramenta MCP, então você poderá ver vários desses itens gerados em uma única solicitação à API.

Chamadas de ferramenta que falharem preencherão o campo error desse item com erros do protocolo MCP, erros de execução de ferramentas MCP ou erros gerais de conectividade. Os erros MCP estão documentados na especificação MCP aqui.

Aprovações

Por padrão, a OpenAI solicitará sua aprovação antes de compartilhar qualquer dado com um conector ou servidor MCP remoto. As aprovações ajudam você a manter o controle e a visibilidade sobre quais dados estão sendo enviados a um servidor MCP. Recomendamos fortemente que você revise com atenção (e, opcionalmente, registre em logs) todos os dados compartilhados com um servidor MCP remoto. Uma solicitação de aprovação para fazer uma chamada de ferramenta MCP cria um item mcp_approval_request na saída do objeto Response, como este:

{
  "id": "mcpr_68a619e1d82c8190b50c1ccba7ad18ef0d2d23a86136d339",
  "type": "mcp_approval_request",
  "arguments": "{\"diceRollExpression\":\"2d4 + 1\"}",
  "name": "roll",
  "server_label": "dmcp"
}

Você pode responder a essa solicitação criando um novo objeto Response e adicionando um item mcp_approval_response a ele.

Aprovar o uso de ferramentas em uma solicitação à API
curl https://api.openai.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
    "model": "gpt-6-astra",
    "tools": [
      {
        "type": "mcp",
        "server_label": "dmcp",
        "server_description": "A Dungeons and Dragons MCP server to assist with dice rolling.",
        "server_url": "https://dmcp-server.deno.dev/mcp",
        "require_approval": "always",
      }
    ],
    "previous_response_id": "resp_682d498bdefc81918b4a6aa477bfafd904ad1e533afccbfa",
    "input": [{
      "type": "mcp_approval_response",
      "approve": true,
      "approval_request_id": "mcpr_682d498e3bd4819196a0ce1664f8e77b04ad1e533afccbfa"
    }]
  }'

Aqui, usamos o parâmetro previous_response_id para encadear esta nova resposta com a resposta anterior, que gerou a solicitação de aprovação. Mas você também pode enviar as saídas de uma resposta como entradas de outra para ter o máximo de controle sobre o que entra no contexto do modelo.

Se e quando você se sentir à vontade para confiar em um servidor MCP remoto, poderá optar por dispensar as aprovações para reduzir a latência. Para isso, defina o parâmetro require_approval da ferramenta MCP como um objeto que liste apenas as ferramentas para as quais deseja dispensar aprovações, conforme mostrado abaixo, ou defina-o como 'never' para dispensar aprovações para todas as ferramentas desse servidor MCP remoto.

Nunca exigir aprovação para algumas ferramentas
curl https://api.openai.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
    "model": "gpt-6-astra",
    "tools": [
      {
        "type": "mcp",
        "server_label": "deepwiki",
        "server_url": "https://mcp.deepwiki.com/mcp",
        "require_approval": {
          "never": {
            "tool_names": ["ask_question", "read_wiki_structure"]
          }
        }
      }
    ],
    "input": "What transport protocols does the 2025-03-26 version of the MCP spec (modelcontextprotocol/modelcontextprotocol) support?"
  }'

Autenticação

Ao contrário do servidor MCP que usamos como exemplo acima, a maioria dos outros servidores MCP exige autenticação. O método mais comum é um token de acesso OAuth. Forneça esse token no campo authorization da ferramenta MCP:

Usar a ferramenta MCP do Stripe
curl https://api.openai.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
    "model": "gpt-6-astra",
    "input": "Create a payment link for $20",
    "tools": [
      {
        "type": "mcp",
        "server_label": "stripe",
        "server_url": "https://mcp.stripe.com",
        "authorization": "$STRIPE_OAUTH_ACCESS_TOKEN"
      }
    ]
  }'

Para evitar o vazamento de tokens sensíveis, a Responses API não armazena o valor fornecido no campo authorization. Esse valor também não ficará visível no objeto Response criado. Por isso, você deve enviar o valor de authorization em cada solicitação de criação que fizer à Responses API.

Conectores legados

connector_id está obsoleto para modelos lançados após 1º de setembro de 2026. Use server_url para se conectar a um servidor MCP remoto ou tunnel_id para se conectar a um servidor MCP local por meio do Túnel MCP seguro. Os modelos existentes mantêm o suporte a conectores. Os exemplos desta seção usam gpt-5.2, que foi lançado antes dessa data.

A Responses API oferece suporte integrado a um conjunto limitado de conectores para serviços de terceiros. Esses conectores permitem trazer contexto de aplicativos populares, como Dropbox e Gmail, para que o modelo possa interagir com serviços populares.

Conectores podem ser usados da mesma forma que servidores MCP remotos. Ambos permitem que um modelo OpenAI acesse ferramentas adicionais de terceiros em uma solicitação à API. No entanto, em vez de passar um server_url, como faria para chamar um servidor MCP remoto, você passa um connector_id, que identifica de forma única um conector disponível na API.

Os conectores exigem um token de acesso OAuth fornecido pelo seu aplicativo no parâmetro authorization.

Use um conector legado com GPT-5.2
curl https://api.openai.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
    "model": "gpt-5.2",
    "tools": [
      {
        "type": "mcp",
        "server_label": "Dropbox",
        "connector_id": "connector_dropbox",
        "authorization": "<oauth access token>",
        "require_approval": "never"
      }
    ],
    "input": "Summarize the Q2 earnings report."
  }'

Conectores disponíveis

  • Dropbox: connector_dropbox
  • Gmail: connector_gmail
  • Google Calendar: connector_googlecalendar
  • Google Drive: connector_googledrive
  • Microsoft Teams: connector_microsoftteams
  • Outlook Calendar: connector_outlookcalendar
  • Outlook Email: connector_outlookemail
  • SharePoint: connector_sharepoint

Priorizamos serviços que não têm servidores MCP remotos oficiais. O GitHub, por exemplo, tem um servidor MCP oficial ao qual você pode se conectar passando https://api.githubcopilot.com/mcp/ no campo server_url da ferramenta MCP.

Como autorizar um conector

No campo authorization, passe um token de acesso OAuth. Seu aplicativo deve cuidar separadamente do registro e da autorização do cliente OAuth.

Para testes, você pode usar o OAuth 2.0 Playground do Google para gerar tokens de acesso temporários e usá-los em uma requisição à API.

Para usar o playground para testar a funcionalidade de conectores da API, comece inserindo:

https://www.googleapis.com/auth/calendar.events

Esse escopo de autorização permitirá que a API leia eventos do Google Calendar. Na interface, em "Etapa 1: Selecionar e autorizar APIs".

Depois de autorizar o aplicativo com sua conta do Google, você chegará à Etapa 2: Trocar o código de autorização por tokens. Isso gerará um token de acesso que você poderá usar em uma solicitação à API com o conector do Google Calendar:

Use o conector do Google Calendar
curl https://api.openai.com/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-5.2",
    "tools": [
      {
        "type": "mcp",
        "server_label": "google_calendar",
        "connector_id": "connector_googlecalendar",
        "authorization": "ya29.A0AS3H6...",
        "require_approval": "never"
      }
    ],
    "input": "What is on my Google Calendar for today?"
  }'

Uma chamada de ferramenta MCP de um Conector terá o mesmo formato que uma chamada de ferramenta MCP de um servidor MCP remoto, usando o tipo de item de saída mcp_call. Nesse caso, tanto os argumentos enviados ao Conector quanto a resposta dele são strings JSON:

{
  "id": "mcp_68a62ae1c93c81a2b98c29340aa3ed8800e9b63986850588",
  "type": "mcp_call",
  "approval_request_id": null,
  "arguments": "{\"time_min\":\"2025-08-20T00:00:00\",\"time_max\":\"2025-08-21T00:00:00\",\"timezone_str\":null,\"max_results\":50,\"query\":null,\"calendar_id\":null,\"next_page_token\":null}",
  "error": null,
  "name": "search_events",
  "output": "{\"events\": [{\"id\": \"2n8ni54ani58pc3ii6soelupcs_20250820\", \"summary\": \"Home\", \"location\": null, \"start\": \"2025-08-20T00:00:00\", \"end\": \"2025-08-21T00:00:00\", \"url\": \"https://www.google.com/calendar/event?eid=Mm44bmk1NGFuaTU4cGMzaWk2c29lbHVwY3NfMjAyNTA4MjAga3doaW5uZXJ5QG9wZW5haS5jb20&ctz=America/Los_Angeles\", \"description\": \"\\n\\n\", \"transparency\": \"transparent\", \"display_url\": \"https://www.google.com/calendar/event?eid=Mm44bmk1NGFuaTU4cGMzaWk2c29lbHVwY3NfMjAyNTA4MjAga3doaW5uZXJ5QG9wZW5haS5jb20&ctz=America/Los_Angeles\", \"display_title\": \"Home\"}], \"next_page_token\": null}",
  "server_label": "Google_Calendar"
}

Ferramentas disponíveis em cada conector

As ferramentas disponíveis dependem dos escopos do seu token OAuth. Expanda as tabelas abaixo para ver quais ferramentas você pode usar ao se conectar a cada aplicativo.

Adiar o carregamento de ferramentas de um servidor MCP

Se você usa a pesquisa de ferramentas, pode adiar o carregamento das funções expostas por um servidor MCP até que o modelo decida que precisa delas. Para isso, configure defer_loading: true na definição da ferramenta do servidor MCP.

Quando você adia o carregamento de um servidor MCP, o modelo ainda pode usar o rótulo e a descrição do servidor para decidir quando pesquisar nele, mas as definições de cada função só são carregadas quando necessário. Isso pode ajudar a reduzir o uso total de tokens e é especialmente útil para servidores MCP que expõem muitas funções.

{
    "type": "mcp",
    "server_label": "dmcp",
    "server_description": "A Dungeons and Dragons MCP server to assist with dice rolling.",
    "server_url": "https://dmcp-server.deno.dev/mcp",
    "defer_loading": true,
    "require_approval": "never"
}

Riscos e segurança

A ferramenta MCP permite conectar modelos da OpenAI a serviços externos. É um recurso poderoso que envolve alguns riscos.

No caso dos conectores, há o risco de enviar dados sensíveis à OpenAI ou de permitir que os modelos leiam dados potencialmente sensíveis nesses serviços.

Os servidores MCP remotos apresentam os mesmos riscos e, além disso, não foram verificados pela OpenAI. Esses servidores podem permitir que os modelos acessem, enviem e recebam dados, além de executar ações nesses serviços. Todos os servidores MCP são serviços de terceiros sujeitos aos próprios termos e condições.

Se você encontrar um servidor MCP malicioso, denuncie-o para security@openai.com.

Veja abaixo algumas práticas recomendadas a considerar ao integrar conectores e servidores MCP remotos.

Injeção de prompt

A injeção de prompt é uma questão importante de segurança em qualquer aplicativo que use LLMs, especialmente quando você dá ao modelo acesso a servidores MCP e conectores que podem acessar dados sensíveis ou executar ações. Use essas ferramentas com a devida cautela e medidas de proteção adequadas se o prompt enviado ao modelo contiver conteúdo fornecido pelo usuário.

Sempre exija aprovação para ações sensíveis

Use as configurações disponíveis dos parâmetros require_approval e allowed_tools para garantir que qualquer ação sensível exija um fluxo de aprovação.

URLs nas chamadas e saídas de ferramentas MCP

Pode ser perigoso fazer requisições a URLs ou incorporar URLs de imagens fornecidas nas saídas de chamadas de ferramentas, sejam elas de conectores ou de servidores MCP remotos. Certifique-se de que você confia nos domínios e serviços que fornecem essas URLs antes de incorporá-las ou usá-las de qualquer outra forma no código do seu aplicativo.

Conexão com servidores confiáveis

Escolha servidores oficiais hospedados pelos próprios provedores de serviços (por exemplo, recomendamos conectar-se ao servidor Stripe hospedado pela Stripe em mcp.stripe.com, em vez de um servidor MCP da Stripe hospedado por terceiros). Como ainda não há muitos servidores MCP remotos oficiais, você pode considerar usar um servidor MCP hospedado por uma organização que não opera esse servidor e que encaminha solicitações a esse serviço por meio da sua API. Se precisar fazer isso, redobre o cuidado ao avaliar esses "agregadores" e analise atentamente como eles usam seus dados.

Registre e revise os dados compartilhados com servidores MCP de terceiros.

Como os servidores MCP fornecem suas próprias definições de ferramentas, eles podem solicitar dados que você nem sempre se sente à vontade para compartilhar com o host desse servidor MCP. Por isso, a ferramenta MCP na API Responses exige, por padrão, aprovação para cada chamada de ferramenta MCP. Ao desenvolver seu aplicativo, analise de forma cuidadosa e rigorosa os tipos de dados compartilhados com esses servidores MCP. Quando tiver confiança suficiente nesse servidor MCP, você poderá dispensar essas aprovações para reduzir a latência de execução.

Também recomendamos registrar todos os dados enviados a servidores MCP. Se você usa a Responses API com store=true, esses dados já são registrados pela API por 30 dias, a menos que a opção de zero retenção de dados esteja habilitada para sua organização. Você também pode registrar esses dados nos seus próprios sistemas e revisá-los periodicamente para garantir que o compartilhamento ocorra conforme o esperado.

Servidores MCP maliciosos podem incluir instruções ocultas (injeções de prompt) criadas para fazer os modelos da OpenAI se comportarem de forma inesperada. Embora a OpenAI tenha implementado proteções integradas para ajudar a detectar e bloquear essas ameaças, é essencial revisar cuidadosamente as entradas e saídas e garantir que as conexões sejam estabelecidas apenas com servidores confiáveis.

Os servidores MCP podem alterar o comportamento das ferramentas de forma inesperada, o que pode levar a comportamentos indesejados ou maliciosos.

Implicações para zero retenção de dados e residência de dados

A ferramenta MCP é compatível com zero retenção de dados e residência de dados, mas é importante lembrar que os servidores MCP são serviços de terceiros. Os dados enviados a um servidor MCP estão sujeitos às políticas de retenção e residência de dados desse serviço.

Em outras palavras, se sua organização tem residência de dados na Europa, a OpenAI restringirá a inferência e o armazenamento do Conteúdo do Cliente à Europa até o momento em que comunicações ou dados forem enviados ao servidor MCP. É sua responsabilidade garantir que o servidor MCP também cumpra quaisquer requisitos de zero retenção de dados ou residência de dados que você tenha. Saiba mais sobre zero retenção de dados e residência de dados aqui.

Notas de uso

Disponibilidade na API Limites de taxa Notas

Nível 1
200 RPM

Níveis 2 e 3
1000 RPM

Níveis 4 e 5
2000 RPM

Preços
ZDR e residência de dados