Aller au contenu principal

Appeler les outils depuis votre code

Cette page s’adresse aux développeurs qui veulent faire appeler les outils de NameBeta par un script, un service backend ou un agent qu’ils exécutent eux-mêmes, plutôt que par un assistant comme Claude ou Cursor.

Chaque jeton provient d’une connexion effectuée par une personne​

NameBeta ne propose ni clés API ni octroi par identifiants client (client credentials). Chaque jeton d’accès accepté par le serveur MCP a été émis après qu’un utilisateur NameBeta s’est connecté dans un navigateur et a autorisé le client sur l’écran de consentement, comme le décrit la page Autorisation. Un programme qui s’exécute sans surveillance ne peut pas obtenir seul son premier jeton : une personne doit effectuer cette connexion une fois.

Après cette connexion, le programme peut continuer à fonctionner sans intervention s’il dispose d’un jeton d’actualisation : demandez offline_access avec prompt=consent, comme décrit dans la section Requête d’autorisation, puis utilisez le jeton d’actualisation pour obtenir de nouveaux jetons d’accès à mesure qu’ils expirent.

Pas encore d’exemple de code

Nous n’avons pas encore fait passer l’un de nos propres scripts par ce flux de bout en bout : cette page décrit donc les étapes, sans code. Le Journal des modifications signalera l’ajout d’un exemple testé.

Les approches qui fonctionnent aujourd’hui​

Utiliser un agent qui est déjà un client MCP​

Si vous avez besoin d’un agent disposant des outils de NameBeta plutôt que de votre propre client, utilisez l’un des clients documentés : ils gèrent eux-mêmes la connexion et l’actualisation des jetons. Claude Code et Codex s’exécutent dans un terminal et dans des scripts.

Développer votre propre client OAuth​

Pour appeler le point de terminaison depuis votre propre code, votre programme doit se comporter en client OAuth :

  1. Hébergez un Client ID Metadata Document à une URL HTTPS que vous contrôlez. Cette URL est votre client_id ; le document indique le nom de votre client et ses URI de redirection. La section Enregistrement du client explique pourquoi il n’existe pas d’autre étape d’enregistrement. Si vous ne pouvez pas en héberger un, demandez un identifiant client préenregistré.
  2. Exécutez une fois le flux par code d’autorisation avec PKCE, dans un navigateur, en tant qu’utilisateur NameBeta dont le forfait doit être décompté. Envoyez resource=https://namebeta.com/api/mcp, et demandez offline_access avec prompt=consent pour obtenir un jeton d’actualisation.
  3. Stockez le jeton d’actualisation à un endroit accessible à votre programme, et échangez-le contre un nouveau jeton d’accès lorsque le jeton en cours expire.
  4. Appelez le point de terminaison avec Authorization: Bearer <access token>, une requête JSON-RPC par POST, comme le décrit la page Point de terminaison et transport.

Les SDK MCP officiels implémentent les étapes 2 et 4. Le SDK TypeScript (@modelcontextprotocol/sdk, 1.30.0) utilise un Client ID Metadata Document lorsque le serveur d’autorisation le prend en charge et que l’OAuthClientProvider du client définit clientMetadataUrl ; c’est toujours à vous d’héberger le document.

Transmettre un jeton à l’API d’un modèle​

Les connecteurs MCP des API de modèles appellent le serveur à votre place, mais ils ne gèrent pas la connexion. Vous leur transmettez un jeton d’accès obtenu comme décrit dans la section précédente, et vous l’actualisez vous-même :

APIEmplacement du jetonDocumentation de l’éditeur
Claude API (Messages)authorization_token de l’entrée dans mcp_serversMCP connector
OpenAI API (Responses)authorization de l’outil mcpMCP and Connectors

La documentation d’Anthropic indique : « API consumers are expected to handle the OAuth flow and obtain the access token prior to making the API call, and to refresh the token as needed. » (Les utilisateurs de l’API doivent gérer eux-mêmes le flux OAuth et obtenir le jeton d’accès avant d’appeler l’API, puis actualiser le jeton si nécessaire.) Celle d’OpenAI indique : « OAuth client registration and authorization must be handled separately by your application. » (L’enregistrement du client OAuth et l’autorisation doivent être gérés séparément par votre application.)

Ce qui ne fonctionne pas​

  • Un jeton copié depuis un autre client. Il a été émis pour ce client et finira par expirer ; développez plutôt votre propre client.
  • Dynamic Client Registration. NameBeta ne le propose pas ; consultez Enregistrement du client.