Gestion des connecteurs
Avant de pouvoir utiliser un connecteur dans des conversations ou d'appeler ses outils, vous devez l'enregistrer. Cette page décrit l'ensemble du cycle de vie d'un connecteur :
- Créer un connecteur en indiquant l'URL du serveur MCP et le niveau de visibilité.
- Authentifier (si le serveur MCP nécessite OAuth).
- Lister les outils pour découvrir les fonctionnalités exposées par le connecteur.
- Utiliser le connecteur dans les conversations ou via un appel direct d'outil.
- Mettre à jour ou supprimer le connecteur lorsqu'il n'est plus nécessaire.
Créer un connecteur
Enregistrez un nouveau connecteur MCP en fournissant un nom, une URL de serveur MCP et une portée de visibilité.
private— seul le créateur peut l'utiliser.shared_workspace— toute personne ayant accès au même espace de travail.shared_org— toutes les personnes de l'organisation. Seuls les administrateurs de l'organisation peuvent créer et gérer ces connecteurs.
Vous pouvez référencer un connecteur par son nom ou son UUID, car les noms de connecteurs sont uniques dans un espace de travail.
Le champ name accepte jusqu'à 64 caractères, uniquement alphanumériques, tirets et underscores compris.
import asyncio
from mistralai.client import Mistral
client = Mistral(api_key="your-api-key")
async def main() -> None:
connector = await client.beta.connectors.create_async(
name="my_deepwiki",
description="DeepWiki MCP connector for code repository exploration",
server="https://mcp.deepwiki.com/mcp",
visibility="private",
)
print(f"ID: {connector.id}")
print(f"Name: {connector.name}")
print(f"Description: {connector.description}")
print(f"Server URL: {connector.server}")
print(f"Auth type: {connector.auth_type}")
print(f"Created at: {connector.created_at}")
print(f"Modified at: {connector.modified_at}")
asyncio.run(main())L'endpoint create accepte aussi les champs optionnels suivants :
| Champ | Type | Description |
|---|---|---|
icon_url | string | URL de l'icône associée au connecteur. |
headers | object | En-têtes HTTP envoyés à chaque requête vers le serveur MCP, par exemple pour des clés API statiques. |
auth_data | object | client_id et client_secret OAuth2 — requis si le serveur MCP utilise OAuth. |
system_prompt | string | Prompt système injecté lors de l'utilisation des outils de ce connecteur. |
Authentifier un connecteur
Si le serveur MCP nécessite OAuth, récupérez l'URL d'autorisation et redirigez l'utilisateur afin qu'il puisse accorder l'accès. Une fois l'authentification terminée, l'utilisateur est renvoyé vers app_return_url.
Le passage programmatique des jetons n'est pas pris en charge. Utilisez plutôt Studio pour authentifier les connecteurs.
La réponse comprend deux champs :
auth_url— URL vers laquelle rediriger l'utilisateur.ttl— durée (en secondes) pendant laquelle l'URL reste valide.
import asyncio
from mistralai.client import Mistral
client = Mistral(api_key="your-api-key")
async def main() -> None:
result = await client.beta.connectors.get_auth_url_async(
connector_id_or_name="gmail",
app_return_url="https://myapp.example.com/oauth/callback",
)
print(f"Auth URL: {result.auth_url}")
print(f"TTL: {result.ttl}s")
asyncio.run(main())Récupérer des connecteurs
Récupérer un connecteur unique
Récupérez un connecteur par son nom ou son UUID. La réponse inclut un tableau tools avec les outils MCP que le connecteur expose, s'ils ont déjà été découverts. Pour lister ou actualiser explicitement les outils, consultez la section lister les outils.
import asyncio
from mistralai.client import Mistral
client = Mistral(api_key="your-api-key")
async def main() -> None:
# Par nom
connector_by_name = await client.beta.connectors.get_async(
connector_id_or_name="my_deepwiki"
)
print(f"Name: {connector_by_name.name}")
print(f"ID: {connector_by_name.id}")
# Par UUID (équivalent)
connector_by_id = await client.beta.connectors.get_async(
connector_id_or_name=str(connector_by_name.id)
)
print(f"Description: {connector_by_id.description}")
asyncio.run(main())Lister tous les connecteurs
Listez les connecteurs avec pagination par curseur. Utilisez next_cursor pour récupérer les pages suivantes.
Transmettez query_filters pour filtrer les résultats. Par exemple, active: true ne renvoie que les connecteurs actifs pour votre utilisateur et votre espace de travail.
import asyncio
from mistralai.client import Mistral
client = Mistral(api_key="your-api-key")
async def main() -> None:
# List all connectors (first page)
page = await client.beta.connectors.list_async(page_size=10)
all_connectors = list(page.items)
for c in page.items:
print(f" - {c.name} ({c.id})")
# Fetch remaining pages
while page.pagination.next_cursor:
page = await client.beta.connectors.list_async(
page_size=10,
cursor=page.pagination.next_cursor,
)
all_connectors.extend(page.items)
print(f"Total: {len(all_connectors)} connectors")
# Filter active connectors only
active_page = await client.beta.connectors.list_async(
page_size=10,
query_filters={"active": True},
)
print(f"Active connectors: {len(active_page.items)}")
asyncio.run(main())Lister les outils
Listez les outils qu'un connecteur expose. Cela permet de vérifier les noms d'outils disponibles avant de les utiliser dans des conversations ou de les appeler directement.
Si le connecteur nécessite une authentification, l'utilisateur doit compléter le flux d'authentification avant de lister ou d'appeler ses outils.
import asyncio
from mistralai.client import Mistral
client = Mistral(api_key="your-api-key")
async def main() -> None:
tools = await client.beta.connectors.list_tools_async(
connector_id_or_name="my_deepwiki",
)
for tool in tools:
print(f" - {tool.name}: {tool.description}")
asyncio.run(main())Le endpoint supporte ces paramètres de requête :
| Paramètre | Par défaut | Description |
|---|---|---|
page | 1 | Numéro de page (pagination par offset). |
page_size | 100 | Nombre d'outils par page. |
refresh | false | Récupérer à nouveau les outils depuis le serveur MCP au lieu d'utiliser le cache. |
pretty | false | Renvoyer une charge utile simplifiée avec uniquement name, description, annotations et un inputSchema compact. |
Mettre à jour un connecteur
Mettez à jour un ou plusieurs champs d'un connecteur. Incluez uniquement les champs que vous souhaitez modifier. Le connector_id doit être l'UUID, pas le nom.
import asyncio
from mistralai.client import Mistral
client = Mistral(api_key="your-api-key")
async def main() -> None:
connector_id = "a1b2c3d4-5678-90ab-cdef-1234567890ab"
updated = await client.beta.connectors.update_async(
connector_id=connector_id,
description="Mis à jour : Connecteur DeepWiki pour l'exploration de code",
)
print(f"New description: {updated.description}")
asyncio.run(main())Vous pouvez mettre à jour ces champs : name, description, server, icon_url, system_prompt, headers et auth_data.
Supprimer un connecteur
Supprimez définitivement un connecteur. Tous les agents y faisant référence perdent l'accès à ses outils.
import asyncio
from mistralai.client import Mistral
client = Mistral(api_key="your-api-key")
async def main() -> None:
connector_id = "a1b2c3d4-5678-90ab-cdef-1234567890ab"
result = await client.beta.connectors.delete_async(
connector_id=connector_id,
)
print(f"Delete response: {result.message}")
asyncio.run(main())