Chaque application Agent-Lab embarque un serveur Model Context Protocol
construit sur FastMCP, monté sur /mcp
(Streamable HTTP, sans état). Les clients MCP — Claude Desktop, les IDE, vos propres agents —
peuvent découvrir les agents de l'application, lire l'historique des dialogues et converser directement avec les agents. Le
serveur et ses registrars d'outils et de prompts participent au même mécanisme de découverte que les
agents : scan_packages et le groupe d'entry points agent_lab.agents.
Ce que le serveur expose
| Outil | Description |
|---|---|
get_agent_list |
Liste les agents enregistrés dans l'application en cours d'exécution |
get_message_list |
Lit l'historique des dialogues d'un agent |
post_message |
Envoie un message à un agent — communication d'agent à agent |
read_prompt_mcp |
Lit un template de prompt ; également exposé sous forme de prompt MCP (prompts/get) et de ressource (prompt://) |
Ce triplet de prompts expose les prompts système par défaut de chaque type d'agent, avec des
surcharges propres à chaque tenant via agent_type + setting_key.
Essayer avec MCP Inspector
Lancez MCP Inspector et
connectez-vous à votre application (par exemple http://localhost:18000/mcp, transport : Streamable HTTP) :
npx @modelcontextprotocol/inspectorAccédez à la console web (utilisez le lien de proxy affiché dans la console).

Connecter Claude Desktop
Remarque : Claude Desktop n'est utilisé ici qu'à titre de démonstration. Ce projet n'est pas affilié à Anthropic AI.
Installez la passerelle mcp-proxy qu'utilise Claude Desktop pour accéder aux serveurs HTTP distants :
pip install mcp-proxyOuvrez Settings → Developer → Edit Config et modifiez
claude_desktop_config.json(adaptez le point de terminaison à votre installation ; l'environnement Python doit contenirmcp-proxy) :



- Redémarrez Claude Desktop et retournez dans Settings → Developer — Agent-Lab doit y apparaître :

- Essayez : demandez à Claude de lister les agents, de récupérer l'historique des dialogues d'une instance d'agent codeur supervisé, ou de vous montrer un extrait de code que l'agent a généré précédemment :


API OpenAI Responses
L'outil hébergé Model Context Protocol (MCP) de l'API Responses facilite la connexion à des services externes : configurez votre modèle une seule fois pour qu'il pointe vers un serveur MCP — celui-ci joue le rôle d'hôte d'outils centralisé. (Source : MCP Tool Guide)
Un notebook illustrant l'intégration de l'API OpenAI Responses avec le serveur MCP d'Agent-Lab est disponible ici : notebooks/11_mcp_client-openai-responses.ipynb.
Ajouter vos propres outils et prompts
Tout est découvert de la même manière que les agents — décorez, et (pour les utilisateurs de la
bibliothèque) assurez-vous que votre package figure dans scan_packages ou est publié via le
groupe d'entry points agent_lab.agents.
Un outil — une simple fonction asynchrone ; son premier paramètre container est injecté
depuis le conteneur DI et masqué aux clients :
from agent_lab import discoverable_mcp_tool
@discoverable_mcp_tool(
"my_hello_tool",
description="Returns a friendly greeting.",
annotations={"readOnlyHint": True},
)
async def hello_tool(container, name: str) -> str:
return f"Hello, {name}!"Un prompt — exposé sur l'ensemble du triplet de prompts (outil / prompts/get /
ressource prompt://) :
from agent_lab import discoverable_mcp_prompt
@discoverable_mcp_prompt("my_greeting_prompt")
def greeting_prompt() -> str:
return "Greet the user warmly and briefly."Avancé — une sous-classe complète de McpRegistrar (ou de PromptSetRegistrar) pour des ensembles
personnalisés d'outils, de prompts et de ressources, via @discoverable_mcp_registrar(extra_deps=(...)). Pour
ajouter des instructions MCP destinées aux clients, passez des fragments lors de la composition :
app = create_app(mcp_instructions=["Extra guidance for MCP clients."])Un exemple complet est fourni dans le projet généré (mcp/tools.py, mcp/prompts.py) — voir
Votre premier agent.
Authentification
Lorsque l'authentification est activée, les clients MCP s'authentifient via un proxy OAuth adossé à
Keycloak : vérification des JWT à l'aide du JWKS du realm (scopes openid,
profile, email) et stockage des clients OAuth dans Redis (chiffré). L'application
publie les points de terminaison de métadonnées standard
(/.well-known/oauth-protected-resource/mcp,
/.well-known/oauth-authorization-server/mcp) afin que les clients conformes puissent se configurer d'eux-mêmes.