Server data from the Official MCP Registry
Knowledge graph for token-efficient code reviews with fixed search and configurable embeddings
Knowledge graph for token-efficient code reviews with fixed search and configurable embeddings
A well-architected MCP server for code analysis with proper authentication via environment variables and reasonable permission scoping. The codebase demonstrates good error handling and input validation practices. However, there are moderate concerns around dynamic file system access through user-supplied paths, subprocess execution for git operations without full validation, and potential sensitive data exposure through error messages and graph exports. Supply chain analysis found 1 known vulnerability in dependencies (1 critical, 0 high severity). Package verification found 1 issue.
3 files analyzed · 10 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Environment variable: EMBEDDING_BACKEND
Environment variable: API_KEYS
Environment variable: LITELLM_PROXY_URL
Environment variable: LITELLM_PROXY_KEY
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-n24q02m-better-code-review-graph": {
"env": {
"API_KEYS": "your-api-keys-here",
"EMBEDDING_BACKEND": "your-embedding-backend-here",
"LITELLM_PROXY_KEY": "your-litellm-proxy-key-here",
"LITELLM_PROXY_URL": "your-litellm-proxy-url-here"
},
"args": [
"better-code-review-graph"
],
"command": "uvx"
}
}
}From the project's GitHub README.
mcp-name: io.github.n24q02m/better-code-review-graph
Knowledge graph for token-efficient code reviews -- fixed search, configurable embeddings, qualified call resolution.
| Project | Tagline | Tag |
|---|---|---|
| better-code-review-graph | Knowledge graph for token-efficient code reviews -- fixed search, configurabl... | MCP |
| better-email-mcp | IMAP/SMTP email server for AI agents -- 6 composite tools with multi-account ... | MCP |
| better-godot-mcp | Composite MCP server for Godot Engine -- 17 mega-tools for AI-assisted game d... | MCP |
| better-notion-mcp | Markdown-first Notion API server for AI agents -- 10 composite tools replacin... | MCP |
| better-telegram-mcp | MCP server for Telegram with dual-mode support: Bot API (httpx) for quick bot... | MCP |
| claude-plugins | Full documentation: mcp.n24q02m.com — unified docs for all 8 servers + the mc... | Marketplace |
| imagine-mcp | Production-grade MCP server for image and video understanding + generation ac... | MCP |
| jules-task-archiver | Chrome Extension for bulk operations on Jules tasks via batchexecute API -- a... | Tooling |
| mcp-core | Unified MCP Streamable HTTP 2025-11-25 transport, OAuth 2.1 Authorization Ser... | MCP |
| mnemo-mcp | Persistent AI memory with hybrid search and embedded sync. Open, free, unlimi... | MCP |
| qwen3-embed | Lightweight Qwen3 text embedding and reranking via ONNX Runtime and GGUF | Library |
| skret | Secrets without the server. | CLI |
| web-core | Shared web infrastructure package for search, scraping, HTTP security, and st... | Library |
| wet-mcp | Open-source MCP Server for web search, content extraction, library docs & mul... | MCP |
Fork of code-review-graph with critical bug fixes, configurable embeddings, and production CI/CD. Parses your codebase with Tree-sitter, builds a structural graph of functions/classes/imports, and gives Claude (or any MCP client) precise context so it reads only what matters.
See BREAKING_CHANGES.md for the full schema-change list, behavior-change summary, environment requirements, and rollback procedure.
This release adds temporal columns (valid_from_sha /
valid_to_sha on every node + edge) and an opt-in security
scanner. The schema migration is auto-applied on first
GraphStore open, and a backup of the pre-2.0 DB is saved to
<graph_db>.pre-2.0.bak so you can roll back if needed.
To downgrade and restore the pre-2.0 backup:
CRG_DOWNGRADE_TO_1_X=1 uv run better-code-review-graph
The backup is created the first time alembic crosses the breaking
boundary (revision 005_temporal_columns); subsequent runs reuse
the existing backup file. After a downgrade the v2-state DB is
preserved at <graph_db>.post-2.0.archived so you can forward-roll
again later.
What you get on v2.0+:
query/search/impact accept
as_of=<sha> for snapshot semantics; query(action="diff", from_sha=X, to_sha=Y) returns {added, removed, modified}
buckets driven entirely by the temporal columns (no re-parse).
See help(topic="query").review(action="delta", show_line_shifts=true, ...) surfaces symbols whose line_start
moved between two commits.security(action="scan", ...) runs a
regex-based Tier-1 scanner (5 rules) by default; pass
engine="semgrep" (after uv add 'better-code-review-graph[security]')
for the ~120-rule Tier-2 overlay. Findings persist on
nodes.security_tags; report re-emits the cache as JSON or
SARIF v2.1.0. See help(topic="security").graph(action="summarize") writes a one-paragraph docstring for each Function node via Gemini or OpenAI (cloud opt-in, no key = no-op). Run it after graph(action="update") to lift semantic-search recall by ~15% on repos with terse function names.graph(action="export", format=...) emits graphml (Gephi/Cytoscape), json-ld, dot (Graphviz), or cypher (Neo4j replay). Inline by default; pass output_path to write to disk.Function nodes now persist their raw source so summaries can be regenerated whenever an edit changes the body. The cache key is sha256(source_text):provider; unchanged nodes cost zero LLM calls on re-run.max_nodes (default 500) caps LLM calls per invocation; pair with cron / update cadence for predictable spend.query(action="spot_check") for random callsite snippets, query(action="renamed_in_diff") for shifted callsites, dynamic-dispatch hints in callers_of results, a dedicated recipes help topic, and embeddings_count exposed in graph(action="stats").Example -- after pulling new functions in, refresh embeddings with summaries:
graph(action="update")
graph(action="summarize", max_nodes=200)
graph(action="embed")
| Feature | code-review-graph | better-code-review-graph |
|---|---|---|
| Multi-word search | Broken (literal substring) | AND-logic word splitting |
| callers_of/callees_of | Empty results (bare name targets) | Qualified name resolution + bare fallback |
| Embedding | sentence-transformers + torch (1.1 GB) | qwen3-embed ONNX + cloud (200 MB), dual-mode |
| Output size | Unbounded (500K+ chars) | Paginated (max_results, truncated flag) |
| Tool design | 9 individual tools | 6 tools: graph + query + review + config + setup + help |
| Plugin hooks | Invalid PostEdit/PostGit | Valid PostToolUse |
2026-05-02 -- Architecture stabilization update
Past months saw significant churn around credential handling and the daemon-bridge auto-spawn pattern. This caused multi-process races, browser tab spam, and inconsistent setup UX across plugins. As of v, the architecture is stable: 2 clean modes (stdio + HTTP), no daemon-bridge layer, no auto-spawn from stdio.
Apologies for the instability period. If you encountered issues with prior versions, please update to v+ and follow the current
docs/setup-manual.md-- most prior workarounds are no longer needed.Related plugins from the same author:
- wet-mcp -- Web search + content extraction
- mnemo-mcp -- Persistent AI memory
- imagine-mcp -- Image/video understanding + generation
- better-notion-mcp -- Notion API
- better-email-mcp -- Email management
- better-telegram-mcp -- Telegram
- better-godot-mcp -- Godot Engine
All plugins share the same architecture -- install once, learn pattern transfers.
Full docs at mcp.n24q02m.com/servers/better-code-review-graph/:
Install with AI agent -- paste this to your AI coding agent:
Install MCP server
better-code-review-graphfollowing the steps at https://raw.githubusercontent.com/n24q02m/claude-plugins/main/plugins/better-code-review-graph/setup-with-agent.md
graph -- Graph lifecycleActions: build | update | stats | embed | export | summarize
| Action | Description |
|---|---|
build | Full or incremental graph build. Set full_rebuild=true to re-parse all files. |
update | Alias for build with full_rebuild=false (incremental). |
stats | Graph size, languages, node/edge breakdown, embedding count. |
embed | Compute vector embeddings for semantic search. Dual-mode: local ONNX or cloud. |
export | Export graph in graphml / json-ld / dot / cypher. Inline or to output_path. |
summarize | LLM-generated one-paragraph docstrings for Function nodes (Gemini or OpenAI, cloud opt-in). Cost-capped via max_nodes. |
query -- Graph queriesActions: query | search | impact | large_functions
| Action | Description |
|---|---|
query | Predefined pattern queries: callers_of, callees_of, imports_of, importers_of, children_of, tests_for, inheritors_of, file_summary. |
search | Search code entities by name/keyword or semantic similarity. |
impact | Blast radius of changed files. Auto-detects from git diff. Paginated with max_results. |
large_functions | Find functions/classes exceeding a line-count threshold. |
review -- Code review contextToken-optimized review context with structural summary, source snippets, and review guidance. Auto-detects changed files from git diff.
config -- Server configurationActions: status | set | cache_clear
| Action | Description |
|---|---|
status | Server info: version, graph path, node/edge counts, embedding backend. |
set | Update runtime settings (e.g., log_level). |
cache_clear | Remove all computed embeddings. |
setup -- Credential setupActions: status | start | skip | reset | complete
| Action | Description |
|---|---|
status | Show current credential state and setup URL. |
start | Start relay setup to configure API keys via browser. |
skip | Set local mode (skip relay permanently, use ONNX only). |
reset | Clear credentials and reset state. |
complete | Re-resolve credentials from environment variables. |
help -- Full documentationTopics: graph | query | review | config
Returns complete documentation for each tool. Use when the compressed descriptions above are insufficient.
:ro (read-only)git clone https://github.com/n24q02m/better-code-review-graph
cd better-code-review-graph
uv sync --group dev
uv run pytest
uv run better-code-review-graph
Requirements: Python 3.13, uv
This plugin implements TC-Local (machine-bound, single trust principal). See mcp-core/docs/TRUST-MODEL.md for full classification.
| Mode | Storage | Encryption | Who can read your data? |
|---|---|---|---|
| stdio (default) | ~/.better-code-review-graph-mcp/config.json | AES-GCM, machine-bound key | Only your OS user (file perm 0600) |
| HTTP self-host | Same as stdio | Same | Only you (admin = user) |
MIT -- See LICENSE.
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.