Collection de projets MCP (Model Context Protocol) à construire en Rust avec Claude Sonnet 4.6.
Chaque fichier .md est un brief autonome : du serveur minimal jusqu'à l'orchestration multi-serveurs.
Axé sur les patterns de production : tools typés, gestion d'erreurs, sécurité, composition.
MCP est un protocole standardisé (JSON-RPC 2.0 over stdio/SSE) qui permet à un LLM d'appeler des outils externes de façon structurée. Au lieu de tout passer dans le contexte, le modèle reçoit une liste de tools avec leurs signatures, décide lui-même lesquels appeler, et obtient les résultats en temps réel.
LLM ←──── liste des tools (nom, description, JSON Schema params)
LLM ────→ appel : { "tool": "get_product", "params": { "id": "..." } }
Server → exécute le vrai code (DB, API, filesystem...)
Server ────→ résultat JSON
LLM ←──── continue son raisonnement avec le résultat
3 primitives MCP :
- Tools — actions que le modèle peut déclencher (lecture, écriture, calcul)
- Resources — données que le modèle peut lire (fichiers, flux, pages)
- Prompts — templates réutilisables que l'utilisateur peut invoquer
| Fichier | Projet | Niveau |
|---|---|---|
| 01-mcp-hello-tools.md | Serveur MCP minimal : protocole + 3 tools | Fondation |
| 02-mcp-filesystem.md | Tools filesystem : read, write, search | Fondation |
| 03-mcp-database.md | Tools PostgreSQL : query, schema, CRUD | Intermédiaire |
| 04-mcp-rest-proxy.md | MCP wrapper autour d'une API REST | Intermédiaire |
| 05-mcp-resources-prompts.md | Resources streamées + Prompts templates | Intermédiaire |
| 06-mcp-auth-composition.md | Auth, permissions, composition multi-serveurs | Avancé |
- SDK Rust :
rmcp(SDK officiel Rust pour MCP) - Async :
tokio(même runtime que la suite WebDev) - Transport :
stdio(dev/Claude Desktop) ouSSE(prod/HTTP) - Sérialisation :
serde_json+ JSON Schema viaschemars - Erreurs :
thiserror+ codes d'erreur MCP standardisés - Tests :
tokio::test+ client MCP de test
Les projets 03 et 04 réutilisent directement api-rest-axum :
| Suite WebDev | Suite MCP |
|---|---|
api-rest-axum → API REST Axum |
04-mcp-rest-proxy → tools MCP sur cette API |
02-auth-jwt-rbac → JWT auth |
06-mcp-auth-composition → auth dans les tools |
| PostgreSQL via SQLx | 03-mcp-database → même DB exposée en tools |
Après chaque projet, le serveur MCP est branché à Claude Desktop (ou VS Code Copilot Chat) via mcp_servers dans la config. Tu verras Claude appeler tes tools en temps réel depuis le chat.
// claude_desktop_config.json
{
"mcp_servers": {
"mon-serveur": {
"command": "path/to/mon-mcp-server",
"args": []
}
}
}Généré le 03/03/2026 — FCHEHIDI
