Connecteurs et MCP
Donnez à l'agent des connecteurs Mistral et des serveurs MCP distants.
Guide : Connecteurs.
| Nom | Définition |
|---|---|
agents.connector | Donnez à l'agent un connecteur Mistral en précisant son nom, par exemple agents.connector("notion"). |
Connector | Un connecteur Mistral utilisé par l'agent, renvoyé par agents.connector(name). |
agents.all_connectors | Donnez à l'agent tous les connecteurs que l'utilisateur qui exécute la session a connectés. |
AllConnectors | Tous les connecteurs que l'utilisateur qui exécute la session a connectés au moment où elle démarre. |
RemoteMCP | Un serveur MCP auquel l'agent accède via HTTP, déclaré sous un nom dans Agent(mcps=...). |
agents.connectoragents.connector
def agents.connector(
name: str,
*,
run_as: Literal['auto', 'deployment'] | None = None,
auto_auth: bool = True,
credentials_name: str | None = None,
allow_mcp_ui: bool = False,
) -> ConnectorDonnez à l'agent un connecteur Mistral en précisant son nom, par exemple agents.connector("notion").
Le connecteur utilise la connexion de l'utilisateur qui exécute la session. Avec run_as="deployment", il utilise celle de l'identité sous laquelle le déploiement s'exécute ; en local, les deux utilisent votre MISTRAL_API_KEY. Tous les connecteurs d'un agent doivent utiliser les mêmes valeurs de run_as et auto_auth, et chaque connecteur ne doit être nommé qu'une fois. Sinon, la session ne démarre pas ; agents info et agents serve signalent le problème en amont.
Avec la valeur par défaut de run_as, l'agent agit au nom de l'utilisateur qui exécute la session. Son déploiement doit donc être sécurisé : seules les identités qui lui sont explicitement associées peuvent l'exécuter. agents serve et agents deploy le sécurisent pour vous ; consultez Déploiements sécurisés.
Un nom qui ne correspond à aucun connecteur, ou un connecteur dont le chargement échoue, n'empêche pas la session de démarrer : elle démarre sans ce connecteur, vous recevez un agents.Notice, et le SDK consigne un avertissement tel que No Mistral connector is named 'Lienar'. Did you mean 'linear'?.
ConnectorConnector
class Connector(
connector_name: str,
*,
run_as: Literal['auto', 'deployment'] | None = None,
auto_auth: bool = True,
credentials_name: str | None = None,
allow_mcp_ui: bool = False,
)Un connecteur Mistral utilisé par l'agent, renvoyé par agents.connector(name).
agents.all_connectorsagents.all_connectors
def agents.all_connectors(
*,
exclude: Sequence[str] = (),
max_connectors: int | None = None,
auto_auth: bool = True,
allow_mcp_ui: bool = False,
) -> AllConnectorsDonnez à l'agent tous les connecteurs que l'utilisateur qui exécute la session a connectés.
exclude exclut des connecteurs par leur nom. Ne définissez pas max_connectors : ce paramètre conserve
les premiers connecteurs dans l'ordre des noms, pas ceux dont la tâche a besoin. Réduisez l'ensemble avec
exclude.
auto_auth et allow_mcp_ui s'appliquent à chaque connecteur découvert et
ont le même sens que pour connector. Pour donner à un connecteur sa propre valeur de
credentials_name ou allow_mcp_ui, nommez-le avec agents.connector(...)
dans la même liste ; cette déclaration explicite est alors prioritaire pour ce connecteur. Il doit conserver la
même valeur de auto_auth et la valeur par défaut de run_as, sinon la session ne démarre pas. Par exemple,
cet agent reçoit tous les connecteurs sauf Jira, et utilise Notion avec les identifiants team :
agents.Agent(
model="mistral-large-4",
connectors=[
agents.all_connectors(exclude=["jira"]),
agents.connector("notion", credentials_name="team"),
]
)AllConnectorsAllConnectors
class AllConnectorsTous les connecteurs que l'utilisateur qui exécute la session a connectés au moment où elle démarre.
agents.all_connectors() renvoie cet ensemble. Un connecteur en fait partie s'il est actif dans
l'espace de travail de l'utilisateur, dispose d'outils MCP et a été connecté par l'utilisateur. Avec auto_auth, l'agent
peut aussi découvrir les autres connecteurs et demander à l'utilisateur d'en connecter un.
L'ensemble utilise toujours les connexions de l'utilisateur : il ne propose pas de forme run_as="deployment".
| Attribut | Type | Description |
|---|---|---|
exclude | tuple[str, ...] | Les noms des connecteurs à exclure de l'ensemble. |
max_connectors | int | None | Le nombre maximal de connecteurs découverts que l'agent monte, en prenant les premiers dans l'ordre des noms. None ne fixe aucune limite. |
auto_auth | bool | Indique si l'agent peut demander à l'utilisateur de connecter un connecteur découvert qui n'est pas encore connecté. |
allow_mcp_ui | bool | Indique si les ressources d'applications MCP s'affichent pour chaque connecteur découvert. |
MCP
RemoteMCPRemoteMCP
class RemoteMCP(
*,
url: str,
auth_header_env_vars: Mapping[str, str] | None = None,
model_access: ToolModelAccess | None = None,
disabled_tools: Sequence[str] | None = None,
startup_timeout_seconds: float | None = None,
tool_timeout_seconds: float | None = None,
namespace: str | None = None,
id: str | None = None,
name: str | None = None,
)Un serveur MCP auquel l'agent accède via HTTP, déclaré sous un nom dans Agent(mcps=...).
Chacun de ses outils possède un identifiant <namespace>.<tool name>, par exemple github.create_issue :
les règles d'autorisation, les approbations et les hooks utilisent cet identifiant pour désigner l'outil. Deux serveurs d'un même agent ne peuvent pas
partager un espace de noms ni un id ; attribuez donc à chacun sa propre clé dans mcps=.
Un mot-clé mal orthographié lève une erreur TypeError, et une valeur incorrecte lève une erreur SdkError qui précise
l'argument concerné. La définition de l'agent lève une erreur SdkError si deux serveurs partagent un espace de noms, ou si un
espace de noms est déjà utilisé par les outils intégrés ou les outils propres au SDK.
| Paramètre | Type | Valeur par défaut | Description |
|---|---|---|---|
url | str | obligatoire | L'endpoint http:// ou https:// du serveur. |
auth_header_env_vars | Mapping[str, str] | None | None | Associe chaque nom d'en-tête au nom de la variable d'environnement contenant sa valeur complète, lue dans l'environnement d'exécution de l'agent. |
model_access | ToolModelAccess | None | None | Le mode d'accès du modèle aux outils du serveur, défini par un agents.ToolModelAccess : "direct", "programmatic" ou "both". Si ce paramètre n'est pas défini, il vaut "direct" pour un agent sans programmes et "programmatic" sinon. |
disabled_tools | Sequence[str] | None | None | Les noms des outils à exclure, tels que définis par le serveur. |
startup_timeout_seconds | float | None | None | La durée maximale de récupération de la liste des outils du serveur. Valeur par défaut : 30. |
tool_timeout_seconds | float | None | None | La durée maximale d'un appel d'outil. Valeur par défaut : 300. |
namespace | str | None | None | L'espace de noms des outils du serveur. Par défaut, il correspond à la clé du serveur dans mcps. |
id | str | None | None | L'identifiant du serveur, indiqué par Notice.source et ContextMessage.source. Par défaut, il correspond à la clé du serveur dans mcps. |
name | str | None | None | Le nom du serveur dans les messages que le modèle reçoit à son sujet, par exemple lorsque ses outils ne peuvent pas être utilisés. Par défaut, il correspond à la clé du serveur dans mcps. |