For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navigation principale

Coffres-forts

Stockez des identifiants MCP et associez-les aux sessions d’agent.

Un coffre-fort stocke les identifiants d’authentification des connexions MCP établies depuis OpenAI. Associez-le à une session pour que l’agent puisse utiliser des outils authentifiés sans recevoir les valeurs secrètes.

Les coffres-forts prennent en charge les tokens porteurs et les autorisations OAuth existantes. Pour les connexions établies depuis votre environnement, utilisez les autres options d’authentification MCP.

Autorisations

Pour une clé d’application à accès restreint, accordez les autorisations suivantes :

  • api.vaults.read pour lister et récupérer les coffres-forts et les identifiants d’authentification.
  • api.vaults.write pour les créer, les mettre à jour ou les supprimer.

Créez et utilisez un coffre-fort

Utilisez votre client API, l’URL du serveur MCP (mcp_url) et un token d’accès à ce serveur (access_token). Les exemples utilisent des outils GitHub.

Commencez par créer un coffre-fort :

Créez un coffre-fort
const vault = await client.beta.agents.vaults.create({
  name: "GitHub credentials",
  metadata: {
    external_user_id: "user_123",
  },
});

Enregistrez son ID dans vault_id, puis ajoutez le token. mcp_server_url associe l’identifiant d’authentification à ce serveur :

Stockez un token porteur
// 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,
  },
});

Enregistrez l’ID de l’identifiant d’authentification dans credential_id pour les mises à jour ultérieures.

Transmettez l’ID enregistré dans vault_ids lors de la création d’une session. Utilisez la même URL de serveur dans la configuration MCP :

Associez le coffre-fort à une session
// 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],
});

L’API Agents sélectionne un identifiant d’authentification correspondant à l’URL du serveur. Si plusieurs identifiants associés correspondent, définissez credential_id dans l’outil MCP pour en sélectionner un. La récupération d’un coffre-fort ou d’un identifiant d’authentification ne renvoie pas ses valeurs secrètes.

Utilisez des identifiants OAuth

Votre application gère le parcours d’autorisation et de consentement du fournisseur. Stockez l’autorisation obtenue avec auth.type: "mcp_oauth". Si la date d’expiration du token d’accès est connue, renseignez-la dans expires_at sous forme d’horodatage RFC 3339.

L’exemple suivant utilise des valeurs issues du flux OAuth de votre fournisseur. Incluez refresh pour permettre à l’API Agents de rafraîchir le token :

Stockez une autorisation 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",
      },
    },
  },
});

Utilisez la méthode d’authentification au point de terminaison des tokens exigée par votre fournisseur. L’exemple utilise none ; client_secret_basic et client_secret_post sont également pris en charge. Consultez la référence de création des identifiants d’authentification pour connaître les champs.

Si un token expiré ne peut pas être rafraîchi, fournissez un token de remplacement valide. L’expiration d’un token ne supprime ni l’identifiant d’authentification ni son coffre-fort.

Renouvelez ou supprimez des identifiants d’authentification

Mettez à jour un identifiant d’authentification pour remplacer son token sans modifier son ID, son type d’authentification ni l’URL de son serveur. Pour OAuth, utilisez les valeurs vault_id et credential_id enregistrées, avec le token de remplacement et sa date d’expiration :

Renouvelez un 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,
      },
    },
  }
);

Incluez expires_at si le token de remplacement a une date d’expiration. Fournir un nouveau token d’accès sans date d’expiration efface la date d’expiration enregistrée ; une valeur null explicite l’efface également.

Supprimez un identifiant d’authentification lorsque vous n’en avez plus besoin. Supprimez un coffre-fort pour le supprimer ainsi que tous les identifiants d’authentification qu’il contient.

La suppression des identifiants d’authentification stockés ne révoque pas les tokens d’origine auprès de leurs fournisseurs et n’arrête pas les sessions en cours. Votre application gère la révocation côté fournisseur et l’annulation des sessions.