# Compatibilité OpenAI MCP

URL canonique: https://texttree.ai/fr/docs/openai-mcp/
URL Markdown: https://texttree.ai/fr/docs/openai-mcp.md
Type de page: docs
Translation status: draft
Legal status: english_controls

## Résumé

Détails de compatibilité des applications OpenAI et MCP SDK pour les outils, invites, ressources, schémas et métadonnées TextTree.

## Contenu source

# Prise en charge de OpenAI MCP

TextTree expose un point de terminaison MCP natif qui peut être utilisé par les clients MCP
compatible avec OpenAI :

```txt
https://api.texttree.ai/mcp
```

Le point de terminaison utilise Streamable HTTP sans état. Envoyez des messages JSON-RPC avec
`POST /mcp`, `Authorization: Bearer $TEXTREE_ACCESS_TOKEN`, `Accepter :
application/json, text/event-stream` y `Content-Type : application/json`.
`GET /mcp` et `DELETE /mcp` renvoient `405` car TextTree n'alloue pas
Sessions MCP côté serveur.

## Découverte OAuth

TextTree publie les métadonnées de découverte OAuth de MCP pour :

-`https://api.texttree.ai/.well-known/oauth-protected-resource/mcp`
-`https://api.texttree.ai/.well-known/oauth-authorization-server/mcp`

Les clients OAuth utilisent le code d'autorisation avec PKCE S256 et la ressource MCP
`https://api.texttree.ai/mcp`. Les jetons au porteur peuvent être liés par l'audience à cette ressource
MCP. Les jetons sans audience sont toujours acceptés pour des raisons de compatibilité.

## Versions du protocole

TextTree prend actuellement en charge :

- `2025-11-25`
- `2025-06-18`
- `2025-03-26`

Le serveur annonce des fonctionnalités pour les outils, les invites, les ressources et
achèvements. `initialize` renvoie des instructions spécifiques à TextTree qui indiquent aux utilisateurs
les agents lisent les ressources d'intégration et de facturation, collectent les destinations réelles
explicite avant l'ajout, et n'appelle que `messages.send` avec
SMS approuvé par le destinataire et une clé d'idempotence stable.

## Méthodes JSON-RPC

Le point de terminaison natif MCP accepte ces méthodes JSON-RPC :

| Méthode | Objectif |
| --- | --- |
| `initialize` | Démarre la négociation MCP et renvoie la version du protocole, les fonctionnalités, les informations sur le serveur et les instructions. |
| `notifications/initialized` | Marque le client comme prêt après l'initialisation. |
| `ping` | Vérifiez la disponibilité du point de terminaison. |
| `tools/list` | Répertorie les descripteurs d’outils disponibles. |
| `tools/call` | Exécutez un outil par son nom. |
| `resources/list` | Répertoriez les ressources statiques. |
| `resources/templates/list` | Répertorie les modèles de ressources. |
| `resources/read` | Lire une ressource par URI. |
| `prompts/list` | Répertorie les invites disponibles. |
| `prompts/get` | Obtient une invite par nom. |
| `completion/complete` | Renvoie la saisie semi-automatique des arguments pour les valeurs du chemin, du chemin de l'expéditeur et de la région. |

`notifications/initialized` et les autres messages `notifications/*` ne reçoivent pas
réponse. Comme indiqué ci-dessus, `GET /mcp` et `DELETE /mcp` renvoient `405`.

## Outils

Le journal actuel de l'outil est :

| Outil | Portée | Objectif |
| --- | --- | --- |
| `messages.send` | `messages:write` | Met en file d'attente un SMS sortant via le même itinéraire de messagerie que `/api/v1/messages`. |
| `onboarding.status` | `onboarding:read` | Inspecte le statut de constitution, le solde, les factures et la préparation de SMS. |
| `onboarding.create_invoice` | `onboarding:write` | Créez ou réutilisez une facture de financement de lancement. |
| `onboarding.invoice_status` | `onboarding:read` | Vérifiez l'état de la facture de financement. |
| `onboarding.test_sms` | `onboarding:write` | Envoyez le test fixe d’intégration Fast Send SMS. |
| `onboarding.request_dedicated_number` | `onboarding:write` | Envoyez des données professionnelles pour l'itinéraire de numéro dédié recommandé. |

Les appels d’outils via MCP natif nécessitent `mcp:execute` ainsi que toute portée spécifique à l’outil.
Le chemin REST hérité `POST /mcp/tools/:name` nécessite également `mcp:execute` plus
la portée spécifique de l’outil.

## Structure du descripteur d'outil

`tools/list` renvoie les descripteurs avec :

- `name`, `title` et `description`
- `inputSchema` du schéma JSON 2020-12
- `outputSchema` du schéma JSON 2020-12
- Annotations MCP : `readOnlyHint`, `destructiveHint`, `idempotentHint` et
`openWorldHint`
-`_meta["texttree/required_scope"]`
-`_meta["texttree/timeout_ms"]`

Les champs du widget de l’interface utilisateur des applications OpenAI ne sont actuellement pas fournis. TextTree non
inclut un composant Web Apps SDK, donc les descripteurs n'incluent pas
`_meta.ui.resourceUri` ni `_meta["openai/outputTemplate"]`. Si TextTree ajoute un
ChatGPT App UI plus tard, ces champs doivent pointer vers la ressource du modèle d'interface utilisateur et
les descripteurs doivent refléter tout `securitySchemes` dont les clients plus anciens ont besoin.

## Invites

Invites MCP actuelles :

-`texttree.onboard_agent`
- arguments : `path` (`dedicated_number` ou `fast_send`), `region`
- objectif : guider un agent lors de l'intégration d'un numéro dédié ou d'un Fast Send
-`texttree.first_send`
- arguments : `recipient_context`, `sender_path` (`dedicated_number` ou
`fast_send`)
- objectif : préparer une première expédition sécurisée de SMS après incorporation et financement

Des saisies semi-automatiques d'invite sont disponibles pour les arguments de chemin, de chemin d'expéditeur et de région.

## Ressources et modèles

Ressources actuelles :

-`texttree://mcp/tools`
-`texttree://onboarding/status`
-`texttree://billing/status`
-`texttree://messages/recent`

Modèles de ressources actuels :

-`texttree://invoices/{id}`
-`texttree://messages/{id}`
-`texttree://numbers/{id}`
-`texttree://onboarding/checklist`
-`texttree://billing/readiness`
-`texttree://elicitations/{correlation_id}`

Les lectures de ressources appliquent leurs étendues TextTree spécifiques par ressource avant de revenir
données.

## Modèle de sécurité

`messages.send` est le seul outil MCP actuel qui met en file d'attente un SMS sortant. C'est
marqué comme monde destructeur et ouvert, nécessite `messages:write` et passe par
les mêmes portes de suppression, de dépenses, de préparation de l'expéditeur et de livreur que
`POST /api/v1/messages`.
