ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

Crg

โดย n24q02mรุ่น 3.31.0i★ –iรันบนเครื่อง
ชื่อใน registryio.github.n24q02m/crg

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

Token-efficient code review knowledge graph: semantic search and call-graph resolution.

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): stdio
  • หมวด: ค้นข้อมูลและความจำของ AI
  • ต้องใส่ค่าเหล่านี้: HULL_EMBED_API_KEY, HULL_CHAT_API_KEY

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

  • ผลตรวจเบื้องต้น: ผ่าน 1 จาก 1 ข้อ
  • รันในเครื่องคุณด้วยสิทธิ์ของผู้ใช้คุณ (ไฟล์ อินเทอร์เน็ต แอปต่าง ๆ)
  • ค่าที่คุณต้องใส่เอง: EMBEDDING_MODELS, LOCAL_EMBEDDING_MODEL, LOCAL_RERANK_MODEL, LOCAL_EMBEDDING_DIM, LOCAL_EMBEDDING_MODEL_FILE, LOCAL_EMBEDDING_POOLING, LOCAL_EMBEDDING_NORMALIZE, HULL_EMBED_API_KEY, HULL_CHAT_API_KEY, EMBEDDING_BACKEND

ค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต

ต้องเตรียมก่อน

  • PyPIติดตั้ง uv ของ Python (มีคำสั่ง uvx) ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "crg": {
      "command": "uvx",
      "args": [
        "better-code-review-graph"
      ],
      "env": {
        "EMBEDDING_MODELS": "ใส่ค่าของคุณ",
        "LOCAL_EMBEDDING_MODEL": "ใส่ค่าของคุณ",
        "LOCAL_RERANK_MODEL": "ใส่ค่าของคุณ",
        "LOCAL_EMBEDDING_DIM": "ใส่ค่าของคุณ",
        "LOCAL_EMBEDDING_MODEL_FILE": "ใส่ค่าของคุณ",
        "LOCAL_EMBEDDING_POOLING": "ใส่ค่าของคุณ",
        "LOCAL_EMBEDDING_NORMALIZE": "ใส่ค่าของคุณ",
        "HULL_EMBED_API_KEY": "ใส่ค่าของคุณ",
        "HULL_CHAT_API_KEY": "ใส่ค่าของคุณ",
        "EMBEDDING_BACKEND": "ใส่ค่าของคุณ"
      }
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add crg --env EMBEDDING_MODELS='ใส่ค่าของคุณ' --env LOCAL_EMBEDDING_MODEL='ใส่ค่าของคุณ' --env LOCAL_RERANK_MODEL='ใส่ค่าของคุณ' --env LOCAL_EMBEDDING_DIM='ใส่ค่าของคุณ' --env LOCAL_EMBEDDING_MODEL_FILE='ใส่ค่าของคุณ' --env LOCAL_EMBEDDING_POOLING='ใส่ค่าของคุณ' --env LOCAL_EMBEDDING_NORMALIZE='ใส่ค่าของคุณ' --env HULL_EMBED_API_KEY='ใส่ค่าของคุณ' --env HULL_CHAT_API_KEY='ใส่ค่าของคุณ' --env EMBEDDING_BACKEND='ใส่ค่าของคุณ' -- uvx better-code-review-graph

เติมค่าที่เว้นว่างไว้ก่อนรัน

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "crg": {
      "command": "uvx",
      "args": [
        "better-code-review-graph"
      ],
      "env": {
        "EMBEDDING_MODELS": "ใส่ค่าของคุณ",
        "LOCAL_EMBEDDING_MODEL": "ใส่ค่าของคุณ",
        "LOCAL_RERANK_MODEL": "ใส่ค่าของคุณ",
        "LOCAL_EMBEDDING_DIM": "ใส่ค่าของคุณ",
        "LOCAL_EMBEDDING_MODEL_FILE": "ใส่ค่าของคุณ",
        "LOCAL_EMBEDDING_POOLING": "ใส่ค่าของคุณ",
        "LOCAL_EMBEDDING_NORMALIZE": "ใส่ค่าของคุณ",
        "HULL_EMBED_API_KEY": "ใส่ค่าของคุณ",
        "HULL_CHAT_API_KEY": "ใส่ค่าของคุณ",
        "EMBEDDING_BACKEND": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "crg": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "better-code-review-graph"
      ],
      "env": {
        "EMBEDDING_MODELS": "ใส่ค่าของคุณ",
        "LOCAL_EMBEDDING_MODEL": "ใส่ค่าของคุณ",
        "LOCAL_RERANK_MODEL": "ใส่ค่าของคุณ",
        "LOCAL_EMBEDDING_DIM": "ใส่ค่าของคุณ",
        "LOCAL_EMBEDDING_MODEL_FILE": "ใส่ค่าของคุณ",
        "LOCAL_EMBEDDING_POOLING": "ใส่ค่าของคุณ",
        "LOCAL_EMBEDDING_NORMALIZE": "ใส่ค่าของคุณ",
        "HULL_EMBED_API_KEY": "ใส่ค่าของคุณ",
        "HULL_CHAT_API_KEY": "ใส่ค่าของคุณ",
        "EMBEDDING_BACKEND": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าที่ต้องใส่เอง

  • EMBEDDING_MODELS env
    Embedding models in selection order; the current runtime uses the first provider/model entry; empty = local ONNX
  • LOCAL_EMBEDDING_MODEL env
    Built-in fastretrieval model ID or local directory with fastretrieval-manifest.json
  • LOCAL_RERANK_MODEL env
    Fastretrieval TextCrossEncoder model ID; empty = reranking disabled
  • LOCAL_EMBEDDING_DIM env
    Required positive output dimension for an external local embedding ID without a manifest
  • LOCAL_EMBEDDING_MODEL_FILE env
    ONNX file path inside a manifest-backed local embedding directory
  • LOCAL_EMBEDDING_POOLING env
    Explicit pooling for an external local embedding ID without a manifest
  • LOCAL_EMBEDDING_NORMALIZE env
    Explicit L2 normalization for an external local embedding ID without a manifest
  • HULL_EMBED_API_KEY ความลับ env
    API key for the [models.embed] cell transport (OpenRouter pre-wired default); host-injected, overrides the cell api_key
  • HULL_CHAT_API_KEY ความลับ env
    API key for the [models.chat] cell transport (OpenRouter pre-wired default); host-injected, enables LLM summaries when the cell model is set
  • EMBEDDING_BACKEND env
    DEPRECATED (honored one release): embedding backend override 'local' or 'cloud'. Use EMBEDDING_MODELS instead.

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub n24q02m ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

เทียบกับตัวอื่นในหมวด ค้นข้อมูลและความจำของ AIi

  • ดาวมากกว่า 0% ของอีก 7275 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 77% ของอีก 7275 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 7275 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

Crg ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

ต้องใส่ค่าเหล่านี้: HULL_EMBED_API_KEY, HULL_CHAT_API_KEY

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (3.31.0) เข้า registry 11 วันที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Context7, Codebase Memory, Exa

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Context7

โดย upstash

ส่งคู่มือการใช้ไลบรารีและเฟรมเวิร์กรุ่นล่าสุดให้ AI อ่านก่อนตอบ ช่วยให้โค้ดที่ AI เขียนไม่ใช้คำสั่งเก่าที่เลิกใช้แล้ว

บนเครื่องหรือคลาวด์★ 64,224MITอัปเดต เมื่อวาน
ติดตั้ง

Codebase Memory

โดย DeusData

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

รันบนเครื่อง★ 48,148MITอัปเดต 21 วันที่ผ่านมา
ติดตั้ง

Exa

โดย exa-labs

Connect AI agents to Exa for web search, content fetching, and multi-step research.

รันบนคลาวด์★ 5,213MITอัปเดต เดือนที่แล้ว
ติดตั้ง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

Better Code Review Graph

Renamed: repo is crg, PyPI distribution is n24q02m-crg (formerly better-code-review-graph, kept as a legacy command alias) — CLI-first (crg command); MCP server is a secondary surface.

mcp-name: io.github.n24q02m/crg

Knowledge graph for token-efficient code reviews -- semantic search and call-graph resolution across your codebase.

Sister projects from n24q02m (click to expand)

ProjectTaglineTag
crgKnowledge graph for token-efficient code reviews -- semantic search and call-...MCP
better-drive2-way Google Drive sync with .driveignore filter — rclone engine, Windows trayTooling
better-email-mcpIMAP/SMTP email for AI agents -- read, send, organize folders, and manage att...MCP
better-godot-mcpComposite MCP server for Godot Engine -- 17 composite tools for AI-assisted g...MCP
better-notion-mcpMarkdown-first Notion for AI agents -- pages, databases, blocks, and comments...MCP
better-semantic-releaseDrop-in python-semantic-release fork with built-in release-safety guards (orp...Tooling
better-telegram-mcpTelegram for AI agents -- messages, chats, media, and contacts across both bo...MCP
better-workspace-mcpGoogle Workspace MCP server (Docs/Drive/Calendar/Gmail/Sheets/Slides/Tasks/Ch...MCP
claude-pluginsClaude Code plugin marketplace for the n24q02m MCP servers -- install web sea...Marketplace
imagine-mcpImage and video understanding + generation for AI agents -- across Gemini, Op...MCP
jules-task-archiverChrome Extension for bulk operations on Jules tasks via batchexecute API -- a...Tooling
mcp-coreShared foundation for building MCP servers -- Streamable HTTP transport, OAut...MCP
mnemo-mcpPersistent AI memory with hybrid search and embedded sync. Open, free, unlimi...MCP
fastretrievalFast multi-model retrieval runtime for ONNX and GGUF embeddings, reranking, and model contractsLibrary
skretSecrets without the server.CLI
tacetA self-distilling neuro-symbolic cascade that amortises LLM cost across knowl...Tooling
web-coreShared web infrastructure package for search, scraping, HTTP security, and st...Library
wet-mcpOpen-source MCP server for AI agents: web search, content extraction, and lib...MCP

An MCP server that 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 instead of the whole tree. Semantic search runs through the local ONNX model registry from fastretrieval by default (zero config, no API key), with an optional cloud embedding chain. Fork of code-review-graph with fixed multi-word search, qualified call resolution, dual-mode embeddings, output pagination, and production CI/CD.

v2.0 migration (BREAKING)

v2.0 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 .pre-2.0.bak so you can roll back. See BREAKING_CHANGES.md for the full schema-change list, behavior changes, environment requirements, and the downgrade procedure (CRG_DOWNGRADE_TO_1_X=1 uv run crg).

Table of contents

  • v2.0 migration (BREAKING)
  • Install
  • Usage
  • Smithery
  • Configuration
  • Tools
  • CLI
  • Features
  • Comparison
  • Security
  • Build from source
  • Trust model
  • Migration & changelog
  • Documentation
  • License

Install

For OMP and other local coding harnesses, the primary surface is the package CLI plus the bundled skills/ workflows. The skills invoke the CLI directly and do not require an MCP server mapping.

# Run without a persistent install (short `crg` script; the PyPI distribution is

n24q02m-crg, so uvx needs the explicit --from form for the crg name)

uvx --python 3.13 --from n24q02m-crg crg graph build --full-rebuild \ --repo-root /path/to/repo uvx --python 3.13 --from n24q02m-crg crg graph stats \ --repo-root /path/to/repo

Or install the console scripts (installs both crg and the legacy long name)

pip install n24q02m-crg crg query search --search-query "authentication" \ --repo-root /path/to/repo

The optional Semgrep engine for deeper security scans is a separate extra:

pip install 'n24q02m-crg[security]'

MCP stdio remains a secondary protocol adapter for clients that require it:

{

"mcpServers": { "crg": { "command": "uvx", "args": ["--python", "3.13", "n24q02m-crg"], "env": { "MCP_TRANSPORT": "stdio" } } } }

Install matrix (stdio unless noted; the CLI-first usage above stays the primary surface):

ClientInstall
Claude Code (plugin)/plugin marketplace add n24q02m/claude-plugins then /plugin install crg@n24q02m-plugins
Claude Code (stdio)claude mcp add crg -- uvx --python 3.13 n24q02m-crg
Codexregister stdio command uvx --python 3.13 n24q02m-crg under mcp_servers in ~/.codex/config.toml
Gemini CLIadd the mcpServers JSON above to ~/.gemini/settings.json
Cursor / Windsurfadd the mcpServers JSON above via the client's MCP settings (mcp.json)
Any client (HTTP self-host)point the client at https:// /mcp (MCP_TRANSPORT=http) -- self-host only, no hosted endpoint

Install with an AI agent -- paste this to your AI coding agent:

Install MCP server crg following the steps at

https://raw.githubusercontent.com/n24q02m/claude-plugins/main/plugins/crg/setup-with-agent.md

Full CLI usage is in CLI. Optional per-client MCP setup is at [docs.n24q02m.com/servers/crg/setup/](https://docs.n24q02m.com/servers/crg/setup/).

Usage

Two ways to run the server, plus the surfaces to consume it.

Dev: uv, no auth (loopback only)
# instance config lives at $CRG_CONFIG_DIR or ~/.crg (same schema as hull's

config.toml); a default no-auth template is fine for local dev

uv run n24q02m-crg server start

-> http://127.0.0.1:8000/mcp (no-auth is refused on any off-loopback bind)

Always-on: docker (token auth)
cp docker-config/config.example.toml docker-config/config.toml

mint a token + hash (hull CLI ships with crg's dependency tree):

TOKEN=$(python -c "import secrets; print(secrets.token_urlsafe(32))")

hull token hash "$TOKEN" # paste output into token_hash in config.toml

docker compose up -d

The compose file builds the Dockerfile's http target (image crg:http), publishes the container on host loopback only (127.0.0.1:${CRG_PORT:-8772}:8080), and mounts ./docker-config/config.toml read-only at the container's config dir (CRG_CONFIG_DIR=/data/config); graph state persists in the crg-data named volume. All state stays on your machine.

Consuming: CLI or MCP

CLI (local graphs, no server needed):

crg graph build --full-rebuild --repo-root /path/to/repo

crg query search --search-query "authentication" --repo-root /path/to/repo

MCP over HTTP (remote/always-on): point any MCP client at http://127.0.0.1:8772/mcp with Authorization: Bearer :

{

"mcpServers": { "crg": { "url": "http://127.0.0.1:8772/mcp", "headers": { "Authorization": "Bearer " } } } }

Per-task model configuration

Each task (embed / rerank / chat / jev_score) resolves its own OpenAI-spec provider cell from [models. ] in the instance config: an independent base_url + api_key + model. Cloud or local is purely a config choice — point base_url at OpenRouter, a vendor, or your own local gateway (e.g. http://host.docker.internal:11434/v1). API keys are host-only material: keep them in config.toml (gitignored under docker-config/) or supply via HULL_ _API_KEY env; they are never end-user supplied.

Local-first boundary

CRG is local-first for coding workflows:

  • CLI and bundled Skills are the primary surfaces for graph build/query, impact analysis, review context, security scans, and repository onboarding.
  • MCP stdio is the secondary protocol adapter over the same local domain services; it does not maintain a separate graph implementation.
  • Graph state stays in /.crg/graph.db unless an explicit multi-user/self-host configuration selects another data directory.
  • PyPI, CI, security scanning, GitHub releases, and eligible stable MCP Registry publication remain active. Historical public OCI tags are retained, but new public Docker Hub/GHCR images are no longer published.
  • CRG has no hosted Cloudflare runtime in the target topology.

Smithery

The repo ships a smithery.yaml so the server can be built and run through Smithery. It deploys over stdio and needs no startup configuration -- the config schema is empty, and any optional cloud embedding/summary keys are supplied at runtime through the server's own config flow (see Configuration below). The launch command is the same uvx invocation as a local install:

startCommand:

type: stdio commandFunction: |- (config) => ({ command: 'uvx', args: ['--python', '3.13', 'crg'] })

Configuration

Everything w

ตัดมาแค่ช่วงต้น อ่านต่อใน repo

ถาม PopNx