Context7
ส่งคู่มือการใช้ไลบรารีและเฟรมเวิร์กรุ่นล่าสุดให้ AI อ่านก่อนตอบ ช่วยให้โค้ดที่ AI เขียนไม่ใช้คำสั่งเก่าที่เลิกใช้แล้ว
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Graph-powered code intelligence with semantic search and knowledge graph for AI assistants
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"codeseeker": {
"command": "npx",
"args": [
"-y",
"codeseeker"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add codeseeker -- npx -y codeseekerวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"codeseeker": {
"command": "npx",
"args": [
"-y",
"codeseeker"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"codeseeker": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"codeseeker"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub jghiringhelli ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (2.1.2) เข้า registry เดือนที่แล้ว
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Context7, Codebase Memory, Exa
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
ส่งคู่มือการใช้ไลบรารีและเฟรมเวิร์กรุ่นล่าสุดให้ AI อ่านก่อนตอบ ช่วยให้โค้ดที่ AI เขียนไม่ใช้คำสั่งเก่าที่เลิกใช้แล้ว
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Four-layer hybrid search and knowledge graph for AI coding assistants. BM25 + vector embeddings + RAPTOR directory summaries + graph expansion — fused into a single MCP tool that gives Claude, Copilot, and Cursor a real understanding of your codebase.
Works with Claude Code, GitHub Copilot (VS Code 1.99+), Cursor, Windsurf, and Claude Desktop. One command to index; the Claude Code plugin keeps it in sync from there.
Built by PragmaWorks as part of Generative Specification — the discipline for building software with AI that doesn't drift. Two sibling MCP servers compose with this one, each solving a different half of the same problem:
| what it gives your assistant | |
|---|---|
| CodeSeeker (this) | *where things are* — semantic search and a knowledge graph over your code |
[Chronicle](https://github.com/jghiringhelli/chronicle-mcp) npm i -g chronicle-mcp | *what happened before* — tiered memory that survives context resets |
[Forgecraft](https://github.com/jghiringhelli/forgecraft-mcp) npm i -g forgecraft-mcp | *how it should be built* — SOLID, testing, architecture and CI/CD standards |
They are independent: install one, or all three.
CodeSeeker solves a retrieval problem, and that problem is shrinking.
If you run a spec-driven loop with a real harness — a specification precise enough that a stateless model derives from it, and quality gates that verify the result against a live system — or an intent-driven one, your assistant is being handed the structure it would otherwise have to go find. A sentinel tool that routes actions instead of sprawling across a dozen endpoints removes another slice of the searching. Frontier models with better navigation and larger effective context remove more. Past a certain point, semantic search over your own code stops being the bottleneck, and this server becomes something you could uninstall without noticing.
That is the intended outcome, not a defect: a method that works should make its own scaffolding unnecessary. Most teams do not start there, though, and until the process is in place CodeSeeker is the cheaper substitute — one command instead of a discipline.
If you would rather have the process than the substitute, start with the field guide: [Generative Specification — Field Guide (PDF)](https://github.com/jghiringhelli/generative-specification/blob/main/docs/white-paper/GenerativeSpecification_FieldGuide.pdf).
AI assistants are powerful editors, but they navigate code like a tourist:
"find authentication logic" returns every file containing the word "auth"CodeSeeker fixes this. It indexes your codebase once and gives AI assistants a queryable knowledge graph they can use on every turn.
A 4-stage pipeline runs on every query:
Query: "find JWT refresh token logic"
│ ▼ Stage 1 — Hybrid retrieval ┌─────────────────────────────────────────────────────┐ │ BM25 (exact symbols, camelCase tokenized) │ │ + │ │ Vector search (384-dim Xenova embeddings) │ │ ↓ │ │ Reciprocal Rank Fusion: score = Σ 1/(60 + rank_i) │ │ Top-30 results, including RAPTOR directory nodes │ └─────────────────────────────────────────────────────┘ │ ▼ Stage 2 — RAPTOR cascade (conditional) ┌─────────────────────────────────────────────────────┐ │ IF best directory-summary score ≥ 0.5: │ │ → narrow results to that directory automatically │ │ ELSE: all 30 results pass through unchanged │ │ Effect: "what does auth/ do?" scopes to auth/ │ │ "jwt.ts decode function" bypasses this │ └─────────────────────────────────────────────────────┘ │ ▼ Stage 3 — Scoring and deduplication ┌─────────────────────────────────────────────────────┐ │ Dedup: keep highest-score chunk per file │ │ Source files: +0.10 (definition sites matter) │ │ Test files: −0.15 (prevent test dominance) │ │ Symbol boost: +0.20 (query token in filename) │ │ Multi-chunk: up to +0.30 (file has many hits) │ └─────────────────────────────────────────────────────┘ │ ▼ Stage 4 — Graph expansion ┌─────────────────────────────────────────────────────┐ │ Top-10 results → follow IMPORTS/CALLS/EXTENDS edges │ │ Structural neighbors scored at source × 0.7 │ │ Avg graph connectivity: 20.8 edges/node │ └─────────────────────────────────────────────────────┘ │ ▼ auth/jwt.ts (0.94), auth/refresh.ts (0.89), ...
The knowledge graph is built from AST-parsed imports at index time. It's what powers the graph action, dead-code detection, and graph expansion in every search.
| Approach | Strengths | Limitations |
|---|---|---|
| Grep / ripgrep | Fast, universal | No semantic understanding |
| Vector search only | Finds similar code | Misses structural relationships |
| Serena | Precise LSP symbol navigation, 30+ languages | No semantic search, no cross-file reasoning |
| Codanna | Fast symbol lookup, good call graphs | Semantic search needs JSDoc — undocumented code gets no embeddings; no BM25, no RAPTOR, Windows experimental |
| CodeSeeker | BM25 + embedding fusion + RAPTOR + graph + coding standards + multi-language AST | Requires initial indexing (30s–5min) |
What LSP tools can't do:
What vector-only search misses:
npm install -g codeseeker
claude mcp add codeseeker --scope user -e CODESEEKER_STORAGE_MODE=embedded -- codeseeker serve --mcp
--scope user makes it available in every project you open, not just the current one.
Why global rather than `npx -y`: on a machine that has never seen the package, npx downloads it and builds native dependencies before the server can answer, which measured 13.7 seconds to a completed MCP handshake. Clients that give up sooner report that as a connection failure. A global install answers in 759 ms — the download happens once, at a moment when you are expecting it to.
Portable, and fine once the package is cached. Expect a slow first start.
{
"mcpServers": { "codeseeker": { "command": "npx", "args": ["-y", "codeseeker", "serve", "--mcp"], "env": { "CODESEEKER_STORAGE_MODE": "embedded" } } } }
Add this to your MCP config file (see below for per-client locations) and restart your editor.
npm install -g codeseeker
codeseeker install --vscode # or --cursor, --windsurf, --vs
For Claude Code CLI users — adds auto-sync hooks and slash commands:
/plugin install codeseeker@github:jghiringhelli/codeseeker#plugin
Slash commands: /codeseeker:init, /codeseeker:reindex
{
"name": "My Project", "image": "mcr.microsoft.com/devcontainers/javascript-node:18", "postCreateCommand": "npm install -g codeseeker && codeseeker install --vscode" }
Ask your AI assistant: *"What CodeSeeker tools do you have?"*
You should see a single tool named codeseeker. That is intentional: one tool with an action routing key keeps per-request token overhead low (ADR-002). The actions are search, sym, graph, analyze and index.
📋 MCP Configuration by client
The MCP config JSON is the same for all clients — only the file location differs:
| Client | Config file |
|---|---|
| VS Code (Claude Code / Copilot) | .vscode/mcp.json in your project, or ~/.vscode/mcp.json globally |
| Cursor | .cursor/mcp.json in your project |
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows) |
| Windsurf | .windsurf/mcp.json in your project |
{
"mcpServers": { "codeseeker": { "command": "npx", "args": ["-y", "codeseeker", "serve", "--mcp"] } } }
🖥️ CLI Standalone Usage (without AI assistant)
npm install -g codeseeker
cd your-project codeseeker init codeseeker -c "how does authentication work in this project?"
CodeSeeker exposes one MCP tool, codeseeker. You pick behaviour with action and fill only the matching nested parameter group:
codeseeker({ action, project, search?|sym?|graph?|analyze?|index? })
Always pass project (the absolute project root) — an MCP server cannot detect your working directory.
| action | Parameters | What It Does |
|---|---|---|
search | search:{q} | Hybrid search: BM25 + vector embeddings fused with RRF, then graph expansion; RAPTOR directory summaries surface for abstract queries |
search | search:{q, type:"vector"} | Pure embedding cosine-similarity search |
search | search:{q, type:"fts"} | Pure BM25 text search with CamelCase tokenisation |
search | search:{q, full:true} | Include a code snippet with each result (default: summaries only) |
search | search:{q, exists:true} | Quick yes/no — returns {found, count, top_file} |
sym | sym:{name} | Look up a class/function by name and show its graph neighbours |
graph | graph:{seed, depth, rel, dir} | Traverse the knowledge graph from a file (imports, calls, extends) |
graph | graph:{q} | Same, but find the seed files semantically first |
analyze | analyze:{kind:"standards"} | Your project's detected patterns (validation, error handling) |
analyze | analyze:{kind:"duplicates"} | Find duplicate/similar code blocks |
analyze | analyze:{kind:"dead_code"} | Detect unused exports, orphaned files, coupling issues |
index | index:{op:"init", path} | Build the index for a project (required once — see below) |
index | index:{op:"sync", changes} | Update the index for specific files |
index | index:{op:"exclude", paths} | Exclude/include paths from the index |
index | index:{op:"status"} | List indexed projects with file/chunk counts |
index | index:{op:"parsers"} | List/install Tree-sitter parsers |
You don't invoke these manually—Claude uses them automatically when searching code or analyzing relationships.
You do not have to index anything first. Searching a project CodeSeeker has never seen starts the index automatically and says so. Indexing runs in the background, so the call returns at once rather than blocking your assistant:
User: "Find the authentication logic"
│ ▼ ┌──────────────
ตัดมาแค่ช่วงต้น อ่านต่อใน repo