{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_p4v4233tdjac","handle":"woodpecker-mcp","url":"https://wellknown.network/agents/woodpecker-mcp","links":{"self":"https://wellknown.network/agents/woodpecker-mcp/record.json","html":"https://wellknown.network/agents/woodpecker-mcp","markdown":"https://wellknown.network/agents/woodpecker-mcp/record.md","api":"https://wellknown.network/api/v1/agents/woodpecker-mcp","status":"https://wellknown.network/api/v1/agents/woodpecker-mcp/status","claim":"https://wellknown.network/agents/woodpecker-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/woodpecker-mcp/claim.json","badge":"https://wellknown.network/agents/woodpecker-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air::server:woodpecker-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"woodpecker-mcp","summary":"MCP server that gives an LLM agent (e.g. HolmesGPT) a materialized, queryable service dependency graph in a graph database - deterministic root-cause (deepest failing service), blast radius, and observability blind-spot detection.","description":"# woodpecker-mcp\n\n[![CI](https://github.com/sspcodeflix/woodpecker-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/sspcodeflix/woodpecker-mcp/actions/workflows/ci.yml)\n![license](https://img.shields.io/badge/license-Apache--2.0-blue)\n![python](https://img.shields.io/badge/python-3.10%2B-blue)\n![backend](https://img.shields.io/badge/graph-FalkorDB-ff4438)\n\n**woodpecker-mcp exposes a materialized service dependency graph as an MCP\ntoolset.** It provides an LLM-based agent such as\n[HolmesGPT](https://github.com/robusta-dev/holmesgpt) with a capability those\nagents do not retain on their own: a persistent, queryable graph of how services\ndepend on one another. Root-cause analysis therefore becomes a deterministic\ngraph traversal rather than a conclusion re-derived on each investigation.\n\nHolmesGPT remains unmodified. It launches woodpecker-mcp as a subprocess (or\nconnects over HTTP) and discovers the tools it exposes - no fork, custom image,\nor plugin is required.\n\n---\n\n## Why this exists\n\nHolmesGPT markets a \"Runtime Dependency Graph\", yet its source holds no graph\ndata structure, no graph database, and no graph-traversal code. Each\ninvestigation infers the relationships on the fly - from traces, Kubernetes\nowner-refs, and metric labels - then discards them, and root cause is whatever\nthe model concludes through a \"five whys\" prompt. That design is deliberate - it\nbuys freshness, statelessness, and breadth - but it carries costs that a\nmaterialized graph removes:\n\n| | Holmes (inferred) | woodpecker-mcp (materialized) |\n|---|---|---|\n| Where relationships live | model context, one investigation | a graph database (FalkorDB) |\n| Root cause | reasoned per run (non-deterministic) | deepest-failing-service, one Cypher query (exact, repeatable) |\n| Blast radius | re-derived each time | variable-length path traversal |\n| Explore it yourself | no | yes (browser UI + Cypher) |\n| Blind-spot detection | no | yes |\n\n---\n\n## How it works\n\n```mermaid\nflowchart TD\n    H[…","publisher":{"name":"Soumya","url":null},"homepage":"https://github.com/sspcodeflix/woodpecker-mcp","repository":"https://github.com/sspcodeflix/woodpecker-mcp","version":"0.2.0","license":"Apache-2.0","protocols":["mcp"],"tags":["mcp","holmesgpt","sre","observability","root-cause-analysis","dependency-graph","incident-response","falkordb","kubernetes"],"pricing":null,"endpoints":[{"url":"pypi:woodpecker-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","license":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"dev.monitoring","name":"Monitoring & Observability","confidence":1,"provenance":"declared"},{"slug":"infra.cloud","name":"Cloud Platforms","confidence":1,"provenance":"declared"},{"slug":"knowledge.knowledge-graph","name":"Knowledge Graphs","confidence":0.997,"provenance":"derived"},{"slug":"data.database","name":"Databases","confidence":0.791,"provenance":"derived"}],"categories":["data","dev","infra","knowledge"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"woodpecker-mcp","registry":"pypi","observedAt":"2026-09-10T16:24:12.338Z","publishedAt":"2026-07-02T21:44:40.183227Z","latestVersion":"0.2.0"}},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"woodpecker-mcp","url":"https://pypi.org/project/woodpecker-mcp/","firstSeenAt":"2026-09-10T16:22:23.110Z","fetchedAt":"2026-09-10T16:22:23.110Z","normalizedAt":"2026-09-10T16:22:23.110Z"}]},"firstSeenAt":"2026-09-10T16:22:23.110Z","updatedAt":"2026-09-10T16:24:12.338Z"}