Aller au contenu
English

Connecter les comptes MCP

Réutilisez une connexion déclarée à un serveur MCP ou configurez des identifiants client pour le harness intégré.

Définissez oauth sur un serveur MCP HTTP déclaré pour utiliser une connexion enregistrée ou des identifiants client. Cette option remplace bearerTokenVariable et tout en-tête Authorization ; choisissez la forme prise en charge par votre harness.

FormeHarnessSource du jeton
oauth: "login"Claude Code, Codex, Kimi CodeLa connexion MCP de la CLI, faite une fois sur l’hôte
oauth: { client… }Harness intégréUn grant client credentials demandé dans la sandbox
AucuneCopilot CLI, AntigravitybearerTokenVariable avec un jeton que vous fournissez

Un harness qui ne peut pas utiliser la forme déclarée échoue dès la composition de l’agent.

Connectez-vous sur l’hôte avec le même nom de serveur et la même URL que dans votre déclaration.

Déclarez ensuite oauth: "login".

import { createAgent, createCodexHarness } from "@elie-laloum/outpost";

const coder = createAgent({
  harness: createCodexHarness({
    authentication: "account",
    mcpServers: {
      linear: { url: "https://mcp.linear.app/mcp", oauth: "login" },
    },
  }),
});
CLIConnexion sur l’hôteFichier sur l’hôte (déplacé par)
Claude Codeclaude mcp add --transport http linear https://mcp.linear.app/mcp, puis claude mcp login linear~/.claude/.credentials.json (CLAUDE_CONFIG_DIR)
CodexDéfinissez mcp_oauth_credentials_store = "file" dans ~/.codex/config.toml, puis codex mcp login linear~/.codex/.credentials.json (CODEX_HOME)
Kimi CodeAjoutez le serveur à ~/.kimi-code/mcp.json, puis authentifiez-le dans une session kimi~/.kimi-code/credentials/mcp/ (KIMI_CODE_HOME)

Avant le démarrage de l’agent, Outpost copie uniquement les entrées des serveurs concernés dans le répertoire personnel privé de la sandbox. Vos autres connexions, dont le compte de la CLI lui-même, ne sont pas copiées par cette option. Une connexion absente échoue en indiquant la commande à lancer sur l’hôte.

Avec createLocalSandboxProvider(), rien n’est copié : la CLI lit directement votre répertoire personnel.

Pour les serveurs de machine à machine du harness intégré, nommez les variables qui contiennent l’identifiant et le secret du client.

import type { McpServers } from "@elie-laloum/outpost";

const mcpServers: McpServers = {
  internal: {
    url: "https://mcp.example.com/mcp",
    oauth: {
      clientIdVariable: "MCP_CLIENT_ID",
      clientSecretVariable: "MCP_CLIENT_SECRET",
      scopes: ["mcp:read"],
    },
  },
};
// createHarness({ modelProvider, mcpServers })

Déclarez les deux variables sur le fournisseur de sandbox ou dans .outpost/.env (Variables d’environnement). Sans scopes, le pont demande le scope indiqué par le challenge 401 du serveur, s’il y en a un.

Le pont HTTP de la sandbox obtient le jeton lui-même : le secret y reste et les règles sortantes s’appliquent aux demandes de jeton.

Glissez pour vous déplacer · Ctrl + molette pour zoomer
100 %
  • DécouvrirÀ partir de l’URL du serveur MCP.
    1. Lire les métadonnéesMétadonnées de la ressource protégée, puis celles du serveur d’autorisation et son point d’accès de jeton. sandbox
    (Étapes)
    • → Demander : puis
  • DemanderUn grant client_credentials.
    1. Authentifier le clientAvec client_secret_basic, ou client_secret_post si le serveur n’annonce que celui-ci. sandbox
    2. Lier le jetonL’URL du serveur est envoyée comme resource. sandbox
    (Étapes)
    • → Réutiliser : puis
  • RéutiliserJusqu’à l’expiration du jeton.
    1. Réessayer après un 401Refaire la découverte, demander un nouveau jeton et réessayer la requête une fois. sandbox
    (Étapes)
  • oauth concerne uniquement les serveurs HTTP et ne se combine ni avec bearerTokenVariable ni avec un en-tête Authorization.
  • Le harness intégré refuse "login" ; les harness CLI refusent les identifiants client.
  • Les identifiants client ne prennent en charge ni private_key_jwt, ni les refresh tokens, ni l’autorisation interactive.
  • Outpost ne lit jamais de trousseau système : une CLI qui y stocke sa connexion MCP n’a rien à copier.

API : McpHttpServer · McpClientCredentials · McpServers.