Content
# ModelContextProtocol Suite

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.
## Qu'est-ce que MCP ?
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
## Structure
| Fichier | Projet | Niveau |
|---|---|---|
| [01-mcp-hello-tools.md](01-mcp-hello-tools.md) | Serveur MCP minimal : protocole + 3 tools | Fondation |
| [02-mcp-filesystem.md](02-mcp-filesystem.md) | Tools filesystem : read, write, search | Fondation |
| [03-mcp-database.md](03-mcp-database.md) | Tools PostgreSQL : query, schema, CRUD | Intermédiaire |
| [04-mcp-rest-proxy.md](04-mcp-rest-proxy.md) | MCP wrapper autour d'une API REST | Intermédiaire |
| [05-mcp-resources-prompts.md](05-mcp-resources-prompts.md) | Resources streamées + Prompts templates | Intermédiaire |
| [06-mcp-auth-composition.md](06-mcp-auth-composition.md) | Auth, permissions, composition multi-serveurs | Avancé |
## Stack commune
- **SDK Rust** : `rmcp` (SDK officiel Rust pour MCP)
- **Async** : `tokio` (même runtime que la suite WebDev)
- **Transport** : `stdio` (dev/Claude Desktop) ou `SSE` (prod/HTTP)
- **Sérialisation** : `serde_json` + JSON Schema via `schemars`
- **Erreurs** : `thiserror` + codes d'erreur MCP standardisés
- **Tests** : `tokio::test` + client MCP de test
## Lien avec la suite WebDev
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 |
## Connexion à Claude
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.
```json
// claude_desktop_config.json
{
"mcp_servers": {
"mon-serveur": {
"command": "path/to/mon-mcp-server",
"args": []
}
}
}
```
---
*Généré le 03/03/2026 — FCHEHIDI*
Connection Info
You Might Also Like
everything-claude-code
Complete Claude Code configuration collection - agents, skills, hooks,...
markitdown
MarkItDown-MCP is a lightweight server for converting URIs to Markdown.
cc-switch
All-in-One Assistant for Claude Code, Codex & Gemini CLI across platforms.
servers
Model Context Protocol Servers
servers
Model Context Protocol Servers
Time
A Model Context Protocol server for time and timezone conversions.