Connecteurs et MCP

Donnez à l'agent des connecteurs Mistral et des serveurs MCP distants.

Guide : Connecteurs.

NomDéfinition
agents.connectorDonnez à l'agent un connecteur Mistral en précisant son nom, par exemple agents.connector("notion").
ConnectorUn connecteur Mistral utilisé par l'agent, renvoyé par agents.connector(name).
agents.all_connectorsDonnez à l'agent tous les connecteurs que l'utilisateur qui exécute la session a connectés.
AllConnectorsTous les connecteurs que l'utilisateur qui exécute la session a connectés au moment où elle démarre.
RemoteMCPUn serveur MCP auquel l'agent accède via HTTP, déclaré sous un nom dans Agent(mcps=...).
agents.connector

agents.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,
) -> Connector

Donnez à 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'?.

ParamètreTypeValeur par défautDescription
namestrobligatoireLe nom du connecteur, par exemple "notion".
run_asLiteral['auto', 'deployment'] | NoneNoneL'identité dont le connecteur utilise la connexion : "auto" ou "deployment". None équivaut à "auto".
auto_authboolTrueIndique si l'absence de connexion déclenche un parcours d'autorisation demandant à l'utilisateur de se connecter.
credentials_namestr | NoneNoneLe nom de l'un des jeux d'identifiants enregistrés du connecteur, par exemple "team". None laisse le choix à l'API des connecteurs.
allow_mcp_uiboolFalseIndique si les ressources d'applications MCP déclarées par les outils du connecteur s'affichent après leurs appels.
Connector

Connector

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

ParamètreTypeValeur par défautDescription
connector_namestrobligatoireLe nom du connecteur, par exemple "notion".
run_asLiteral['auto', 'deployment'] | NoneNoneL'identité dont le connecteur utilise la connexion : "auto" ou "deployment", comme pour connector. None équivaut à "auto".
auto_authboolTrueIndique si l'absence de connexion déclenche un parcours d'autorisation demandant à l'utilisateur de se connecter.
credentials_namestr | NoneNoneLe nom de l'un des jeux d'identifiants enregistrés du connecteur, par exemple "team". None laisse le choix à l'API des connecteurs.
allow_mcp_uiboolFalseIndique si les ressources d'applications MCP déclarées par les outils du connecteur s'affichent après leurs appels.
agents.all_connectors

agents.all_connectors

def agents.all_connectors(
    *,
    exclude: Sequence[str] = (),
    max_connectors: int | None = None,
    auto_auth: bool = True,
    allow_mcp_ui: bool = False,
) -> AllConnectors

Donnez à 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"),
    ]
)
ParamètreTypeValeur par défautDescription
excludeSequence[str]()Les noms des connecteurs à exclure de l'ensemble.
max_connectorsint | NoneNoneLe nombre maximal de connecteurs découverts que l'agent monte, en prenant les premiers dans l'ordre des noms. Seuls les connecteurs accessibles à l'utilisateur sont comptés, et un connecteur que vous nommez explicitement n'est jamais exclu par cette limite. None ne fixe aucune limite.
auto_authboolTrueIndique si l'agent peut demander à l'utilisateur de connecter un connecteur découvert qui n'est pas encore connecté.
allow_mcp_uiboolFalseIndique si les ressources d'applications MCP s'affichent pour chaque connecteur découvert.
AllConnectors

AllConnectors

class AllConnectors

Tous 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".

AttributTypeDescription
excludetuple[str, ...]Les noms des connecteurs à exclure de l'ensemble.
max_connectorsint | NoneLe 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_authboolIndique si l'agent peut demander à l'utilisateur de connecter un connecteur découvert qui n'est pas encore connecté.
allow_mcp_uiboolIndique si les ressources d'applications MCP s'affichent pour chaque connecteur découvert.
MCP

MCP

RemoteMCP

RemoteMCP

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ètreTypeValeur par défautDescription
urlstrobligatoireL'endpoint http:// ou https:// du serveur.
auth_header_env_varsMapping[str, str] | NoneNoneAssocie 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_accessToolModelAccess | NoneNoneLe 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_toolsSequence[str] | NoneNoneLes noms des outils à exclure, tels que définis par le serveur.
startup_timeout_secondsfloat | NoneNoneLa durée maximale de récupération de la liste des outils du serveur. Valeur par défaut : 30.
tool_timeout_secondsfloat | NoneNoneLa durée maximale d'un appel d'outil. Valeur par défaut : 300.
namespacestr | NoneNoneL'espace de noms des outils du serveur. Par défaut, il correspond à la clé du serveur dans mcps.
idstr | NoneNoneL'identifiant du serveur, indiqué par Notice.source et ContextMessage.source. Par défaut, il correspond à la clé du serveur dans mcps.
namestr | NoneNoneLe 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.