WEATHGARDS
БесплатноНе проверенExposes MCP tools that enable remote LLMs to query local Docker containers, OS processes, and system services in real time.
Описание
Exposes MCP tools that enable remote LLMs to query local Docker containers, OS processes, and system services in real time.
README
Python 3.12+ Linux macOS Windows MCP Compatible Version
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) | 8765 |
HTTP | Administration locale uniquement |
| Serveur MCP | 9766 |
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.
Prérequis
Docker (optionnel)
WEATHGARDS fonctionne sans Docker ; le scan de containers est simplement désactivé si le daemon est inaccessible.
| OS | Installation |
|---|---|
| Linux | sudo apt install docker.io (Debian/Ubuntu) ou docs.docker.com. Ajoutez votre utilisateur au groupe docker : sudo usermod -aG docker $USER puis reconnectez-vous. |
| 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 --version
Installez 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 weathgards
Ouvrez 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 weathgards
Socket 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 weathgards
Docker 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 weathgards
Docker 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-xxxxxxxxxxxxxxxxxxxx
Si 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.json- Windows :
%APPDATA%\Claude\claude_desktop_config.json- Linux :
~/.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.42
Le 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.key
Redé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\Root
Renouveler 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 weathgards
Le 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 + Retry-After |
| IP allowlist | Filtre CIDR optionnel appliqué avant l'auth (WEATHGARDS_ALLOWED_CLIENTS) |
| 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 build
Variables d'environnement
| Variable | Défaut | Description |
|---|---|---|
WEATHGARDS_HOST |
127.0.0.1 |
Adresse d'écoute du cockpit. 0.0.0.0 = toutes les interfaces. |
WEATHGARDS_PORT |
8765 |
Port du cockpit. |
WEATHGARDS_ENV |
development |
production désactive /docs (Swagger). |
WEATHGARDS_MCP_TOKEN |
CHANGE_ME |
Token Bearer du serveur MCP. Obligatoire en mode réseau. |
WEATHGARDS_ALLOWED_CLIENTS |
(vide) | CIDRs autorisés, séparés par virgule. Vide = token-only. |
WEATHGARDS_TLS_CERT_FILE |
(vide) | Chemin vers le certificat TLS (.crt). TLS désactivé si vide. |
WEATHGARDS_TLS_KEY_FILE |
(vide) | Chemin vers la clé privée TLS (.key). TLS désactivé si vide. |
WEATHGARDS_DOCKER_HOST |
(auto) | URI du socket Docker. Vide = détection automatique par OS. |
WEATHGARDS_DOCKER_TIMEOUT |
10 |
Timeout (secondes) des appels au daemon Docker. |
WEATHGARDS_SCAN_INTERVAL |
30 |
Intervalle de scan automatique en secondes. 0 = manuel uniquement. |
WEATHGARDS_LOG_LEVEL |
INFO |
DEBUG / INFO / WARNING / ERROR / CRITICAL |
WEATHGARDS_LOG_FORMAT |
console |
console (lisible) ou json (ELK/Loki). |
Установка WEATHGARDS
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/Liamdbav/WEATHGARDSFAQ
WEATHGARDS MCP бесплатный?
Да, WEATHGARDS MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для WEATHGARDS?
Нет, WEATHGARDS работает без API-ключей и переменных окружения.
WEATHGARDS — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить WEATHGARDS в Claude Desktop, Claude Code или Cursor?
Открой WEATHGARDS на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare WEATHGARDS with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
