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

Tresore

Speichere MCP-Zugangsdaten und verknüpfe sie mit Agentensitzungen.

Ein Tresor speichert Zugangsdaten für MCP-Verbindungen von OpenAI aus. Verknüpfe ihn mit einer Sitzung, damit der Agent Werkzeuge mit Authentifizierung nutzen kann, ohne die geheimen Werte zu erhalten.

Tresore unterstützen Bearer-Token und bestehende OAuth-Autorisierungen. Verwende für Verbindungen aus deiner Umgebung die anderen Optionen zur MCP-Authentifizierung.

Berechtigungen

Erteile einem eingeschränkten Anwendungsschlüssel folgende Berechtigungen:

  • api.vaults.read, um Tresore und Zugangsdaten aufzulisten und abzurufen.
  • api.vaults.write, um sie zu erstellen, zu aktualisieren oder zu löschen.

Einen Tresor erstellen und verwenden

Verwende deinen API-Client, die URL des MCP-Servers (mcp_url) und ein Zugriffstoken für diesen Server (access_token). Die Beispiele verwenden GitHub-Werkzeuge.

Erstelle zunächst einen Tresor:

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

Speichere seine ID als vault_id und füge dann das Token hinzu. mcp_server_url bindet die Zugangsdaten an diesen Server:

Ein Bearer-Token speichern
// 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,
  },
});

Speichere die ID der Zugangsdaten als credential_id für spätere Aktualisierungen.

Übergib die gespeicherte ID beim Erstellen einer Sitzung in vault_ids. Verwende in der MCP-Konfiguration dieselbe Server-URL:

Den Tresor mit einer Sitzung verknüpfen
// 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],
});

Die Agents API wählt Zugangsdaten aus, die zur Server-URL passen. Wenn mehrere verknüpfte Zugangsdaten passen, lege über credential_id des MCP-Werkzeugs fest, welche verwendet werden sollen. Beim Abrufen eines Tresors oder von Zugangsdaten werden keine geheimen Werte zurückgegeben.

OAuth-Zugangsdaten verwenden

Deine Anwendung übernimmt den Autorisierungs- und Zustimmungsablauf des Anbieters. Speichere die daraus resultierende Autorisierung mit auth.type: "mcp_oauth". Setze expires_at auf den Ablaufzeitpunkt des Zugriffstokens als RFC 3339-Zeitstempel, sofern dieser bekannt ist.

Das folgende Beispiel verwendet Werte aus dem OAuth-Ablauf deines Anbieters. Gib refresh an, damit die Agents API das Token erneuern kann:

Eine OAuth-Autorisierung speichern
// 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",
      },
    },
  },
});

Verwende die von deinem Anbieter vorgeschriebene Authentifizierungsmethode für den Token-Endpunkt. Das Beispiel verwendet none; client_secret_basic und client_secret_post werden ebenfalls unterstützt. Die Felder findest du in der Referenz zum Erstellen von Zugangsdaten.

Wenn ein abgelaufenes Token nicht erneuert werden kann, stelle ein gültiges Ersatztoken bereit. Beim Ablauf eines Tokens werden weder die Zugangsdaten noch ihr Tresor gelöscht.

Zugangsdaten rotieren oder entfernen

Aktualisiere Zugangsdaten, um ihr Token zu ersetzen, ohne ihre ID, ihren Authentifizierungstyp oder ihre Server-URL zu ändern. Verwende für OAuth die gespeicherten Werte vault_id und credential_id zusammen mit dem Ersatztoken und dessen Ablaufzeitpunkt:

Ein OAuth-Token rotieren
// 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,
      },
    },
  }
);

Gib expires_at an, wenn das Ersatztoken einen Ablaufzeitpunkt hat. Wenn du ein neues Zugriffstoken ohne Ablaufzeitpunkt übergibst, wird der gespeicherte Ablaufzeitpunkt gelöscht. Ein explizites null löscht ihn ebenfalls.

Lösche Zugangsdaten, wenn du sie nicht mehr benötigst. Lösche einen Tresor, um ihn und alle darin gespeicherten Zugangsdaten zu entfernen.

Das Löschen gespeicherter Zugangsdaten widerruft weder die ursprünglichen Token bei ihren Anbietern noch beendet es eine laufende Sitzung. Deine Anwendung übernimmt den Widerruf beim Anbieter und den Abbruch der Sitzung.