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

Cofres

Armazene credenciais MCP e associe-as a sessões de agentes.

Um cofre armazena credenciais para conexões MCP originadas na OpenAI. Associe-o a uma sessão para que o agente possa usar ferramentas autenticadas sem receber os valores secretos.

Os cofres oferecem suporte a tokens de portador e concessões OAuth existentes. Para conexões originadas no seu ambiente, use as outras opções de autenticação MCP.

Permissões

Para uma chave de aplicação restrita, conceda:

  • api.vaults.read para listar e recuperar cofres e credenciais.
  • api.vaults.write para criar, atualizar ou excluir esses recursos.

Crie e use um cofre

Use seu cliente de API, a URL do servidor MCP (mcp_url) e um token de acesso para esse servidor (access_token). Os exemplos usam ferramentas do GitHub.

Primeiro, crie um cofre:

Criar um cofre
const vault = await client.beta.agents.vaults.create({
  name: "GitHub credentials",
  metadata: {
    external_user_id: "user_123",
  },
});

Salve o ID do cofre como vault_id e adicione o token. mcp_server_url vincula a credencial a esse servidor:

Armazenar um token de portador
// Replace the illustrative IDs and URLs below with your own resource values.
const vaultId = "vault_123";
const mcpUrl = "https://api.githubcopilot.com/mcp/";
const accessToken = process.env.GITHUB_TOKEN;

const credential = await client.beta.agents.vaults.credentials.create(vaultId, {
  name: "GitHub access token",
  auth: {
    type: "static_bearer",
    mcp_server_url: mcpUrl,
    token: accessToken,
  },
});

Salve o ID da credencial como credential_id para atualizações futuras.

Passe o ID salvo em vault_ids ao criar uma sessão. Use a mesma URL do servidor na configuração MCP:

Associar o cofre a uma sessão
// Replace the illustrative IDs and URLs below with your own resource values.
const mcpUrl = "https://api.githubcopilot.com/mcp/";
const vaultId = "vault_123";

const session = await client.beta.agents.sessions.create({
  agent: {
    model: "gpt-6-astra",
    tools: [
      {
        type: "mcp",
        server_label: "github",
        transport: {
          type: "http",
          server_url: mcpUrl,
        },
        allowed_tools: ["search_issues", "issue_read"],
        required: true,
        connection_origin: "service",
      },
    ],
  },
  environment: {
    type: "none",
  },
  input: "Find open bugs reported in the last week.",
  vault_ids: [vaultId],
});

A API de Agentes seleciona uma credencial que corresponde à URL do servidor. Se várias credenciais associadas corresponderem, defina credential_id na ferramenta MCP para selecionar uma delas. Recuperar um cofre ou uma credencial não retorna seus valores secretos.

Use credenciais OAuth

Sua aplicação gerencia o fluxo de autorização e consentimento do provedor. Armazene a concessão resultante com auth.type: "mcp_oauth". Defina expires_at com a data e hora de expiração do token de acesso no formato RFC 3339, se conhecidas.

O exemplo a seguir usa valores do fluxo OAuth do seu provedor. Inclua refresh para permitir que a API de Agentes renove o token:

Armazenar uma concessão OAuth
// Replace the illustrative expiry with your access token's actual expiry.
// Replace the illustrative IDs and URLs below with your own resource values.
const vaultId = "vault_123";
const mcpUrl = "https://mcp.example.com/mcp";
const accessToken = process.env.OAUTH_ACCESS_TOKEN;
const expiresAt = "2030-01-01T00:00:00Z";
const tokenEndpoint = "https://auth.example.com/oauth/token";
const clientId = "example-client-id";
const refreshToken = process.env.OAUTH_REFRESH_TOKEN;

const credential = await client.beta.agents.vaults.credentials.create(vaultId, {
  name: "Example MCP OAuth credential",
  auth: {
    type: "mcp_oauth",
    mcp_server_url: mcpUrl,
    access_token: accessToken,
    expires_at: expiresAt,
    refresh: {
      token_endpoint: tokenEndpoint,
      client_id: clientId,
      refresh_token: refreshToken,
      token_endpoint_auth: {
        type: "none",
      },
    },
  },
});

Use o método de autenticação do endpoint de token exigido pelo seu provedor. O exemplo usa none; client_secret_basic e client_secret_post também são compatíveis. Consulte os campos na referência de criação de credenciais.

Se não for possível renovar um token expirado, forneça um token válido para substituí-lo. A expiração do token não exclui a credencial nem seu cofre.

Faça a rotação ou remova credenciais

Atualize uma credencial para substituir seu token sem alterar seu ID, tipo de autenticação ou URL do servidor. Para OAuth, use os valores salvos de vault_id e credential_id com o token substituto e sua data de expiração:

Fazer a rotação de um token OAuth
// Replace the illustrative expiry with your access token's actual expiry.
// Replace the illustrative IDs and URLs below with your own resource values.
const credentialId = "cred_123";
const vaultId = "vault_123";
const accessToken = process.env.OAUTH_ACCESS_TOKEN;
const expiresAt = "2030-01-01T00:00:00Z";

const credential = await client.beta.agents.vaults.credentials.update(
  credentialId,
  {
    vault_id: vaultId,
    ...{
      auth: {
        type: "mcp_oauth",
        access_token: accessToken,
        expires_at: expiresAt,
      },
    },
  }
);

Inclua expires_at se o token substituto tiver prazo de validade. Fornecer um novo token de acesso sem data de expiração remove a data de expiração armazenada; um null explícito também a remove.

Exclua uma credencial quando não precisar mais dela. Exclua um cofre para remover o cofre e todas as suas credenciais.

Excluir credenciais armazenadas não revoga os tokens originais nos respectivos provedores nem interrompe uma sessão em execução. Sua aplicação gerencia a revogação no provedor e o cancelamento da sessão.