mcp-it-ops
Provides tools for querying Docker container status, including name, image, state, health, uptime, and port mappings from a local Docker daemon.
Allows querying Grafana alert states via the Prometheus-style rules API, returning alerts grouped by state with details like name, folder, health, last evaluation, and annotations.
Enables executing Flux queries against a local InfluxDB v2 instance, returning parsed CSV records up to 500 rows (requires InfluxDB token and org environment variables).
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-it-opsshow me all running containers"
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-it-ops
MCP server that exposes homelab and IT-ops tools to Claude. Designed to grow tool-by-tool, starting with what's actually testable on a Linux homelab and extending toward AD / Intune / M365 when a corporate test environment is available.
Status: v0.0.5 (2026-04-19) — 8 working tools, 37 pytest tests, CI green on Python 3.10/3.11/3.12. Tools split into category modules under
tools/. Locally tested on niborserver. Not yet on PyPI; install from source.
What it does today
Once installed and connected to Claude (Desktop or Code), Claude can call:
Tool | What it does |
| Local host's hostname, uptime, 1-min load, memory %, root-disk %, and running container count. Reads |
| Queries the Grafana Prometheus-style rules API and returns alerts grouped by state (firing / pending / inactive / no_data / error) with name, folder, health, last evaluation, annotations. |
| Profit, win rate, open trade count, balance from a freqtrade REST API. Bot name resolved via config. |
| Full |
| Loki LogQL |
| NVMe/SATA SMART health via |
| Reads |
| Executes a Flux query against the local InfluxDB v2 and returns parsed CSV records (capped at 500 rows). Auth via |
Related MCP server: OpenTelemetry MCP Server
Roadmap
get_uptime_kuma_status— pull monitor states via Uptime Kuma APIHTTP transport so openclaw / other tailnet peers can query niborserver-resident tools (currently stdio only)
Eventually:
get_ad_user,get_intune_compliance,get_m365_service_health— when a corporate test environment is available
Quickstart
On the host where the MCP server will run
git clone https://github.com/bastiaan365/mcp-it-ops.git
cd mcp-it-ops
python3 -m venv .venv
.venv/bin/pip install -e .Configuration
Copy the example and customise:
cp config/settings.example.yaml config/settings.yaml
# Edit config/settings.yaml — point at your Grafana, freqtrade bots, etc.Secrets come from environment variables, never from the YAML. Default env var names:
Env var | What |
| Grafana admin password (referenced from |
| freqtrade bot1 API basic auth |
| freqtrade bot2 API basic auth |
Connect to Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json on macOS, or %APPDATA%/Claude/claude_desktop_config.json on Windows:
{
"mcpServers": {
"it-ops": {
"command": "/path/to/mcp-it-ops/.venv/bin/mcp-it-ops",
"env": {
"GRAFANA_PASSWORD": "your-grafana-password",
"MCP_IT_OPS_CONFIG": "/path/to/mcp-it-ops/config/settings.yaml"
}
}
}
}Restart Claude Desktop. The tools appear under "it-ops".
Smoke-test without Claude
GRAFANA_PASSWORD=... .venv/bin/python -c "
from mcp_it_ops.server import get_system_health, get_grafana_alert_state
import json
print(json.dumps(get_system_health(), indent=2))
print(json.dumps(get_grafana_alert_state().get('summary'), indent=2))
"Or use the official MCP inspector:
.venv/bin/python -m mcp dev src/mcp_it_ops/server.pyRequirements
Python 3.10+
mcp>=1.27.0,httpx>=0.27,pyyaml>=6.0(auto-installed)Read access to
/proc,df,docker psforget_system_healthNetwork reach + credentials for the services you want tools for
How development works
src/mcp_it_ops/server.py— all tool definitionstests/— pytest tests; one file per tool (TODO: backfill)config/settings.example.yaml— committed template;config/settings.yamlis gitignored
When adding a tool: see CLAUDE.md for the workflow + design conventions.
License
MIT
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/bastiaan365/mcp-it-ops'
If you have feedback or need assistance with the MCP directory API, please join our Discord server