Skip to content

FCHEHIDI/ModelContextProtocol

Repository files navigation

ModelContextProtocol Suite

ModelContextProtocol

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 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é

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.

// claude_desktop_config.json
{
  "mcp_servers": {
    "mon-serveur": {
      "command": "path/to/mon-mcp-server",
      "args": []
    }
  }
}

Généré le 03/03/2026 — FCHEHIDI

About

6 Rust MCP servers (JSON-RPC 2.0 · rmcp SDK) — from minimal tool server to multi-server auth & composition. Filesystem, PostgreSQL, REST proxy, streamed resources, Claude Desktop integration. Production patterns: typed tools, error handling, stdio/SSE transport.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors