WEATHGARDS
Scans running Docker containers and exposes MCP tools for real-time interrogation of container status, logs, and runtime information.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@WEATHGARDSwhat Docker containers are currently running?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
WEATHGARDS
Passerelle MCP locale cross-OS pour containers Docker, processus et services.
WEATHGARDS scanne votre machine (containers Docker, processus OS, services système), puis expose des outils MCP pré-écrits sur un endpoint réseau sécurisé. Un LLM distant (Claude, GPT-4, etc.) peut ainsi interroger votre environnement en temps réel — sans générer aucun code à l'exécution.
Architecture en deux ports
Composant | Port | Protocole | Usage |
Cockpit (interface web + API REST) |
| HTTP | Administration locale uniquement |
Serveur MCP |
| HTTP ou HTTPS | Connexion LLM, exposable sur le réseau |
Le cockpit reste toujours en HTTP car il est destiné à un accès local (127.0.0.1). Le serveur MCP peut être sécurisé en HTTPS via certificat autosigné lorsqu'il est exposé sur le réseau local.
Related MCP server: Sentinel Core Agent
Prérequis
Docker (optionnel)
WEATHGARDS fonctionne sans Docker ; le scan de containers est simplement désactivé si le daemon est inaccessible.
OS | Installation |
Linux |
|
macOS | Docker Desktop for Mac. Démarrez l'application et attendez l'icône baleine dans la barre de menus. |
Windows | Docker Desktop for Windows (nécessite WSL 2 ou Hyper-V). Démarrez Docker Desktop avant WEATHGARDS. |
Python 3.12+
# Linux / macOS
python3 --version # doit être ≥ 3.12
# Windows (PowerShell)
python --versionInstallez uv — le gestionnaire de paquets utilisé :
# Linux / macOS
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"Installation rapide
# 1. Cloner
git clone https://github.com/your-org/weathgards.git
cd weathgards
# 2. Installer les dépendances Python
uv sync
# 3. Configurer l'environnement (méthode interactive recommandée)
./deploy.sh
# ou manuellement :
cp .env.example .env # Linux / macOS
# éditez .env — au minimum WEATHGARDS_MCP_TOKEN
# 4. Compiler le frontend (nécessite Node.js 18+, à faire une seule fois)
cd frontend && npm install && npm run build && cd ..
# 5. Démarrer WEATHGARDS
uv run weathgardsOuvrez http://127.0.0.1:8765 dans votre navigateur.
Référence rapide par OS
Linux
uv sync
cp .env.example .env
# nano .env → définissez WEATHGARDS_MCP_TOKEN
uv run weathgardsSocket Docker sur /var/run/docker.sock. Si absent, le scan containers est ignoré automatiquement.
macOS
uv sync
cp .env.example .env
# open -e .env → définissez WEATHGARDS_MCP_TOKEN
uv run weathgardsDocker Desktop doit être démarré avant WEATHGARDS. Le socket est détecté automatiquement sous /var/run/docker.sock et le chemin Docker Desktop.
Windows (PowerShell)
uv sync
Copy-Item .env.example .env
# notepad .env → définissez WEATHGARDS_MCP_TOKEN
uv run weathgardsDocker Desktop doit être démarré. Le named pipe \\.\pipe\docker_engine est vérifié automatiquement. Aucun privilège administrateur requis.
Connecter un LLM distant
Une fois WEATHGARDS démarré avec l'exposition réseau activée, votre client LLM a besoin de trois informations : l'URL de l'endpoint, le token Bearer, et le snippet de configuration MCP.
Étape 1 — Activer l'exposition réseau
Dans l'onglet Serveur du cockpit :
Activez le toggle "Exposer sur le réseau local"
Cliquez "Démarrer le serveur MCP"
Ou configurez-le de façon persistante dans .env avant le démarrage :
WEATHGARDS_MCP_TOKEN=votre-token-secret-ici
WEATHGARDS_HOST=0.0.0.0Étape 2 — Récupérer l'endpoint et le token
La section Informations de connexion affiche les valeurs en direct :
Endpoint MCP : http://192.168.1.42:9766/mcp
Token : wg-xxxxxxxxxxxxxxxxxxxxSi TLS est activé, l'URL sera https://.
Étape 3 — Configurer votre client MCP
Collez le snippet JSON généré (bouton "Copier") dans la config de Claude Desktop / votre client MCP :
{
"mcpServers": {
"weathgards": {
"url": "http://192.168.1.42:9766/mcp",
"headers": {
"Authorization": "Bearer wg-xxxxxxxxxxxxxxxxxxxx"
}
}
}
}Emplacement du fichier de config Claude Desktop :
macOS :
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows :
%APPDATA%\Claude\claude_desktop_config.jsonLinux :
~/.config/Claude/claude_desktop_config.json
TLS / HTTPS pour le serveur MCP
Le serveur MCP (port 9766) peut être sécurisé en HTTPS via un certificat autosigné. Cette option est recommandée dès que le serveur est exposé sur le réseau local.
Le cockpit (port 8765) reste en HTTP — il est accessible localement uniquement et ne nécessite pas TLS.
Générer le certificat
# Remplacez l'IP par celle de votre machine sur le réseau local
./scripts/generate-cert.sh 192.168.1.42Le script génère deux fichiers dans certs/ :
certs/weathgards.crt— certificat public (à distribuer aux clients)certs/weathgards.key— clé privée (ne jamais partager)
Le certificat est valide 397 jours (limite imposée par Apple/iOS depuis 2020).
Activer TLS dans .env
WEATHGARDS_TLS_CERT_FILE=certs/weathgards.crt
WEATHGARDS_TLS_KEY_FILE=certs/weathgards.keyRedémarrez WEATHGARDS — le log de démarrage confirme :
mcp_server.tls_active Serveur MCP démarré en HTTPS (TLS activé)Le cockpit affiche alors https:// dans la section Informations de connexion, et les snippets générés (Claude Desktop, opencode, curl) utilisent automatiquement le bon schéma.
Faire confiance au certificat autosigné côté client
Un certificat autosigné est rejeté par défaut. Selon votre client :
curl / test manuel :
curl --cacert certs/weathgards.crt \
-X POST https://192.168.1.42:9766/mcp \
-H "Authorization: Bearer wg-xxx" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'Claude Desktop (et clients HTTP système) : Ajoutez le certificat au trust store OS de la machine cliente :
# Linux (Debian/Ubuntu)
sudo cp certs/weathgards.crt /usr/local/share/ca-certificates/weathgards.crt
sudo update-ca-certificates
# macOS
sudo security add-trusted-cert -d -r trustRoot \
-k /Library/Keychains/System.keychain certs/weathgards.crt
# Windows (PowerShell, en tant qu'administrateur)
Import-Certificate -FilePath .\certs\weathgards.crt `
-CertStoreLocation Cert:\LocalMachine\RootRenouveler le certificat
Le certificat expire après 397 jours. Pour le renouveler :
# Régénérer (écrase l'ancien)
./scripts/generate-cert.sh 192.168.1.42
# Redémarrer le serveur MCP depuis le cockpit ou :
# Ctrl+C puis uv run weathgardsLe certificat renouvelé doit être redistribué aux machines clientes et re-importé dans leur trust store.
Sécurité
L'exposition réseau exige une authentification — sans exception.
Lier le serveur MCP à 0.0.0.0 le rend accessible à chaque appareil du réseau local. WEATHGARDS enforce un token Bearer sur chaque requête /mcp et refuse de démarrer en mode réseau sans token configuré.
Durcissement recommandé :
Définissez
WEATHGARDS_MCP_TOKENavec une chaîne aléatoire longue (≥ 32 caractères) :python3 -c "import secrets; print('wg-' + secrets.token_hex(32))"Restreignez l'accès à un sous-réseau précis via
WEATHGARDS_ALLOWED_CLIENTS=192.168.1.0/24dans.env.Activez TLS (voir section ci-dessus) pour chiffrer le trafic sur le réseau local.
Ne committez jamais votre fichier
.env— il est déjà dans.gitignore.N'exposez pas WEATHGARDS sur un réseau public. Il est conçu pour un sous-réseau local de confiance uniquement.
Couches de protection actives :
Couche | Mécanisme |
Authentification | Bearer token, comparaison en temps constant (anti timing-oracle) |
Rate limiting | 60 requêtes / 60 secondes par IP cliente, retourne 429 + |
IP allowlist | Filtre CIDR optionnel appliqué avant l'auth ( |
Chiffrement réseau | TLS optionnel via certificat autosigné (port MCP uniquement) |
Protection DNS rebinding | Désactivée pour le bind réseau (le token est la protection) ; activée pour localhost |
Développement
# Installer avec les extras dev
uv sync --extra dev
# Démarrer avec auto-reload
uv run weathgards --reload
# Lint
uv run ruff check src tests
# Format
uv run ruff format src tests
# Vérification des types
uv run mypy src
# Tests (avec couverture)
uv run pytest
# Tests — rapides, sans couverture
uv run pytest --no-cov
# Smoke tests uniquement
uv run pytest tests/test_smoke.py --no-cov -v
# Compiler le frontend
cd frontend && npm run buildVariables d'environnement
Variable | Défaut | Description |
|
| Adresse d'écoute du cockpit. |
|
| Port du cockpit. |
|
|
|
|
| Token Bearer du serveur MCP. Obligatoire en mode réseau. |
| (vide) | CIDRs autorisés, séparés par virgule. Vide = token-only. |
| (vide) | Chemin vers le certificat TLS ( |
| (vide) | Chemin vers la clé privée TLS ( |
| (auto) | URI du socket Docker. Vide = détection automatique par OS. |
|
| Timeout (secondes) des appels au daemon Docker. |
|
| Intervalle de scan automatique en secondes. |
|
|
|
|
|
|
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Liamdbav/WEATHGARDS'
If you have feedback or need assistance with the MCP directory API, please join our Discord server