Appel MCP dans OCI Generative AI

Les outils MCP (Model Context Protocol) sont des fonctions exécutables ou des fonctionnalités que les modèles d'IA peuvent utiliser pour interagir avec des systèmes externes. Utilisez l'appel MCP dans OCI Generative AI 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 que des API, des bases de données, des systèmes de fichiers ou des adresses d'application. OCI Generative AI communique directement avec les serveurs MCP distants dans le cadre du workflow de demande.

Remarque

L'outil d'appel OCI MCP utilise le même format que l'appel OpenAI MCP pour l'API de réponses, avec l'adresse compatible OCI OpenAI. Pour plus d'informations sur la syntaxe et les demandes, reportez-vous à la documentation 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 voulez :

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

Principales fonctionnalités

MCP Calling offre les avantages suivants :

  • Communication directe entre la plate-forme et le serveur : contrairement à l'appel de fonction standard, qui renvoie le contrôle à l'application client, l'appel MCP permet à OCI Generative AI de communiquer directement avec le serveur MCP distant.
  • Latence réduite : la demande ne nécessitant pas d'aller-retour client supplémentaire, l'appel MCP peut réduire la surcharge de l'orchestration.

  • Prise en charge du transport : prend en charge le protocole HTTP Streamable (SSE en phase d'abandon 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 transmet la réponse et imprime le texte au fur et à mesure qu'il est généré.

Limitation des outils exposés par un serveur MCP

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

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,
)

Authentification du 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 via TLS. OCI ne décode pas, n'inspecte pas, ne stocke pas et ne consigne pas le jeton. Nous vous recommandons d'utiliser des adresses de serveur MCP chiffrées par TLS.