codebase-chat-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@codebase-chat-mcpExplain how the index cache works in this repo with file:line citations."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Get started
npx codebase-chat-mcp setupOne command. The wizard detects Cursor, Claude, Windsurf, VS Code, Zed, Gemini CLI, Kiro, Cline and Roo Code, asks how you want answers (host model or API key), writes the config - done. No JSON to edit, no API key required.
Related MCP server: ChunkHound
One engine, three surfaces
In your IDE | In your terminal | Fully offline |
21 MCP tools inside Cursor, Claude, Windsurf & more - answers land where you code |
|
|
Every claim comes with a citation. Every metric is computed from your code. Your repo is never uploaded - the model only sees the excerpts that matter.
Understand | Verify | Act |
|
|
|
Local dashboard - --ui
npx codebase-chat --ui # → http://127.0.0.1:<port> - nothing leaves your machineThe audit as a real app - dense IDE-style UI, not a webpage:
Command palette
Ctrl+K- jump between views, build a prompt, export, toggle zen modeZen mode
z· view shortcuts1–5·/filters findings by text or severityDiff vs baseline, ignore findings with a justification, export
.md/.html- all in clicksBilingual FR / EN
Real output
What a session actually returns - run on this repository:
$ npx codebase-chat --health
== STATIC ANALYSIS - codebase-chat ==
Health score: 52/100 (D) · 33 files analyzed · 65 local imports
● Circular dependencies (0)
none
● Unused files (candidates) (1)
lib/client.js
● Complexity hotspots (13)
lib/index.js - score 418
src/analysis.ts - score 81
…$ npx codebase-chat --search "health score computation"
--- src/analysis.ts :: formatHealthReportMd (FUNCTION) [source: src/analysis.ts:285-353] ---
--- src/analysis.ts :: analyzeProject (FUNCTION) [source: src/analysis.ts:149-232] ---
--- src/analysis.ts :: HealthReport (TYPE) [source: src/analysis.ts:15-26] ---
$ npx codebase-chat --ask "how is the index cached?"
> codebase-chat · prompt-only mode (no API key)
> Chunks: 81 · Tokens: 59,934 → handed to the host model
> Cite every technical claim with [source: relative/path:line].codebase_health runs fully offline - deterministic, no LLM, same input → same score.
Every answer from codebase_chat arrives with receipts you can verify in seconds.
Verify your changes
$ npx codebase-chat --baseline # snapshot findings + score to .codebase-chat/baseline.json (commit it)
$ npx codebase-chat --check # impact + findings on files changed vs HEAD, diffed vs baseline
$ npx codebase-chat --check --strict # exit 1 on a red verdict - drop into CI
$ npx codebase-chat --doctor # diagnose the install: node, index cache, keys, MCP clientsFrom an IDE: codebase_check / codebase_doctor MCP tools, or /codebase check in DeepSeek Harness.
Why it wins
Paste into a chat | Hosted assistant | codebase-chat | |
Sees your whole repo, not one file | ❌ | ✅ | ✅ |
| ❌ | ~ | ✅ |
Repo never uploaded - model sees only relevant excerpts | ❌ | ❌ | ✅ |
Inside Claude / Cursor / Windsurf | ❌ | ~ | ✅ |
Fully offline - | ❌ | ❌ | ✅ |
Free - no API key, no account | ~ | ❌ | ✅ |
How it works
Writes are safe by construction - dry-run · .dsh-backups/ before overwrite · protected paths · never outside the project.
Ten tools run fully deterministic - no model, no key, works offline: health, impact, check, doctor, ignore, fix, stats, history, baseline, deep_audit (9 sections, ~30 metrics: git churn, bus factor, secrets, deps, per-function complexity).
Reference
MCP server - manual config
{
"mcpServers": {
"codebase-chat": {
"command": "npx",
"args": ["codebase-chat-mcp"]
}
}
}Without DEEPSEEK_API_KEY / OPENAI_API_KEY the server runs promptOnly. Set either key for direct-LLM calls - see mcp/README.md.
CLI
npx codebase-chat --project C:\my-app --ask "how is auth handled?"
npx codebase-chat --project C:\my-app --health # offline, no LLM
npx codebase-chat --project C:\my-app --health --diff main # only what changed
npx codebase-chat --project C:\my-app --watch # index stays hot while you code
npx codebase-chat --project C:\my-app --prompt intelligence # same brief the IDE gets - pipe to any LLM
npx codebase-chat --project C:\my-app --prompt intelligence --call # DeepSeek/OpenAI answers directly (API key)
npx codebase-chat --project C:\my-app --prompt intelligence --no-llm # deterministic report - zero model, zero key
npx codebase-chat --project C:\my-app --ui # interactive HTML dashboard on localhost - no LLMDeepSeek Harness plugin
dsh plugin --profile web add codebase-chatThen restart dsh web → http://127.0.0.1:3080 → Codebase Pro button.
From source
git clone https://github.com/shinzarou-eng/codebase-chat.git
cd codebase-chat && pnpm install && pnpm builddsh --profile headless '/codebase "how is auth handled?" --project C:\my-app'
dsh --profile headless '/codebase-search "usePetStore" --project C:\my-app'
dsh --profile headless '/codebase-explain "storage.ts" --project C:\my-app'
dsh --profile headless '/codebase-refactor "split this hook" --file storage.ts --project C:\my-app'
dsh --profile headless '/codebase-intel --project C:\my-app'
dsh --profile headless '/codebase-audit --project C:\my-app --lang en'
dsh --profile headless '/codebase-tasks --project C:\my-app'
dsh --profile headless '/codebase-apply-tasks --project C:\my-app'
dsh --profile headless '/codebase-build --project C:\my-app'
dsh --profile headless '/codebase-git --project C:\my-app'{
"lang": "en",
"maxTokens": 60000,
"ignoreDirs": ["generated", "fixtures"],
"ignoreFiles": ["bundle.js"],
"ignoreGlobs": ["src/vendor/**", "*.snap"],
"protectedPaths": ["src/locked", "migrations"]
}Key | Effect |
| Default prompt language ( |
| Context budget when the caller passes none |
| Extra names skipped by indexing, |
| Globs on project-relative paths - |
| Paths the apply pipeline can never patch |
Variable | Default | Purpose |
| OS cache dir | Where the index cache lives |
| - | Extra |
| built-in list | Extra paths that can never be patched |
| - | Direct-LLM mode only |
|
| Custom endpoint |
|
| Model for direct-LLM mode |
Point it at a folder of code. Ask questions like a human - "How does login work?", "What should I fix first?" - in French or English. Every answer cites the exact file and line it came from. Nothing is uploaded anywhere.
Pointez-le vers un dossier de code. Posez vos questions en langage clair. Chaque réponse cite le fichier et la ligne exacts. Rien n'est envoyé sur internet.
Term | Meaning |
MCP server | A plug format that lets AI assistants use extra tools. Install once - your IDE can "see" your code. |
Prompt-only | The tool prepares the context; your existing AI writes the answer. No extra key, no extra cost. |
Deterministic | Computed directly from your code - same input, same result, every time. |
├── lib/ DeepSeek Harness plugin (index.js) + Codebase Pro UI (client.js)
├── src/ TypeScript engine - indexer, extractor, retriever, tokenizer, context, CLI
├── mcp/ Standalone MCP server package (codebase-chat-mcp)
├── test/ Vitest suites (extractor, retriever, tasks pipeline)
├── docs/ Landing page (GitHub Pages) + assets
└── dist/ Build output (tsup)pnpm install && pnpm build && pnpm test && pnpm typecheckDoes it send my code to the cloud?
Indexing, retrieval, and prompt building all run on your machine. In prompt-only mode the server makes no network calls itself - the assembled context is read by your host model (cloud or local, your choice). For zero-network output end to end, use --no-llm: a deterministic report computed from your code only.
Do I need an API key?
No - three ways to get output: the host model (promptOnly, best quality - pipe it to a local model like Ollama for offline answers), a DeepSeek/OpenAI key (--call), or the deterministic report (--no-llm, no model at all). Inside DeepSeek Harness, the plugin uses your configured model.
Which languages are supported?
French and English via lang on every tool. Source-side, AST covers JS/TS, Python, Go, Rust, Java, C#, PHP - the rest is indexed line by line.
Is applying patches safe? Yes. Dry-run, backups before overwrite, protected paths, writes stay inside the project.
EADDRINUSE on port 3080?
Get-NetTCPConnection -LocalPort 3080 | ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }Then restart dsh --profile web.
Shipped | tree-sitter AST (7 languages), deterministic health score + |
Next | GitHub Issues export from TASKS.md, prompt language packs (ES/DE/PT) |
Planned | VS Code extension, HTTP/SSE transport, PR review mode |
Exploring | multi-repo workspaces, shared team index cache, CI bot |
Full detail: ROADMAP.md
This server cannot be deployed
Maintenance
Related MCP Connectors
Code intelligence for LLMs. Analyze, search, and retrieve code from any public git repository.
Codebase intelligence for AI agents — dead code, blast radius, ownership.
Deterministic context layer for your codebase: change impact, blast radius, answers with receipts.
Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides AI-powered code intelligence for any codebase using local LLMs and vector search, enabling semantic code search, pattern analysis, and context-optimized code generation with 90% token savings.2MIT
- AlicenseAqualityAmaintenanceA local-first codebase intelligence tool that enables AI assistants to research codebases using semantic search, multi-hop relationship discovery, and structural parsing. It allows users to extract architectural patterns and institutional knowledge across 30+ programming languages through an MCP-compatible interface.2538 PyPI1,431MIT
- AlicenseNot gradedqualityDmaintenanceEnables semantic code search and AI-powered chat for local codebases, with support for multiple AI providers and a plugin system.6 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables agentic coding tools to maintain a living, in-repo model of intent, architecture, and code, with deterministic indexing, bidirectional linking, and continuous drift detection for task-scoped context and reconciliation.MIT