local-rag (TheWinci/mimirs) is an MCP server listed on the M8ven Trust Index. It scores 60 out of 100, grade C. It declares 31 tools. No publisher has claimed this listing.
Semantic code search for AI agents — hybrid vector + BM25 with cross-encoder reranking, AST-aware chunking for 14 languages, conversation memory, code annotations, and search analytics. Zero config, zero API keys. Just bunx
Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
TheWinci
Source: Glama
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.
These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.
server_infoShow the current MCP server configuration: resolved project directory, database location, index status, embedding model, active config, and all currently connected databases.
connect_reposearch_analyticsShow search usage analytics: query counts, zero-result queries, low-relevance queries, top searched terms.
annotateAttach a persistent note to a file or symbol that surfaces inline in future read_relevant results. Call this immediately when you encounter: a known bug or race condition, fragile code that shouldn't be changed yet, a non-obvious architectural constraint, or a workaround that needs context. Calling …
get_annotationsRetrieve persistent notes attached to files or symbols. Pass path to get all notes for a file. Pass query to search semantically across all annotations. Pass both to filter by file and rank by relevance.
delete_annotationRemove an annotation that is no longer relevant — e.g. a bug that was fixed, a constraint that no longer applies, or a note on a deleted file/symbol. Use get_annotations first to find the annotation ID.
create_checkpointSave a checkpoint so future sessions know what was done and why. REQUIRED: call this as your final step after completing any user-requested task, before responding to the user. Also call when hitting a blocker or changing direction mid-task.
list_checkpointsList conversation checkpoints, most recent first. Cross-session by default.
search_checkpointsSemantic search over checkpoint titles and summaries.
search_conversationSearch through conversation history. Finds past decisions, discussions, and tool outputs from current or previous sessions.
read_conversationRead the full verbatim text of past conversation turns by session + turn index. The read counterpart to search_conversation, which only returns short snippets — use it to hydrate a turn you located, or to pull a range of recent turns. Set includeToolOutput to also get tool results (re-parses the raw…
search_commitsSemantically search git commit history. Use this to find why code was changed, when decisions were made, or what an author worked on. Returns commits ranked by relevance to the query.
co_changeFiles that historically change in the same commit as a given file — logical coupling the import graph can't see (doc↔code, test↔impl, synced mirrors, sibling files with no import edge). Use before editing a file to find what else usually changes with it, or to widen a change's blast radius beyond st…
file_historyGet the commit history for a specific file. Returns commits that touched the file, sorted by date (newest first). Faster than git log for indexed repositories.
git_contextShow git context for the working tree: uncommitted changes annotated with index status, recent commits, and changed files. Use this at the start of a session to understand what has already been modified before searching or editing.
project_mapVisualize how files relate to each other — imports, exports, and fan-in/fan-out. Faster than reading import statements across many files. Use 'focus' to zoom into a specific file's neighborhood. Use format 'json' for structured data with fan-in/fan-out metrics. Use search or read_relevant next to ex…
usagesFind call sites and references to a symbol across indexed files — with file paths, line numbers, and matching lines. Resolves aliased imports: searching the original name finds call sites that import it under an alias (`import { getDB as g }; g()`). Primary matches come from an AST-derived reference…
depends_onList all files that a given file imports (its dependencies). Shows the resolved import graph — what this file actually depends on. This is FILE-level, outward direction. Routing — reverse (files that import this one) is dependents; for a single symbol's references use usages.
dependentsList all files that import a given file (reverse dependencies). Shows the blast radius before modifying a file — every file that would be affected by a change. This is FILE-level, inward direction. Routing — reverse (what this file imports) is depends_on; for finer SYMBOL-level blast radius use impa…
impactSymbol-level blast radius: the transitive callers of a function or method as a pruned call tree, plus the test files to run for the change. More precise than dependents (which is file-level). Use before changing a signature or behavior. Pass 'file' to disambiguate a name defined in several places. T…
traceShow how one symbol reaches another: the connecting call sub-graph from 'from' to 'to', with the shortest path highlighted. Answers 'how does X reach Y'. Reachability is COMPLETE — the whole reachable graph is searched (no hop limit), so a 'no path' result means truly unreachable, not 'too far'. Bra…
calleesList the functions/methods a symbol directly calls (one hop out), each resolved to its definition file:line. The forward complement of usages (callers, one hop in) — use it to see what a function depends on before editing it. Static resolution: dynamic dispatch (callbacks, interface→impl, DI) and ca…
affectedGiven changed files (or the working-tree diff against HEAD by default), report the test files that transitively import them — what to run for this change. The interactive counterpart of the `affected` CLI; pair with impact for symbol-level blast radius. Returns changed (indexed) files, the tests to …
index_filesIndex files in a directory for semantic search. Without patterns, indexes the project from config and prunes deleted or now-excluded files. With patterns, refreshes or expands only matching files and leaves the rest of the index untouched.
index_statusShow the current state of the RAG index for a project directory.
remove_fileRemove a specific file from the RAG index.
searchSearch the full codebase by meaning — finds files that grep misses. Use natural language ('how does auth work') or symbol names. Searches all indexed files semantically + by keyword in <100ms. Returns ranked file paths with snippets. Use read_relevant next to get full content with line ranges. Pass …
read_relevantGet the actual content of the most relevant code chunks — individual functions, classes, or sections — with exact line ranges for navigation. Smarter than grep: finds code by meaning, not just string matching. Multiple chunks from the same file can appear. Use this instead of search + Read when you …
search_symbolsFind where a function, class, type, or interface is defined — by name, not semantics. Faster than grep for symbol lookup: searches the pre-built symbol index across all indexed files. Omit symbol to list all exports (filtered by type). Returns enrichment data: hasChildren, childCount, referenceCount…
write_relevantFind the best file and location to insert new code or docs. Returns semantically appropriate insertion points with anchors for precise placement. Use this before adding a new function to find which file and position it belongs in.
wikiRun the wiki rebuild workflow. The `command` argument uses colon selectors, for example `shape`, `prefetch:map:src/server.ts`, `discovery:page:tools/search`, or `write:page:tools/search`.
Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.
@modelcontextprotocol/sdk has cross-client data leak via shared server/transport instance reuse
Anthropic's MCP TypeScript SDK has a ReDoS vulnerability
Model Context Protocol (MCP) TypeScript SDK does not enable DNS rebinding protection by default
LOG_LEVELMIMIRS_ALLOW_CUSTOM_MODELMIMIRS_INSECURE_TLSMIMIRS_PROFILERAG_DB_DIRIf the project lives in a read-only mount, set to a writable location. The index lives there instead of <project>/.mimirs/.RAG_PROJECT_DIRThe mimirs MCP server runs over stdio. Every client needs the same three things: a command (bunx), args (["mimirs@^1", "serve"]), and a env var pointing at your project root.Tool annotations
No tools have read-only/destructive annotations
Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.
All four hints declared on every tool
31/31 tools missing one or more hints — server_info (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); connect_repo (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); search_analytics (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +28 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.
For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.
Tool inputs are validated
20/31 tool handlers declare input schemas (65%)
Declare an inputSchema with zod/joi/yup on every tool definition.
Production dependencies are patched
0 critical, 3 high severity in production deps — @modelcontextprotocol/sdk@1.12.0 (high), @modelcontextprotocol/sdk@1.12.0 (high)
Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.
Dependency freshness
1/8 production deps stale: gray-matter@2023-07-12 (3.2y)
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/thewinci/mimirs)?variant=verified from the URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check