Cirdan MCP server
io.github.adanb13/cirdan·v0.9.0AI infrastructure cartographer & MCP server: fingerprints, graphs & watches live infra for agents
0 stars82 downloads/wk
Reviews
Write oneNobody has reviewed Cirdan yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Cirdan tools (29, 2 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
annotate_nodeAttach evidence or attributes to an existing node without changing its confidence.
describe_nodeRestart/impact for one node in a single call: node summary plus what is affected if it goes down (dependents/blast radius) and what must be healthy first (dependencies/prerequisites). `node_id` is an alias for `node_ref`.
describe_systemOne-shot system overview: runtime/cloud, services + their dependencies, hubs, and public entry points.
execute_actionwrite actionExecute an action id from list_available_actions. Recorded, redacted, audited.
explain_incidentEvidence-backed markdown explanation of an incident.
fingerprint_systemDetect runtimes, clouds, IaC, and telemetry with confidence and evidence.
generate_reportRegenerate INFRA_REPORT.md and return its contents.
generate_viewGenerate an Agentic UI view ('show me …') and save html/md/json artifacts.
get_access_contextWhat the current agent/session can access (capability mirror, not permissions).
get_auditRecent audit entries: what Cirdan observed, generated, executed, verified.
get_enrichment_targetsWhat the deterministic scanners left unconnected: docs to read, isolated nodes, unlinked IaC, uncertain claims. Contribute findings via upsert_edge.
get_logsTail logs for a component through the owning live adapter. `node_id` is an alias for `node_ref`.
get_neighborsNeighborhood subgraph around a node. `node_id` is an alias for `node_ref`.
get_nodeFetch one node (by id or fuzzy name) with evidence, attributes, and edges. `node_id` is an alias for `node_ref`.
get_recent_errorsRecent error/warning events, clustered by message template.
get_stateLive state of a component through the owning adapter. `node_id` is an alias for `node_ref`.
list_available_actionsActions currently possible against a component with this session's access. `node_id` is an alias for `node_ref`.
list_dependenciesWhat a component depends on (transitive). `node_id` is an alias for `node_ref`.
list_dependentsWhat depends on a component (transitive blast radius). `node_id` is an alias for `node_ref`.
list_incidentsOpen (and optionally resolved) incidents. Runs a detection pass by default.
list_public_entrypointsEverything reachable from outside, with the reasons.
list_runtime_workloadsCurrent workloads (services, containers, pods, units) with live state.
list_servicesAll logical services with state and origin.
map_infrastructurewrite actionRun full discovery (static + live) and regenerate all cirdan-out artifacts.
query_infra_graphAsk the graph a question, e.g. 'what depends on postgres?' or 'what broke?'.
shortest_pathShortest path between two components.
upsert_edgeContribute a relationship between existing nodes (ids or names). Evidence required.
upsert_nodeContribute a node the scanners missed. Evidence quotes required; recorded as INFERRED.
verify_actionVerify the outcome of a previously executed action (act-… record id).
Public scan report
scanner v0.1.9 · 2026-09-26 · same rubric, same numbers if you re-run it
- Code scan3 source files scanned; 86 source files scanned15/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 66 days ago12/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Findings (2)
- mediumnpm install lifecycle script present
install.script - mediumnpm install lifecycle script present
install.scriptpackage.json: … "README.md" ], "scripts": { "postinstall": "node install-check.js || true" }, …
How Cirdan compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 72/100
- higher than 38% of 48,255 servers
- Tools
- 29
- the typical server has 7
- Tools that change things
- 7%
- typical: 0%. Fewer write tools means less an agent can break
- Downloads a week
- 82
- more than 58% of 12,191 servers with a package
What its tools let an agent do: 25 read · 2 create · 1 change · 1 run or deploy
Install Cirdan in Claude Code, Cursor or VS Code
Runs npx -y @cirdanops/cli on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add cirdan -- npx -y @cirdanops/cli
What the publisher says
From the Cirdan repository's README, as published. We do not edit it. Read it on GitHub
<!-- mcp-name: io.github.adanb13/cirdan -->
Cirdan
Cirdan is an on-call software repair agent. A production alert fires — Grafana, Alertmanager, or Slack. Cirdan resolves the affected service and its repo from the explicit services: registry in cirdan.yaml, reproduces the failure in an isolated runner (Docker Compose or Kubernetes), has a coding agent fix the code — your own logged-in Claude Code / Codex CLI, or an API provider — re-verifies the fix against the pinned reproduction probe and the repo's test suite, and opens a verified pull request. When policy allows, it merges, deploys, and verifies production recovery, stopping at manual_required with full evidence when recovery fails.
alert ─▶ resolve service + repo (the services: registry) ─▶ reproduce in an isolated runner
─▶ coding agent fixes the code ─▶ verify (pinned repro probe + sandboxed test suite)
─▶ verified PR (@cirdan review loop; CI checks watched) ─▶ optional merge + deploy
─▶ verify recovery in productionThe job it does: when an alert fires at 3am for a code-shaped failure, a verified fix PR (or a completed deploy plus recovery confirmation) is waiting instead of a page.
Cirdan is deliberately not an infrastructure mapper, a topology explorer, an observability dashboard, a generic agent launcher, or a ChatOps bot. It repairs the services you register — nothing is discovered, and nothing is repaired implicitly.
Quickstart
pipx install "cirdanops[all]" # or uv / pip / npm / brew / curl / docker — see Install
cirdan setup # opens the local, loopback-only setup UIcirdan setup walks one short path and shows a readiness banner that flips to "Ready to repair" only when this install can actually fix something:
or Use the API (managed credentials + a GitHub App). See Two ways to run.
- Choose a pathway — Use the CLI (the tools already logged in on this machine)
intake, or Slack.
- Connect an alert source — a Grafana webhook (+ HMAC), native Alertmanager
repos your gh login can push to; pick which ones it may repair. Only selected repositories are ever repaired.
- Select repair repositories — in Source Code Connection, Cirdan lists the
real payload you paste) and must show it resolving to a selected repository and routing to a code-repair pipeline.
- Prove routing — the Alert routing step synthesizes a sample alert (or takes a
- Start the daemon and post a demo alert:
cirdand serve --http
curl -X POST localhost:8090/v1/ingest/grafana -d @examples/demo/alert.firing.jsonThe runnable demo in examples/demo/ wires this end to end. The same checklist is available headlessly — cirdan status --checks prints the identical table and exits 1 until the install is ready. Useful setup flags:
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Cirdan: common questions
- Is Cirdan MCP server safe?
- Mostly: it is graded B (72/100). Read the Cirdan safety report
- How do I install Cirdan?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Cirdan need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Cirdan maintained?
- The last commit was 104 days ago (2026-07-23). The latest release is v0.9.0.
- How does Cirdan compare with other MCP servers?
- safety score 72/100 (higher than 38% of 48,255 servers); tools 29 (the typical server has 7); tools that change things 7% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.