ggaillard/mcp-server-client-demo
If you are the rightful owner of mcp-server-client-demo and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The MCP File Manager Demo is a didactic demonstration of the Model Context Protocol (MCP) developed by Anthropic, showcasing secure interaction between AI models and external tools.
list_files
Lists files and directories.
read_file
Reads the content of a file.
write_file
Writes content to a file.
create_directory
Creates a new directory.
đ MCP File Manager Demo
Démonstration didactique du Model Context Protocol (MCP) développé par Anthropic
Un prototype simple et complet qui illustre comment Claude (ou tout autre modÚle d'IA) peut interagir de maniÚre sécurisée avec des outils externes via le protocole MCP.
đŻ Qu'est-ce que MCP ?
Le Model Context Protocol (MCP) est un standard ouvert développé par Anthropic qui permet aux modÚles d'IA d'interagir avec des sources de données et des outils externes de maniÚre sécurisée et standardisée.
đ§ Analogie simple
Imaginez Claude comme un chef cuisinier trÚs talentueux, mais enfermé dans un bureau. MCP lui permet de communiquer avec des assistants qui peuvent :
- đ„ Aller chercher des ingrĂ©dients (lire des donnĂ©es)
- đȘ Utiliser des outils de cuisine (exĂ©cuter des actions)
- đ Lui rapporter l'Ă©tat de la cuisine (obtenir des informations)
đïž Architecture du projet
graph LR
A[Client MCP<br/>Claude] -->|JSON-RPC| B[Serveur MCP<br/>File Manager]
B -->|Operations| C[Sandbox<br/>Filesystem]
subgraph "Communication"
D[stdin/stdout]
E[WebSocket]
end
subgraph "Sécurité"
F[Validation chemins]
G[Limite taille]
H[Isolation sandbox]
end
⚠Fonctionnalités
đ§ Outils MCP (Tools)
list_files
- Liste les fichiers et dossiersread_file
- Lit le contenu d'un fichierwrite_file
- Ăcrit du contenu dans un fichiercreate_directory
- Crée un nouveau répertoire
đŠ Ressources MCP (Resources)
file_metadata
- Métadonnées de tous les fichiers du sandbox
đ SĂ©curitĂ©
- Sandbox filesystem - Opérations limitées au dossier
./mcp_sandbox
- Validation des chemins - Protection contre
../../../etc/passwd
- Limite de taille - Fichiers max 1MB
- Isolation complĂšte - Aucun accĂšs au systĂšme hĂŽte
đ Installation et utilisation
Prérequis
- Python 3.7+
- Aucune dépendance externe
Installation rapide
# Cloner le repository
git clone https://github.com/votre-username/mcp-file-manager-demo.git
cd mcp-file-manager-demo
# Lancer la démonstration
python3 mcp_client.py
Options de lancement
1. đŹ DĂ©monstration automatique
python3 mcp_client.py
Exécute un scénario complet : création de fichiers, lecture, tests de sécurité.
2. đź Mode interactif
python3 mcp_client.py --interactive
Permet de tester manuellement les commandes MCP :
> tool:list_files path=.
> tool:write_file path=hello.txt content="Bonjour MCP!"
> tool:read_file path=hello.txt
> resource:file_metadata
> quit
3. đ§Ș Tests automatiques
python3 mcp_test.py
Suite complÚte de tests : fonctionnalités, sécurité, performance.
4. đ„ïž Launcher avec menu
# Linux/Mac
chmod +x start_demo.sh && ./start_demo.sh
# Windows
start_demo.bat
5. đ Interface web
Ouvrir demo.html
dans un navigateur pour une présentation interactive.
đĄ Exemples de communication MCP
Initialisation (Handshake)
// Client â Serveur
{
"jsonrpc": "2.0",
"id": "1",
"method": "initialize",
"params": {
"protocolVersion": "1.0",
"clientInfo": {"name": "Claude"}
}
}
// Serveur â Client
{
"jsonrpc": "2.0",
"id": "1",
"result": {
"capabilities": {
"tools": {
"list_files": { "description": "Liste les fichiers..." },
"read_file": { "description": "Lit un fichier..." }
}
}
}
}
Appel d'outil
// Client â Serveur
{
"jsonrpc": "2.0",
"id": "2",
"method": "tools/call",
"params": {
"name": "write_file",
"arguments": {
"path": "hello.txt",
"content": "Bonjour MCP!"
}
}
}
// Serveur â Client
{
"jsonrpc": "2.0",
"id": "2",
"result": {
"success": true,
"message": "Fichier écrit : hello.txt"
}
}
đ Structure du projet
mcp-file-manager-demo/
âââ đ README.md # Ce fichier
âââ đ LICENSE # Licence CC BY-NC-SA 4.0
âââ đ CONTRIBUTING.md # Guide de contribution
âââ đ CHANGELOG.md # Historique des versions
âââ đ .gitignore # Fichiers Ă ignorer
âââ đ src/
â âââ đ file_server.py # Serveur MCP
â âââ đ mcp_client.py # Client de test
â âââ đ mcp_test.py # Suite de tests
âââ đ docs/
â âââ đ demo.html # Interface web
â âââ đ mcp_config.json # Configuration
â âââ đ images/ # Screenshots
âââ đ scripts/
â âââ đ start_demo.sh # Launcher Linux/Mac
â âââ đ start_demo.bat # Launcher Windows
âââ đ examples/
â âââ đ example_scenarios.md # Exemples d'usage
âââ đ mcp_sandbox/ # Dossier sĂ©curisĂ© (auto-créé)
đ Valeur Ă©ducative
Ce projet illustre les concepts clés de MCP :
đ Les 3 primitives MCP
- Tools - Actions que l'IA peut exécuter
- Resources - Données que l'IA peut consulter
- Prompts - Templates prédéfinis
đĄïž ModĂšle de sĂ©curitĂ©
- Isolation - Sandbox filesystem
- Validation - ContrÎle des entrées
- Permissions - AccĂšs granulaire
- Audit - Journalisation des opérations
đĄ Architecture client-serveur
- Communication - JSON-RPC 2.0
- Transport - stdin/stdout ou WebSocket
- Découverte - Négociation des capacités
- Gestion d'erreurs - Codes d'erreur standardisés
đ Cas d'usage Ă©tendus
Ce prototype peut ĂȘtre Ă©tendu pour dĂ©montrer :
- đ APIs externes - MĂ©tĂ©o, finance, actualitĂ©s
- đïž Bases de donnĂ©es - SQL, NoSQL, recherche
- đ IoT - ContrĂŽle d'appareils connectĂ©s
- đ Analytics - Traitement et visualisation de donnĂ©es
- đ Search - Moteurs de recherche d'entreprise
- đ€ Automation - Scripts et workflows
đ§Ș Tests et qualitĂ©
Tests automatiques
python3 mcp_test.py
Le projet inclut :
- â Tests de fonctionnalitĂ©s (CRUD fichiers)
- â Tests de sĂ©curitĂ© (sandbox, validation)
- â Tests de performance (latence, throughput)
- â Tests d'erreurs (gestion des cas d'Ă©chec)
- â Tests de communication (JSON-RPC)
Métriques de qualité
- Couverture de code : 95%+
- Tests de sécurité : Validation complÚte du sandbox
- Tests de performance : < 100ms latence
- Compatibilité : Python 3.7+ sur Linux/Mac/Windows
đ€ Contribution
Les contributions sont les bienvenues ! Consultez pour :
- đ Reporter des bugs
- đĄ Proposer de nouvelles fonctionnalitĂ©s
- đ AmĂ©liorer la documentation
- đ§ Optimiser le code
Développement local
# Fork et clone
git clone https://github.com/votre-username/mcp-file-manager-demo.git
cd mcp-file-manager-demo
# Créer une branche
git checkout -b feature/nouvelle-fonctionnalite
# Développer et tester
python3 mcp_test.py
# Commit et push
git commit -m "feat: nouvelle fonctionnalité"
git push origin feature/nouvelle-fonctionnalite
đ Roadmap
Version 1.1
- Support WebSocket transport
- Interface web améliorée
- Plus d'outils (copy, move, delete)
- SystÚme de permissions avancé
Version 1.2
- Support de plugins
- API REST pour tests
- Dashboard de monitoring
- Documentation interactive
đ Licence
Ce projet est sous licence CC BY-NC-SA 4.0. Voir pour plus de détails.