Exposes three tools that help LLMs interpret alerts from a RAG drift monitoring system. When your retrieval pipeline drifts across dimensions like coverage, rank correlation, or embedding shift, interpret_drift_score translates raw metrics into plain English explanations. recommend_thresholds suggests sensible alerting boundaries based on your pipeline's characteristics, and explain_drift_dimensions breaks down what each of the five drift axes actually measures. Part of a fourteen server collection from the mcp-stack monorepo, this one wraps logic from the ragdrift Rust crate. Install it if you're building agents that triage production RAG quality issues or need to turn numerical drift scores into actionable diagnosis without hallucinating what the metrics mean.
Fourteen small MCP servers for everyday LLM / RAG / agent work. Each ships independently on npm, listed in the official MCP Registry, and is callable from Claude Desktop, Cursor, Cline, Windsurf, Zed, and any other MCP-compatible client.
| Package | Tools | When to install |
|---|---|---|
@mukundakatta/promptbudget-mcp | truncate_to_token_budget | LLM needs to fit text into a context window mid-task |
@mukundakatta/citecite-mcp | inject_citations, parse_citations, strip_citations | Round-trip [1] [2] markers in RAG outputs |
@mukundakatta/ragmetric-mcp | recall_at_k, hit_at_k, mrr, ndcg_at_k, evaluate_batch | LLM helps score retrieval quality |
@mukundakatta/ragdrift-mcp | interpret_drift_score, recommend_thresholds, explain_drift_dimensions | LLM diagnoses RAG drift alerts |
| Package | Tools | When to install |
|---|---|---|
@mukundakatta/csv-tools-mcp | parse_csv, to_csv, pluck_columns | LLM needs RFC 4180-correct CSV (quoted fields, embedded commas, BOMs) |
@mukundakatta/regex-test-mcp | test_regex, find_all, replace | LLM needs exact regex semantics with real match offsets and named groups |
@mukundakatta/jmespath-mcp | json_query | LLM needs deep JSON traversal (filters, projections, pipes) without hallucinating |
@mukundakatta/diff-mcp | unified_diff, apply_patch, parse_patch | Code-review or code-edit agent needs character-precise patches |
@mukundakatta/sqlfmt-mcp | format_sql, list_dialects | Deterministic SQL formatting across 19 dialects |
@mukundakatta/shellquote-mcp | quote_bash, quote_bash_argv, quote_cmd, quote_powershell | Safe shell argument escaping; LLMs constantly mishandle quotes/$VAR |
@mukundakatta/json5-mcp | parse_json5, to_json5, to_strict_json | LLM emitted JSON-with-comments / trailing-commas; round-trip to strict JSON |
@mukundakatta/toml-yaml-json-mcp | parse, format, convert | TOML / YAML / JSON conversion (LLMs especially mishandle TOML) |
@mukundakatta/timezone-mcp | convert_tz, now_in, tz_offset | IANA timezone math with real DST rules; LLMs hallucinate offsets |
@mukundakatta/html-to-markdown-mcp | html_to_md, extract_text | Web-scraping agents need clean Markdown / text from HTML |
The first four wrap or re-implement logic from the user's Rust + Python work:
ragdrift (crates.io) /
ragdrift-py (PyPI) — five-dimensional drift detectionembedrank, promptbudget,
stopstream, citecite,
ragmetric — pure-Rust crates from
the rust-llm-stack workspaceThe MCP servers are independent: they implement the logic they need in plain JavaScript so installing them doesn't pull a Rust toolchain.
Add to your MCP client config. Example for Claude Desktop:
{
"mcpServers": {
"promptbudget": { "command": "npx", "args": ["-y", "@mukundakatta/promptbudget-mcp"] },
"citecite": { "command": "npx", "args": ["-y", "@mukundakatta/citecite-mcp"] },
"ragmetric": { "command": "npx", "args": ["-y", "@mukundakatta/ragmetric-mcp"] },
"ragdrift": { "command": "npx", "args": ["-y", "@mukundakatta/ragdrift-mcp"] },
"csv-tools": { "command": "npx", "args": ["-y", "@mukundakatta/csv-tools-mcp"] },
"regex-test": { "command": "npx", "args": ["-y", "@mukundakatta/regex-test-mcp"] },
"jmespath": { "command": "npx", "args": ["-y", "@mukundakatta/jmespath-mcp"] },
"diff": { "command": "npx", "args": ["-y", "@mukundakatta/diff-mcp"] },
"sqlfmt": { "command": "npx", "args": ["-y", "@mukundakatta/sqlfmt-mcp"] },
"shellquote": { "command": "npx", "args": ["-y", "@mukundakatta/shellquote-mcp"] },
"json5": { "command": "npx", "args": ["-y", "@mukundakatta/json5-mcp"] },
"toml-yaml-json": { "command": "npx", "args": ["-y", "@mukundakatta/toml-yaml-json-mcp"] },
"timezone": { "command": "npx", "args": ["-y", "@mukundakatta/timezone-mcp"] },
"html-to-md": { "command": "npx", "args": ["-y", "@mukundakatta/html-to-markdown-mcp"] }
}
}
git clone https://github.com/MukundaKatta/mcp-stack
cd mcp-stack
npm install
npm test --workspaces
MIT OR Apache-2.0.
io.github.ericm1018/skillfm-llm-cost-optimizer-openai-anthropic-usage
io.github.mikerawsonnz/llm-orchestration-agent
io.github.mikerawsonnz/authenticated-llm-agent
labforgedev/copilot-memory-mcp
csoai-org/agent-prompt-injection-firewall-mcp
io.github.mikerawsonnz/authenticated-multi-llm-agent