Type de page: docs

Compatibilité OpenAI MCP

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

Réponse directe

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`.
Markdown