Drop-in for the tools you already run.
OpsKeeper integrates with the AgentTeams Dashboard, the Grafana stack, and the standard data plane. New workers join via the stdio MCP proxy — no SDK lock-in.
AgentTeams Dashboard
The agentteams-plugin-installer turns the AgentTeams Dashboard into the OpsKeeper plugin console. Adds five extension points and an HTTP API on top of the file-system PluginRegistry.
- Extension points: sidebar-menu, route, dashboard-widget, detail-panel, toolbar
- HTTP API: /v1/plugins list/get/install/uninstall/enable/disable/sync/push
- Hard limits: 10 MB zip, 50 MB extract, 1000 files, zip-slip protection
OpsKeeper TeamHarness
A worker-side plugin that lets the six operational workers call OpsKeeper through a stdio MCP proxy. 17 MCP tools, Bearer + HMAC + W3C traceparent auth.
- stdio MCP server, Streamable HTTP-compatible
- FastAPI router at /api/opskeeper-teamharness/{health,sync,install-plugin}
- Hot-deploy with qwenpaw plugin install
Observability
First-class integration with the Grafana stack — Prometheus scrape, Loki log streams, Tempo traces, and provisioned Grafana dashboards for the closed loop.
- Metric scrape config ships with the repo
- Log/metric/trace correlation by trace_id
- Provisioned dashboards: closed-loop, audit ledger, skill health
Data plane
PostgreSQL for incident memory and append-only ledger, Qdrant for vector retrieval, Nacos for skill registry.
- PostgreSQL: ledger + state machine serialization via MySQL GET_LOCK
- Qdrant: keyword recall + RRF ranking, retained candidate-decision evidence
- Nacos Config: HTTP 2.x API + local fallback + 30s hot reload
Tooling
W3C traceparent propagation end-to-end across worker → MCP proxy → control plane → web console. OpenTelemetry-compatible.
- OpenTelemetry SDK with W3C traceparent
- Propagates across stdio MCP boundaries
- Drop-in OTLP adapter for AgentLoop / LoongSuite (roadmap)
Security
Append-only event log, SHA256-chained proposal audit, Bearer + HMAC on plugin endpoints, role-based auth on every API.
- loop_event_log append-only (DB trigger enforced)
- chat_proposal_audit SHA256 hash chain + in-repo verifier
- Bearer + HMAC on plugin endpoints
Any worker. One protocol.
The OpsKeeper Worker plugin speaks JSON-RPC over stdio. Discover 17 tools, propagate W3C traceparent, and authenticate with Bearer + HMAC. Streamable HTTP is on the roadmap.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {}
}
// → 17 tools exposed by opskeeper-teamharness:
// loop.investigate
// loop.correlate
// recovery.verify
// recovery.execute
// metric.query
// incident.list / incident.get
// postgres.analyze_status
// host.get_load / host.get_processes / host.restart_service
// knowledge.query / knowledge.write
// hitl.decide
// state.put / state.get
// incident.recordTwo commands and you have a worker.
Install the Dashboard plugin, or run the MCP proxy directly for any worker. Hot-deploy with qwenpaw plugin install.
# Build + install the AgentTeams Dashboard plugin
make build-plugins # zip lands in dist/plugins/
# Or run the stdio MCP proxy directly for any worker
cd plugins/opskeeper-teamharness
OPSKEEPER_BACKEND_URL=http://localhost:8080 \
OPSKEEPER_GATEWAY_KEY="$GATEWAY_KEY" \
python3 mcp/server.py