RCA-MCP Connector
# RCA-MCP Connector
<!-- mcp-name: io.github.dave1362/rca-mcp-connector -->
  
> **Note:** the `api.rca-mcp.com` custom domain isn't wired up yet — point
> `RCA_MCP_API_URL` at the current backend URL below instead.
## What is RCA-MCP?
The only MCP server purpose-built for causal Root Cause Analysis. 56 tools covering
causal graph construction, 10 RCA model families plus 3 dedicated PyRCA algorithms
(Salesforce PyRCA, BSD-3-Clause), multi-model consensus, and PDF/HTML/Excel/Markdown
report generation. Works with Claude, Ollama, Groq, OpenAI, Gemini, LangChain,
Cursor — 10 providers.
---
## Quick Start (2 minutes)
`rca-mcp-connector` is a published PyPI package — no clone needed. Point any MCP
client at it with `uvx` (or `pip install rca-mcp-connector` if you'd rather manage
the install yourself):
```bash
uvx rca-mcp-connector
```
Get a free API key at [rcamcp.datalizedglb.cloud](https://rcamcp.datalizedglb.cloud) — no credit
card required — then set `RCA_MCP_API_KEY` in your MCP client's config (examples
below).
---
## Claude Code Setup
Add to `.mcp.json` in your workspace root:
```json
{
"mcpServers": {
"rca-mcp": {
"command": "uvx",
"args": ["rca-mcp-connector"],
"env": {
"RCA_MCP_API_URL": "https://rcamcp-production.up.railway.app",
"RCA_MCP_API_KEY": "your_api_key_here"
}
}
}
}
```
## Ollama Setup
```bash
go install github.com/mark3labs/mcphost@latest
mcphost -m ollama:qwen3:14b --config providers/mcp-servers.json
```
## OpenAI Agents SDK
```python
from agents import Agent, MCPServerStdio
import asyncio
async def main():
async with MCPServerStdio(
params={
"command": "uvx",
"args": ["rca-mcp-connector"],
"env": {
"RCA_MCP_API_URL": "https://rcamcp-production.up.railway.app",
"RCA_MCP_API_KEY": "your_api_key_here",
},
}
) as rca_server:
agent = Agent(name="RCA Agent", model="gpt-4o", mcp_servers=[rca_server])
result = await agent.run("Find the root cause of the API latency spike.")
print(result.final_output)
asyncio.run(main())
```
## LangChain
```python
from langchain_mcp_adapters.client import MultiServerMCPClient
from langchain_anthropic import ChatAnthropic
from langgraph.prebuilt import create_react_agent
import asyncio
async def main():
async with MultiServerMCPClient({
"rca-mcp": {
"command": "uvx", "args": ["rca-mcp-connector"],
"env": {
"RCA_MCP_API_URL": "https://rcamcp-production.up.railway.app",
"RCA_MCP_API_KEY": "your_api_key_here",
},
"transport": "stdio",
}
}) as client:
tools = await client.get_tools()
agent = create_react_agent(ChatAnthropic(model="claude-sonnet-4-6"), tools)
result = await agent.ainvoke({"messages": [{"role": "user", "content": "Run an FMEA analysis"}]})
print(result["messages"][-1].content)
asyncio.run(main())
```
See `providers/` for ready-to-use config templates and full examples (Groq, Gemini,
OpenRouter, Claude Desktop).
---
## Third-Party Licences
**PyRCA (Salesforce):** BSD-3-Clause
Copyright (c) 2022, salesforce.com, inc.
https://github.com/salesforce/PyRCA
Algorithms in `rca_pyrca_*` tools are independently-written adaptations of PyRCA's
published methods (Zheng et al. 2023, arXiv:2306.11417), not direct copies of PyRCA
source code, per the private API's `models/pyrca_adapter.py`.
---
## Citing RCA-MCP
```bibtex
@software{rcamcp2026,
title = {RCA-MCP: An MCP Server for Causal Root Cause Analysis},
author = {dave1362},
year = {2026},
url = {https://github.com/dave1362/rca-mcp-connector},
note = {v4.1.20}
}
```
TDQS
Scored across 56 tools
Tools are organized into clear domains (graph, model, analysis, guide, dtree, auth, admin) and near-neighbors explicitly cross-reference each other to avoid misselection (e.g., rca_analysis_query_results vs rca_analysis_list_results, rca_analysis_compare vs rca_report_compare). A few pairs could still be confused, notably rca_report_generate vs rca_guide_generate_report and rca_graph_score vs rca_graph_score_paths, but the descriptions do enough work to keep boundaries clear.
All tools follow a consistent rca_<domain>_<action> snake_case pattern, which is a strong, predictable skeleton even across 56 tools. Minor deviations exist: rca_admin_show_plan_info uses 'show' where other tools use 'get' or 'list', rca_graph_markov_blanket is a noun rather than a verb, and rca_guide_generate_report inverts the domain/action ordering seen in rca_report_generate.
56 tools is far beyond the typical well-scoped MCP surface and creates a heavy action space for agents to navigate. The tools are grouped into sensible subdomains, so the count isn't chaotic, but it is still too many for a connector-style server and would benefit from consolidation.
The surface covers full lifecycles for auth, models, graphs, guides, and decision trees, plus run/retrieve/query/compare/explain for analyses and report generation. Notable gaps: no per-item delete for analysis results (only Enterprise-level namespace purge), no graph metadata update, and no way to cancel an async task.