Appel MCP dans l'IA générative OCI

Les outils MCP (Model Context Protocol) sont des fonctions exécutables ou des capacités que les modèles d'IA peuvent utiliser pour interagir avec des systèmes externes. Utilisez l'appel MCP dans le service d'intelligence artificielle générative pour OCI pour permettre à un modèle d'accéder aux outils exécutables exposés par un serveur MCP distant lors d'une demande d'API de réponses. Ces outils peuvent fournir un accès à des systèmes externes tels qu'une API, des bases de données, des systèmes de fichiers ou des points d'extrémité d'application. OCI Generative AI communique directement avec les serveurs MCP distants dans le cadre du flux de travail de demande.

Note

L'outil d'appel MCP OCI utilise le même format que l'appel MCP OpenAI pour l'API Réponses, avec le point d'extrémité compatible OCI OpenAI. Pour plus de détails sur la syntaxe et les demandes, consultez la documentation d'OpenAI MCP.

Quand utiliser l'appel MCP

Utilisez l'appel MCP lorsque le modèle a besoin d'accéder aux outils hébergés sur un serveur MCP distant. Cette approche est utile lorsque vous souhaitez :

  • La plate-forme Enterprise AI Agent pour communiquer directement avec le serveur MCP
  • Moins d'étapes d'orchestration côté client
  • Latence inférieure à celle d'un modèle d'outil exécuté par le client
  • Accès aux outils exposés via un serveur MCP distant

Principales fonctions

MCP Calling offre les avantages suivants :

  • Communication directe entre plate-forme et serveur : Contrairement à l'appel de fonction standard, qui retourne le contrôle à l'application client, l'appel MCP permet à l'IA générative OCI de communiquer directement avec le serveur MCP distant.
  • Latence faible : Comme la demande ne nécessite pas d'aller-retour client supplémentaire, l'appel MCP peut réduire les frais généraux d'orchestration.

  • Prise en charge du transport : Prend en charge le protocole HTTP Streamable (SSE obsolète et non pris en charge).

Définition d'un outil MCP

Pour définir un outil MCP, ajoutez une entrée dans la propriété tools avec "type": "mcp".

response_stream = client.responses.create(
    model="openai.gpt-5.4",
    tools=[
        {
            "type": "mcp",
            "server_label": "dmcp",
            "server_description": "A Dungeons and Dragons MCP server to assist with dice rolling.",
            "server_url": "https://mcp.deepwiki.com/mcp",
            "require_approval": "never",
        },
    ],
    input="Roll 2d4+1",
    stream=True,
)

for event in response_stream:
    if event.type == "response.output_text.delta":
        print(event.delta, end="", flush=True)

Cet exemple montre comment diffuser la réponse et imprimer le texte au fur et à mesure qu'il est généré.

Restreindre les outils exposés par un serveur MCP

Un serveur MCP distant peut exposer de nombreux outils, ce qui peut augmenter le coût et la latence. Si l'application n'a besoin que d'un sous-ensemble de ces outils, utilisez allowed_tools pour limiter le jeu.

response_stream = client.responses.create(
    model="openai.gpt-oss-120b",
    tools=[
        {
            "type": "mcp",
            "server_label": "dmcp",
            "server_description": "A Dungeons and Dragons MCP server to assist with dice rolling.",
            "server_url": "https://mcp.deepwiki.com/mcp",
            "require_approval": "never",
            "allowed_tools": ["roll"],
        },
    ],
    input="Roll 2d4+1",
    stream=True,
    store=False,
)

Fournir l'authentification au serveur MCP

Si le serveur MCP distant nécessite une authentification, transmettez le jeton d'accès dans le champ authorization.

response_stream = client.responses.create(
    model="xai.grok-4-1-fast-reasoning",
    tools=[
        {
            "type": "mcp",
            "server_label": "calendar",
            "server_url": "https://calendar.example.com/mcp",
            "authorization": "$CALENDAR_OAUTH_ACCESS_TOKEN"
        },
    ],
    input="List my meetings for 2026-02-02.",
    stream=True
)

Transmettez uniquement la valeur de jeton brute. N'incluez pas le préfixe Bearer.

OCI envoie le jeton dans le corps de la demande d'API par TLS. OCI ne décode pas, n'inspecte pas, ne stocke pas ou n'enregistre pas le jeton. Nous vous recommandons d'utiliser des points d'extrémité de serveur MCP chiffrés TLS.