Renders a pipeline DAG and test-harness dashboard inline as an MCP App
Runs on your machine from its package; the steps are below.
At most: creates or changes data: records, files, settings.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Distributed as an MCP bundle (`https://github.com/NEVELSK65/mcp-agenthub-monitor/releases/download/v1.0.0/agenthub-monitor.mcpb`) — download it and import the bundle in your MCP client.
An MCP App server: it renders an interactive pipeline dashboard inside the host window (Claude Desktop, Claude Code, and other MCP App–capable clients) instead of returning a wall of text.
The dashboard shows two things side by side:
Point it at your own pipeline's JSON export and it becomes a live view of your runs. With no configuration it serves a built-in sample, so the UI is useful the moment you install it.
| Tool | What it does | Read-only |
|---|---|---|
show_agenthub_monitor | Renders the dashboard inline in the host | yes |
get_status | Returns the current pipeline state as structured JSON | yes |
trigger_action | Records an action request in the server's own state | no |
trigger_action does not execute anything. It annotates the server's in-memory state so the
dashboard can show that an action was requested. This server runs no commands, spawns no
processes, and makes no network calls.
Requires Python 3.10+. No third-party dependencies.
git clone https://github.com/NEVELSK65/mcp-agenthub-monitor.git
cd mcp-agenthub-monitor
python3 -m unittest discover -s tests # optional: verify
Add to your MCP client configuration:
{
"mcpServers": {
"agenthub-monitor": {
"command": "python3",
"args": ["/absolute/path/to/mcp-agenthub-monitor/server.py"],
"env": {
"AGENTHUB_STATE_FILE": "/absolute/path/to/your/pipeline-state.json"
}
}
}
}
AGENTHUB_STATE_FILE is optional. Without it the server returns sample data, flagged with
is_sample_data: true so it is never mistaken for a real run.
Write this JSON from your own CI, orchestrator, or test harness:
{
"dag": {
"title": "Nightly build",
"total_nodes": 6,
"completed_nodes": 4,
"waves": 3,
"node_states": {
"node_01_checkout": "COMPLETED",
"node_02_unit_tests": "COMPLETED",
"node_03_integration": "RUNNING",
"node_04_security_scan": "PENDING"
}
},
"harness": {
"pass_rate_pct": 93.75,
"total_scenarios": 16,
"passed_scenarios": 15,
"critical_failures": 0,
"total_cost_usd": 0.112,
"total_latency_ms": 41700
},
"log": "Integration stage in progress."
}
The file is re-read on every tool call, so the dashboard reflects whatever your pipeline last wrote.
Node status strings are passed through to the UI as-is; COMPLETED, RUNNING, PENDING and
FAILED get distinct colours.
The UI is exposed as an MCP resource at ui://agenthub/mcp-app.html with MIME type
text/html;profile=mcp-app. Hosts that support MCP Apps render it inline; hosts that do not can
still read it as an HTML document.
The server reads one local file (the one you name in AGENTHUB_STATE_FILE) and sends nothing
anywhere. See PRIVACY.md.
MIT — see LICENSE.