Atlas / MCP servers / cq27-dev / rag-rat

rag-ratBLOCK

mcp/cq27-dev/rag-rat

Local repo-intelligence index + MCP server: semantic search, symbol/graph navigation, impact-surface preflight, git + GitHub papertrail, and a source-anchored memory graph.

Verdict
BLOCK
Grade
F
Trust score
42 /100
Exposed tools
—
Transport
stdio
License
MIT
Stars
24
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[](https://github.com/cq27-dev/rag-rat/actions/workflows/ci.yml) [](https://codecov.io/gh/cq27-dev/rag-rat) [](https://crates.io/crates/rag-rat) [](https://bencher.dev/perf/rag-rat/plots) [](https://rag-rat.cq27.dev)

What a repository knows about itself. rag-rat is a local repo-intelligence index and MCP server for coding agents. It keeps source files read-only, writes only its own SQLite database, and answers with provenance on every result — current source, the code graph, git/GitHub history, and durable, source-anchored repo memories that persist across sessions and agents.

Explore the live VS Code Lens demo — no installation required. It surfaces clone classes, repo memories, and issue/decision context alongside the code; press Ctrl+Alt+R to reveal clone overlays.

Every coding harness already has grep and file reads. rag-rat adds the layer they do not provide: source-anchored rationale. It connects the code an agent is about to touch to its callers, callees, tests, git/GitHub history, prior decisions, invariants, risks, and duplicate-code signals — and labels every result with confidence and coverage, so an agent can judge it instead of trusting it.

sequenceDiagram
participant Repo as Repository
participant Engine as rag-rat engine
participant Agent as Coding agent

Repo->>Engine: Source · git/GitHub · repo memories
Read from source at commit 286a38b8a730OBSERVED · 2026-10-10
Advertisement
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.

claude-code (npm)
claude mcp add bin -- npx -y @rag-rat/[email protected] mcp
03

Trust audit

BLOCKgrade F · trust 42/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryWARN
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (12 observation(s))
Network
declared (5 observation(s))
Shell
declared (7 observation(s))
Dependencies
not all pinned
Secrets in source
none-found

Findings (25)

HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
crates/rag-rat-cli/src/cli.rs:126
Eval(EvalArgs),
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
crates/rag-rat-cli/src/commands/models.rs:22
pub(crate) fn eval(config: &Config, args: &EvalArgs) -> anyhow::Result<()> {
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
crates/rag-rat-cli/src/main.rs:165
Cmd::Eval(args) => eval(&config, &args)?,
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
MEDIUMInventory / provenance · inv.symlink · CWE-1104
.claude/skills/configure-rag-rat-dream
.claude/skills/configure-rag-rat-dream
Why it matters. link not followed
MEDIUMInventory / provenance · inv.symlink · CWE-1104
.claude/skills/dream-review
.claude/skills/dream-review
Why it matters. link not followed
MEDIUMInventory / provenance · inv.symlink · CWE-1104
.claude/skills/init-rag-rat
.claude/skills/init-rag-rat
Why it matters. link not followed
MEDIUMInventory / provenance · inv.symlink · CWE-1104
.claude/skills/rust-modern-style
.claude/skills/rust-modern-style
Why it matters. link not followed
MEDIUMInventory / provenance · inv.symlink · CWE-1104
.claude/skills/using-rag-rat
.claude/skills/using-rag-rat
Why it matters. link not followed
MEDIUMObfuscation / stealth · obf.base64_blob · CWE-506, CWE-94
crates/rag-rat-oplog/src/account/annex/ops.rs:545
assert_eq!(hex(&encode(&sample()).unwrap()), "830100818500f6f658202a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a81835820bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
MEDIUMObfuscation / stealth · obf.base64_blob · CWE-506, CWE-94
crates/rag-rat-oplog/src/account/checkpoint.rs:887
"8378237261672d7261742f636f6e74726f6c2d636865636b706f696e742d62756e646c652f315901568378237261672d7261742f636f6e74726f6c2d636865636b706f696e742d7369676e65642f3158ec88781c7261672d7261742f636f6e74726f6c2
MEDIUMObfuscation / stealth · obf.base64_blob · CWE-506, CWE-94
crates/rag-rat-oplog/src/account/content/envelope.rs:487
"8d6f7261672d7261742f656e7472792f3358201111111111111111111111111111111111111111111111111111111111111111582022222222222222222222222222222222222222222222222222222222222222225820fe812c12f3ab4ce6ac5db69ac
MEDIUMObfuscation / stealth · obf.base64_blob · CWE-506, CWE-94
crates/rag-rat-oplog/src/account/content/envelope.rs:491
"83767261672d7261742f7369676e65642d656e7472792f3158c88258c28d6f7261672d7261742f656e7472792f3358201111111111111111111111111111111111111111111111111111111111111111582022222222222222222222222222222222222
MEDIUMObfuscation / stealth · obf.base64_blob · CWE-506, CWE-94
crates/rag-rat-oplog/src/account/envelope.rs:388
"8258678d777261672d7261742f6163636f756e742d656e7472792f315820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa005820fe812c12f3ab4ce6ac5db69ac352f906cb1b11ef43fb33e252ef7ff55226388900f6f
LOWInventory / provenance · inv.hidden_file · CWE-1104
editors/vscode/.vscodeignore
.vscodeignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
.github/workflows/eval.yml:72
name: eval (search-quality)
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
editors/vscode/test/client.test.cjs:17
new Function('module', 'exports', 'require', result.outputFiles[0].text)(
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWFilesystem / path · fs.credential_store · CWE-22, CWE-59
.github/workflows/deploy-appliance.yml:51
mkdir -p ~/.ssh
Why it matters. touches a credential store
LOWFilesystem / path · fs.credential_store · CWE-22, CWE-59
.github/workflows/deploy-appliance.yml:52
printf '%s\n' '${{ secrets.DEPLOY_HOST_KEY }}' > ~/.ssh/known_hosts
Why it matters. touches a credential store
LOWFilesystem / path · fs.credential_store · CWE-22, CWE-59
.github/workflows/deploy-appliance.yml:53
chmod 600 ~/.ssh/known_hosts
Why it matters. touches a credential store
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
crates/rag-rat-cli/src/agent_hook/tests.rs:298
serde_json::from_str(include_str!("../../../../plugin/hooks/hooks.json")).unwrap();
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
crates/rag-rat-cli/src/agent_hook/tests.rs:311
serde_json::from_str(include_str!("../../../../plugin/hooks.vscode.json")).unwrap();
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
crates/rag-rat-cli/src/agent_hook/tests.rs:322
serde_json::from_str(include_str!("../../../../plugin/hooks.cursor.json")).unwrap();
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
crates/rag-rat-core/benches/shared/mod.rs:31
PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("../../target/bench-corpus")
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
crates/rag-rat-core/src/index/languages/grammar_kind_tests.rs:427
"../../../../rag-rat-clones/src/bag_blob.rs",
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
crates/rag-rat-base/src/config/tests/llm.rs:139
query_endpoint = "http://127.0.0.1:11999"

Gates applied: no_behavioural_pass.

Audited 2026-10-10 · audit v0.4.1 · source sha 286a38b8a730full audit observations/trust-audit/mcp-server/cq27-dev__rag-rat.json · Report an issue / request a re-scan
04

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-10286a38b8a730BLOCKF42first audit
05

Questions

What is the rag-rat MCP server?

Local repo-intelligence index + MCP server: semantic search, symbol/graph navigation, impact-surface preflight, git + GitHub papertrail, and a source-anchored memory graph.

Is rag-rat safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (42/100) and found 3 critical or high issues in the source. Each one is listed on this page with the file and line it is on.

What credentials does rag-rat need?

No credential environment variables were found in its source, so it appears to need none.

How does rag-rat run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as rag-rat-oracle-toolchain at 0.0.0.

How current is this page?

The grade is for one exact copy of the source (286a38b8a730), read on 2026-10-10. The repository is watched and re-audited when it changes.

Advertisement