Gestion des Connecteurs
Avant de pouvoir utiliser un Connecteur dans des conversations ou appeler ses outils, vous devez l’enregistrer. Cette page détaille le cycle de vie complet d’un Connecteur :
- Testez le serveur MCP dans le Débogueur de Connecteurs si vous souhaitez valider la connectivité au préalable.
- Créez un Connecteur avec l’URL du serveur MCP et la portées de visibilité.
- Authentifiez-vous si le serveur MCP nécessite OAuth.
- Listez les outils pour découvrir ceux exposés par le Connecteur.
- Utilisez le Connecteur dans des conversations ou via des appels directs d’outils.
- Mettez à jour ou supprimez 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 dans le même espace de travail.shared_org: toute personne dans 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 Connecteur sont uniques au sein d’un espace de travail.
Le champ name accepte jusqu’à 64 caractères, alphanumériques avec des traits de soulignement et des tirets uniquement.
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 également les champs facultatifs suivants :'
| Champ | Type | Description |
|---|---|---|
icon_url | string | URL de l’icône à associer au Connecteur. |
headers | object | En-têtes HTTP envoyés avec chaque requête au serveur MCP, par exemple 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é lorsque les outils de ce Connecteur sont utilisés. |
Authentifier un Connecteur
Si le serveur MCP nécessite OAuth, récupérez l’URL d’autorisation et redirigez l’utilisateur pour qu’il accorde l’accès. Une fois le processus d’authentification terminé, l’utilisateur est redirigé vers app_return_url.
La transmission de tokens de manière programmatique n’est pas prise en charge. Utilisez Studio pour authentifier les Connecteurs à la place.
La réponse comprend deux champs :
auth_url: l’URL vers laquelle rediriger l’utilisateur.ttl: durée pendant laquelle l’URL reste valide, en secondes.
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 seul Connecteur
Récupérez un Connecteur par son nom ou son UUID. La réponse inclut un tableau tools avec les outils MCP exposés par le Connecteur, s’ils ont déjà été découverts. Pour lister ou actualiser explicitement les outils, voir la section lister les outils.
import asyncio
from mistralai.client import Mistral
client = Mistral(api_key="your-api-key")
async def main() -> None:
# By name
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}")
# By UUID (equivalent)
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 une pagination basée sur un curseur. Utilisez next_cursor pour récupérer les pages suivantes.
Transmettez query_filters pour filtrer les résultats. Par exemple, active: true retourne uniquement 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 exposés par un Connecteur. Cela permet de vérifier les noms des outils disponibles avant de les utiliser dans des conversations ou de les appeler directement.
Si le Connecteur nécessite une authentification, l’utilisateur doit terminer le flux d’authentification avant de pouvoir lister ou 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())L’endpoint prend en charge les paramètres de requête suivants :
| Paramètre | Valeur par défaut | Description |
|---|---|---|
page | 1 | Numéro de page (pagination par décalage). |
page_size | 100 | Nombre d’outils par page. |
refresh | false | Récupère à nouveau les outils depuis le serveur MCP au lieu d’utiliser le cache. |
pretty | false | Retourne 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. connector_id doit être l’UUID et non 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="Updated: DeepWiki connector for code exploration",
)
print(f"New description: {updated.description}")
asyncio.run(main())Vous pouvez mettre à jour les champs suivants : name, description, server, icon_url, system_prompt, headers et auth_data.
Supprimer un Connecteur
Supprimez définitivement un Connecteur. Tout agent qui y fait référence perd 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())