mcp-infra-readonly
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., "@mcp-infra-readonlylist all Ansible hosts"
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.
mcp-infra-readonly
Serveur MCP (Model Context Protocol) Python donnant à Claude Code un accès strictement en lecture à l'infrastructure Epiconcept — logs, état des services, métriques, facts Ansible, état Docker.
Repos liés :
Sandbox Docker Claude Code : https://github.com/senseicoder/claude-sandbox
Principe de sécurité
Zéro écriture : aucun outil ne peut modifier l'état d'un serveur
Double validation :
validation.py(regex strictes + blocage des caractères d'injection) avant toute commande SSHListe blanche : seules les commandes listées dans
config/allowlist.ymlsont exécutables — rechargement à chaud, pas de redémarrage nécessaireFiltre de sortie :
output_filter.pybloque les clés privées, masque les mots de passe/tokens avant retour à ClaudePas de sudo : toutes les commandes s'exécutent avec les droits de l'utilisateur SSH
Transport stdio : le serveur tourne en local, communique via stdin/stdout avec Claude Code
Pas de credentials en dur : la configuration SSH utilise les clés SSH existantes de l'hôte
Related MCP server: MySQL MCP Server
Outils MCP exposés
Outil | Description | Commande SSH sous-jacente |
| Liste les hosts Ansible connus | lecture inventory |
Services | ||
| État d'un service systemd |
|
| Services systemd en état failed |
|
| Top processus CPU/RAM |
|
| Uptime, mémoire, version OS |
|
| Ports TCP en écoute |
|
Logs | ||
| Dernières N lignes d'un log |
|
| Logs systemd via journalctl |
|
| Liste un répertoire de logs |
|
Disque | ||
| Utilisation disque |
|
| Utilisation inodes |
|
Docker | ||
| État des containers |
|
| CPU/RAM des containers (snapshot) |
|
| Logs d'un container |
|
| Config/volumes/réseau d'un container |
|
Ansible | ||
| Facts Ansible d'un host |
|
Installation
pip install -e .Configuration
cp config/hosts.yml.example config/hosts.yml
# Éditer config/hosts.yml avec les hosts réelsL'allowlist (config/allowlist.yml) est rechargée à chaque appel — aucun redémarrage du serveur MCP n'est nécessaire après modification.
Utilisation avec Claude Code
Ajouter dans .mcp.json du projet ou dans ~/.claude/settings.json :
{
"mcpServers": {
"infra": {
"command": "python",
"args": ["-m", "mcp_infra.server"],
"cwd": "/chemin/vers/mcp-infra-readonly"
}
}
}Dans la sandbox Docker, ce MCP est configuré dans config/mcp.json du repo claude-sandbox.
Architecture
mcp-infra-readonly/
├── src/mcp_infra/
│ ├── server.py # point d'entrée MCP — tous les outils déclarés ici
│ ├── config.py # chargement config + allowlist (rechargement à chaud)
│ ├── validation.py # validation paramètres — regex strictes + anti-injection
│ ├── output_filter.py # filtre sortie — BLOCK clés privées, REDACT tokens
│ └── tools/
│ ├── ssh.py # helper SSH lecture seule (asyncssh, request_pty=False)
│ ├── services.py # get_service_status, get_failed_services, get_process_list
│ │ # get_system_info, get_open_ports
│ ├── logs.py # get_log_tail, get_journal, get_disk_usage
│ │ # get_inode_usage, list_log_files
│ ├── docker.py # get_docker_status, get_docker_stats, get_docker_logs
│ │ # get_docker_inspect
│ └── ansible.py # get_ansible_facts, list_hosts
├── config/
│ ├── hosts.yml.example # template — ne pas committer hosts.yml
│ └── allowlist.yml # liste blanche des commandes autorisées (rechargement à chaud)
├── docs/
│ ├── capabilities.md # ce que Claude peut/ne peut pas faire avec ce MCP
│ └── adr/
│ ├── ADR-001-validation-parametres.md
│ ├── ADR-002-filtre-sortie.md
│ └── ADR-003-architecture-allowlist.md
├── tests/
│ └── test_tools.py
└── SECURITY.mdThis 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/senseicoder/mcp-infra-readonly'
If you have feedback or need assistance with the MCP directory API, please join our Discord server