RCA-MCP server
Causal root-cause analysis MCP server -- 56 tools across graphs, RCA models, PyRCA.
0 stars
Reviews
Write oneNobody has reviewed RCA-MCP yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
RCA-MCP tools (56, 16 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
rca_admin_healthReturn server health status and instance-wide aggregate counts. Any authenticated key can call this (minimum viewer role) -- use this to confirm the server is reachable and to see which model families are supported, not to check your own account's usage.
rca_admin_purge_namespacewrite actionPermanently delete ALL of YOUR OWN records in a storage namespace (graphs/models/results) in one call. Requires confirm=true. This action is IRREVERSIBLE. Only affects data you own -- there is no cross-account purge capability exposed via this or any other tool.
rca_admin_read_audit_logRead YOUR OWN structured audit log entries for a given hour bucket — one entry per tool call you made, showing which tool ran, when, and whether it succeeded or was denied.
rca_admin_show_plan_infoShow your current plan, every feature limit, and which locked features an upgrade would unlock. Takes no parameters beyond authentication -- there's nothing else to configure here.
rca_analysis_batchwrite actionRun the same RCA model over multiple incidents in one call, then rank which root causes recur most often across all of them — use this to spot a systemic cause behind several similar incidents, not just one.
rca_analysis_compareCompare multiple RCA results: surface overlapping root causes, confidence agreement, and model disagreements. Returns raw comparison JSON for programmatic use -- use rca_report_compare instead if you want the same comparison rendered as a shareable markdown/HTML document.
rca_analysis_ensemblewrite actionRun 2-5 different RCA models on the SAME payload and combine their root-cause scores via weighted voting. Requires the ensemble feature (Pro+). Use this when you're unsure which single model family fits the data best and want cross-validation across families -- for the SAME model run over multiple different incidents instead, use rca_analysis_batch.
rca_analysis_explainTurn a stored RCA result into a human-readable explanation with heuristic recommended actions (IMMEDIATE/MONITOR/TRACK, based on each cause's score) -- useful for a chat response or incident writeup, as opposed to rca_analysis_get_result's raw JSON.
rca_analysis_get_resultRetrieve a previously saved RCA result by result_id.
rca_analysis_list_resultsList all of YOUR stored RCA result IDs, newest first, with pagination. Returns IDs and a count only — not the results themselves; follow up with rca_analysis_get_result for the full content of any one of them.
rca_analysis_poll_taskwrite actionPoll the status of an async RCA task submitted via rca_analysis_run_async. Requires the async_tasks feature (Pro+ -- same gate as submitting the task in the first place).
rca_analysis_query_resultsQuery stored RCA results by model family, confidence threshold, time range, or tags — without loading every full result record. Use this instead of rca_analysis_list_results whenever you need to filter (e.g. "only high-confidence Granger results from this week"); use rca_analysis_list_results for a plain unfiltered listing instead. Returns lightweight index entries, not full result bodies -- follo
rca_analysis_runwrite actionExecute an RCA analysis using a registered model and return ranked root causes. This is the primary, synchronous analysis entry point -- it blocks until the model finishes. For a model that might take a while, use rca_analysis_run_async + rca_analysis_poll_task instead (Pro+); for multiple incidents through the same model in one call, use rca_analysis_batch instead (Starter+).
rca_analysis_run_asyncwrite actionSubmit a long-running RCA analysis (bayesian_network, dowhy_causal_inference, or any model against a large dataset) as a background task instead of blocking. Requires the async_tasks feature (Pro+); for most models on typical data sizes, the synchronous rca_analysis_run is simpler and doesn't need this or the plan tier. Returns a task_id immediately -- use rca_analysis_poll_task repeatedly to chec
rca_auth_generate_tokenGenerate a new API key for authenticating all other tools. Always issues the Free plan.
rca_auth_list_keysList your own API keys and their metadata. Never returns raw or hashed key material. Requires the multi-key feature (Pro plan or above -- up to 5 keys on Pro, unlimited on Enterprise); Free/Starter keys get a security_violation error, since those plans only ever have the one key they authenticated with.
rca_auth_revoke_tokenDeactivate one of your own API keys immediately — useful when a key is compromised or an integration is being retired. Unlike rca_auth_list_keys/rca_auth_rotate_key, this has no plan gate at all — every plan can revoke, including Free/Starter with only one key (revoking your only key means you'll need rca_auth_generate_token again, or your dashboard, to get back in).
rca_auth_rotate_keyDeactivate one of your existing API keys and generate a replacement for the same account in one call. Requires the multi-key feature (Pro plan or above -- up to 5 keys on Pro, unlimited on Enterprise).
rca_dtree_answer🌟 Starter+ — Answer the current diagnostic question to advance the decision tree. Call repeatedly until status == "resolved".
rca_dtree_generate_from_fmea🌟 Starter+ — Auto-generate a diagnostic decision tree from a completed FMEA analysis, converting HIGH-priority failure modes into a sequential yes/no diagnostic tree. Get fmea_result_id first by running rca_analysis_run against a model created with family="fmea".
rca_dtree_list_sessions🌟 Starter+ — List your equipment diagnostic sessions (started via rca_dtree_start), each with its status and diagnosis if resolved. Free-plan keys get a plan_required error instead of results.
rca_dtree_start🌟 Starter+ — Begin an interactive diagnostic session using a decision tree guide. Returns a question — answer with rca_dtree_answer, one call per question, until the session resolves to a diagnosis.
rca_graph_add_edgeAdd a directed causal edge (source → target) to a graph. Both nodes must already exist -- add them first with rca_graph_add_node. Automatically rejects edges that would create a cycle (DAG enforcement) rather than silently allowing an invalid graph.
rca_graph_add_nodeAdd a typed node to a causal graph. Node names must be unique within the graph -- adding a node with a name that already exists raises an error rather than overwriting it; remove the existing one first with rca_graph_remove_node if you want to replace it.
rca_graph_createwrite actionCreate a new, empty causal DAG. Populate it with rca_graph_add_node and rca_graph_add_edge afterward, or use rca_graph_discover instead if you have observational data and want the graph inferred rather than hand-built.
rca_graph_deletewrite actionDelete a causal graph permanently. Requires confirm=true. This action is IRREVERSIBLE via this tool -- if graph versioning is available on your plan, restoring an old version first won't help since the whole graph record is gone, not just its edges.
rca_graph_discoverAutomatically discover a causal skeleton from observational metric data using partial-correlation + Fisher-Z conditional independence tests (PC-algorithm). Requires the causal_discovery feature (Pro+).
rca_graph_getRetrieve a causal graph's current state. Use "json" (default) to inspect it programmatically, "dot" to render it visually with Graphviz, or "adjacency" for a plain source->targets mapping.
rca_graph_list_versionsList all historical versions of a causal graph. A new version is snapshotted automatically every time the graph is saved (node/edge additions, removals, etc) -- there's no separate "save version" step. Requires the graph_versioning feature (Starter+).
rca_graph_markov_blanketReturn the Markov blanket of a node: parents ∪ children ∪ co-parents -- the minimal set of other nodes needed to fully explain this node's behavior, ignoring the rest of the graph.
rca_graph_mergeMerge two causal graphs into a unified graph for cross-system RCA (e.g. combining a network-layer graph with an application-layer graph). Duplicate edges keep the higher-weight version; edges that would introduce a cycle are dropped and counted, not silently ignored. Requires the causal_discovery feature (Pro+); both source graphs must belong to you.
rca_graph_remove_edgewrite actionRemove a directed edge (source → target) from a causal graph. Destructive and irreversible via this tool — undo by re-adding the edge with rca_graph_add_edge, or restoring an earlier version with rca_graph_restore_version.
rca_graph_remove_nodewrite actionRemove a node and all its incident edges from a causal graph. Destructive and irreversible via this tool — undo only by rebuilding the node/edges with rca_graph_add_node + rca_graph_add_edge, or restoring an earlier version with rca_graph_restore_version if versioning is available on your plan.
rca_graph_restore_versionRestore a causal graph to a specific historical version. This creates a new current state from the version snapshot — the version history itself is preserved (the restore operation is snapshotted too, so restoring is itself undoable by restoring forward again). Requires confirm=true and the graph_versioning feature (Starter+).
rca_graph_scoreCompute structural quality scores for a causal graph -- a sanity check on the graph's shape itself (is it a valid DAG, how connected is it), not a root-cause analysis. Use this after building or editing a graph by hand, or after rca_graph_discover, to catch structural issues (e.g. disconnected components, a graph that isn't actually a DAG) before running rca_analysis_run on it.
rca_graph_score_pathsFind and rank all causal paths from every root (no-incoming-edge) node to a target incident node. Score = geometric-mean(edge weights) × avg_confidence / sqrt(hops) — shorter, higher-weight, higher-confidence paths rank above longer or weaker ones.
rca_guide_deletewrite actionPermanently delete an equipment guide you ingested. Requires confirm=true. This action is IRREVERSIBLE -- re-ingest via rca_guide_ingest or rca_guide_ingest_pdf if you need it back.
rca_guide_generate_report🌟 Starter+ (markdown) / 💎 Pro+ (PDF/HTML) — Generate a maintenance/ troubleshooting report from a completed diagnostic session. The session must already be resolved (finished via rca_dtree_answer) — an in-progress session returns an error telling you to keep answering questions first.
rca_guide_get✅ All plans — Retrieve a full troubleshooting guide, or one specific section by ID. Includes the 4 built-in shared sample guides (visible and readable by every account, though only rca_guide_ingest/rca_guide_ingest_pdf can add your own, and only your own can be deleted via rca_guide_delete).
rca_guide_ingestwrite action🌟 Starter+ — Upload and index an equipment troubleshooting guide into the knowledge base, as plain text content. Use rca_guide_ingest_pdf instead if you're starting from an actual PDF file.
rca_guide_ingest_pdf🌟 Starter+ — Parse a PDF equipment manual and ingest it into the RCA knowledge base. Rejects non-PDF input (checked via file signature, not just the base64 wrapper) and files over 50MB.
rca_guide_list✅ All plans — List your ingested troubleshooting guides (plus the 4 built-in shared samples visible to every account), with optional equipment_type/tag filters. Use the returned guide_id with rca_guide_get, rca_guide_delete, or rca_dtree_start.
rca_guide_pdf_preview🌟 Starter+ — Preview a PDF document before full ingestion to verify parsing quality. Always call this BEFORE rca_guide_ingest_pdf.
rca_guide_search✅ All plans — Search the equipment knowledge base by symptom description using TF-IDF relevance ranking. Free plan capped at 3 results. Searches both your own ingested guides and the 4 built-in shared sample guides (visible to every account).
rca_model_createwrite actionRegister a new RCA model spec in the registry, starting in "draft" status. This just stores the spec — it doesn't run anything.
rca_model_deletewrite actionPermanently delete a model from the registry and storage. Requires confirm=true. This action is IRREVERSIBLE -- any results already produced by this model (via rca_analysis_run etc.) are unaffected and stay retrievable via rca_analysis_get_result, but you can no longer run new analyses with this model_id.
rca_model_listList all of YOUR registered RCA models, with optional family/status filters. Use this to find a model_id for rca_analysis_run, or to check your usage against your plan's model-count limit (see rca_admin_show_plan_info for the limit itself).
rca_model_update_statuswrite actionSet a model's lifecycle status directly to any of: draft, trained, validated, deployed, deprecated, failed. This is a direct field update, not a guarded state machine — there is no enforced order (e.g. nothing stops setting "deployed" on a model that was never validated); that discipline is on the caller, not the API.
rca_model_validatewrite actionRun a quick correlation-based sanity check of a model against hold-out data you supply (not automatically split from training data -- you provide a separate dataset). This is a lightweight coverage/confidence check, not full cross-validation or backtesting; use it to catch an obviously broken model, not to certify accuracy.
rca_provider_list_configsGet MCP client configuration and setup instructions for a specific provider or list all supported providers. Use this when a user asks "how do I connect RCA-MCP to X" -- it's documentation lookup, not something that affects RCA-MCP's own behavior.
rca_pyrca_epsilon_diagnosis[Adapted from Salesforce PyRCA — BSD-3-Clause] Identify anomalous metrics contributing to a Service Level Indicator (SLI) anomaly by comparing metric distributions in normal vs. incident windows.
rca_pyrca_ht_diagnosis[Adapted from Salesforce PyRCA — BSD-3-Clause] Hypothesis-testing RCA with descendant adjustment (HT-ADJ / CIRCA). Tests whether the SLI anomaly can be statistically explained by causal propagation from each ancestor node. Applies descendant adjustment to reduce indirect cause scores and surface true root causes.
rca_pyrca_random_walk[Adapted from Salesforce PyRCA — BSD-3-Clause] Graph-based root cause localisation via personalised PageRank random walk. Propagates backward through a causal adjacency graph from the SLI node, weighting transitions by anomaly scores to compute root cause probabilities. Requires the pyrca feature (Starter+) and, unlike rca_pyrca_epsilon_diagnosis, needs an adjacency graph you already have (from rc
rca_pyrca_validate_setupValidate the PyRCA integration setup and report which strategy is active — a read-only diagnostic, not an action. Takes no parameters beyond authentication (token/client_id); there is nothing else to configure on this call.
rca_report_compareGenerate a comparative report across 2–10 RCA results, showing consensus root causes, model agreement percentages, and per-model summaries. Use this instead of rca_analysis_compare when you want a shareable formatted document rather than raw comparison JSON.
rca_report_generateGenerate a styled, professional report from a SINGLE RCA analysis result -- use rca_report_compare instead if you want a report covering multiple results together.
Public scan report
scanner v0.1.5 · 2026-09-19 · same rubric, same numbers if you re-run it
- Code scan14 source files scanned25/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 qualitystatic API keys via environment variables6/15
- Maintenancelast push 8 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Install directly
claude mcp add rca-mcp-connector -- uvx rca-mcp-connector
RCA-MCP: common questions
- Is RCA-MCP server safe?
- Mostly: it is graded B (83/100). Read the RCA-MCP safety report
- How do I install RCA-MCP?
- It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
- Does RCA-MCP need an API key?
- Yes. The registry entry asks for
RCA_MCP_API_KEY. - Is RCA-MCP maintained?
- The last commit was 9 days ago (2026-09-11). The latest release is v4.1.20.
- What can I use instead of RCA-MCP?
- Servers from other publishers that do the same job: Measure MCP server and Vestige MCP server.
Alternatives to RCA-MCP
Same job from other publishers: the closest match first, then the best rated.