MCP Network Tools
by kerbart
README.md
# đ MCP Network Tools
> **Serveur MCP (Model Context Protocol) pour outils de diagnostic réseau**
Un serveur MCP complet qui expose des outils de diagnostic réseau sécurisés via Claude Desktop, Claude Code et toute application compatible MCP.
## ⚠Fonctionnalités
### đ§ Outils rĂ©seau disponibles
| Outil | Description | ParamĂštres |
|-------|-------------|------------|
| **ping** | Test de connectivité et latence | `host`, `count`, `timeout` |
| **traceroute** | Traçage de route réseau | `host`, `max_hops` |
| **whois** | Informations sur domaines/IP | `target` |
| **nslookup** | Résolution DNS | `domain`, `record_type` |
| **dig** | RequĂȘtes DNS avancĂ©es | `domain`, `record_type` |
| **nmap** | Scan de ports sécurisé | `host`, `ports`, `scan_type` |
| **curl** | RequĂȘtes HTTP/HTTPS | `url`, `method`, `headers` |
| **netstat** | Connexions réseau actives | `protocol`, `state` |
### đ Modes de transport
- **stdio** : Mode par défaut, compatible Claude Desktop/Code
- **http** : Serveur HTTP pour intégrations personnalisées
### đ SĂ©curitĂ©
- Validation stricte des paramÚtres d'entrée
- Protection contre les injections de commandes
- Limitation des privilĂšges et timeouts
- Filtrage des domaines et IP sensibles
## đ PrĂ©requis
### SystĂšme
- **Python 3.8+**
- **Outils réseau systÚme** (ping, traceroute, nmap, etc.)
### Installation des outils systĂšme
```bash
# Vérification automatique
./check_system.sh
# macOS (Homebrew)
brew install nmap whois bind traceroute
# Ubuntu/Debian
sudo apt-get install traceroute nmap whois dnsutils net-tools
# CentOS/RHEL/Fedora
sudo dnf install traceroute nmap whois bind-utils net-tools
```
## đ Installation rapide
### 1. Clone du projet
```bash
git clone https://github.com/kerbart/mcp-network-tool.git
cd mcp-network-tool
```
### 2. Lancement automatique
```bash
# Setup complet + démarrage (stdio mode)
./run.sh
# Mode HTTP
./run.sh --transport http --port 8000
```
Le script `run.sh` se charge automatiquement de :
- â
Vérifier Python 3.8+
- â
Créer l'environnement virtuel
- â
Installer les dépendances
- â
Lancer le serveur
## đ Installation manuelle
### 1. Environnement virtuel
```bash
python3 -m venv venv
source venv/bin/activate # Linux/macOS
# ou venv\Scripts\activate # Windows
```
### 2. Installation des dépendances
```bash
# Via requirements.txt
pip install -r requirements.txt
# Ou via pyproject.toml
pip install -e .
```
### 3. Vérification systÚme
```bash
./check_system.sh
```
### 4. Lancement du serveur
```bash
# Mode stdio (défaut)
python start.py
# Mode HTTP
python start.py --transport http --port 8000
```
## đ§ Configuration avec Claude
### Claude Desktop
Ajoutez Ă votre `claude_desktop_config.json` :
```json
{
"mcpServers": {
"network-tools": {
"command": "python",
"args": ["/chemin/vers/mcp-network-tools/start.py"],
"env": {}
}
}
}
```
### Claude Code
```bash
# Ajout du serveur MCP
claude mcp add network-tools /chemin/vers/mcp-network-tools/start.py
# Vérification
claude mcp list
```
### Mode HTTP (optionnel)
```json
{
"mcpServers": {
"network-tools-http": {
"transport": {
"type": "http",
"url": "http://localhost:8000"
}
}
}
}
```
## đĄ Utilisation
### Exemples avec Claude
```
đ§âđ» "Peux-tu vĂ©rifier la connectivitĂ© vers google.com ?"
đ€ Je vais utiliser ping pour tester la connectivitĂ©...
[utilise l'outil ping avec host="google.com"]
đ§âđ» "Scanne les ports ouverts sur mon serveur 192.168.1.100"
đ€ Je vais scanner les ports courants...
[utilise l'outil nmap avec host="192.168.1.100"]
đ§âđ» "Trace la route vers cloudflare.com"
đ€ Je vais tracer la route rĂ©seau...
[utilise l'outil traceroute avec host="cloudflare.com"]
```
### API HTTP (mode HTTP)
```bash
# Liste des outils
curl http://localhost:8000/tools
# Exécution d'un ping
curl -X POST http://localhost:8000/tools/ping \
-H "Content-Type: application/json" \
-d '{"arguments": {"host": "google.com", "count": 3}}'
# Health check
curl http://localhost:8000/health
```
## đ Structure du projet
```
mcp-network-tools/
âââ src/ # Code source principal
â âââ tools/ # ImplĂ©mentations des outils
â â âââ ping.py
â â âââ traceroute.py
â â âââ nmap.py
â â âââ ...
â âââ utils/ # Utilitaires
â âââ security.py # Validation sĂ©curisĂ©e
â âââ parsers.py # Parseurs de sortie
âââ start.py # Point d'entrĂ©e principal
âââ run.sh # Script de lancement automatique
âââ check_system.sh # VĂ©rification des prĂ©requis
âââ requirements.txt # DĂ©pendances Python
âââ pyproject.toml # Configuration du projet
âââ README.md # Cette documentation
```
## đ§ DĂ©veloppement
### Tests locaux
```bash
# Vérification des outils systÚme
./check_system.sh
# Test du serveur stdio
python start.py
# Test du serveur HTTP
python start.py --transport http
curl http://localhost:8000/
```
### Ajout d'un nouvel outil
1. Créer `src/tools/mon_outil.py`
2. Implémenter la classe héritant de `BaseTool`
3. Ajouter l'outil dans `start.py`
4. Mettre Ă jour la documentation
### Variables d'environnement
```bash
# Logging
export MCP_LOG_LEVEL=DEBUG
# HTTP mode
export MCP_HOST=0.0.0.0
export MCP_PORT=8000
```
## đĄïž SĂ©curitĂ©
### Mesures implémentées
- â
**Validation d'entrée** : Tous les paramÚtres sont validés
- â
**Ăchappement de commandes** : Protection contre l'injection
- â
**Limitation de privilĂšges** : Pas de commandes sudo
- â
**Timeouts** : Prévention des blocages
- â
**Filtrage réseau** : Blocage des adresses sensibles
### Recommandations
- Exécutez avec un utilisateur non-privilégié
- Utilisez un firewall pour limiter l'accÚs réseau
- Surveillez les logs pour détecter les abus
- Mettez à jour réguliÚrement les dépendances
## đ DĂ©pannage
### ProblĂšmes courants
**Erreur "command not found"**
```bash
# Vérifiez les outils systÚme
./check_system.sh
# Installez les outils manquants
brew install nmap # macOS
sudo apt install nmap # Ubuntu
```
**Erreur "Permission denied" pour nmap**
```bash
# Les scans SYN nécessitent sudo
sudo nmap -sS target.com
# Utilisez les scans connect (sans sudo)
nmap -sT target.com
```
**Erreur de dépendances Python**
```bash
# Réinstallation complÚte
rm -rf venv/
./run.sh
```
### Logs de débogage
```bash
# Mode verbose
python start.py --transport stdio --verbose
# Logs HTTP
python start.py --transport http --log-level debug
```
## đ Ressources
- [Documentation MCP](https://modelcontextprotocol.io/)
- [Claude Desktop Configuration](https://docs.anthropic.com/en/docs/build-with-claude/computer-use)
- [Sécurité des outils réseau](https://nmap.org/book/man-legal.html)
## đ€ Contribution
1. Fork le projet
2. Créez une branche (`git checkout -b feature/nouvelle-fonctionnalite`)
3. Committez vos changements (`git commit -m 'Ajout nouvelle fonctionnalité'`)
4. Poussez la branche (`git push origin feature/nouvelle-fonctionnalite`)
5. Ouvrez une Pull Request
## đ Licence
Ce projet est sous licence MIT. Voir le fichier `LICENSE` pour plus de détails.
## đ„ Auteurs
- **Network Tools Team** - *Développement initial*
---
**â ïž Avertissement**: Ces outils peuvent ĂȘtre utilisĂ©s Ă des fins de diagnostic rĂ©seau lĂ©gitime uniquement. L'utilisation malveillante est interdite et peut ĂȘtre illĂ©gale dans votre juridiction.
---
đ **Star ce repo si il vous a Ă©tĂ© utile !**This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues