Model Context Protocol (MCP) Server: io.github.shinzarou-eng/dsh-codebase-chat
The MCP server “io.github.shinzarou-eng/dsh-codebase-chat” provides local-first codebase intelligence, including cited answers, audits, and reports. Its description specifies language coverage of EN/FR. The server is positioned for developers who need structured insights drawn from a codebase.
🛠️ Key Features
Local-first codebase intelligence
Cited answers
Audits
Reports
EN/FR support
🚀 Use Cases
Generating cited answers from a local codebase
Performing codebase audits
Producing audit-style reports
Using the same capabilities in English and French
⚡ Developer Benefits
Verifiable outputs via cited answers
Structured review outputs through audits and reports
Workflow support for both EN and FR
⚠️ Limitations
No tool count or specific tool endpoints are provided in the available data
The wizard detects Claude, Cursor, Windsurf, VS Code, Zed, Gemini CLI, Kiro, Cline and Roo Code, asks how you want answers (host model or API key), writes the MCP config, done.
No JSON to edit — and no API key: in promptOnly mode your host model does the thinking,
or get a fully offline answer with the deterministic report (--no-llm) — no model, no key, no cloud.
Other paths — DeepSeek Harness plugin · CLI · from source · manual config: Reference.
dsh-codebase-chat real MCP session on a 422-file codebase Real MCP session on a real 422-file codebase — codebase_health finds 324 circular deps, codebase_chat answers with [source: file:line] receipts · PR review (--diff + --watch) · CLI tour · MCP stdio · French mode
What a real session looks like
Run on this repository — the exact text the tools return:
$ npx dsh-codebase-chat --project . --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 dsh-codebase-chat --project . --ask "how is the index cached?"
> dsh-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 [source: file:line] receipts you can verify in seconds.
Why it wins
Paste into a chat
Hosted assistant
dsh-codebase-chat
Sees your whole repo, not one file
❌
✅
✅
[source: file:line] citations
❌
~
✅
Code stays on your machine
❌
❌
✅
Inside Claude / Cursor / Windsurf
❌
~
✅
Deterministic health score, no LLM
❌
❌
✅
Deterministic report, zero model (--no-llm)
❌
❌
✅
Free — no API key, no account
~
❌
✅
How it works
Pipeline: source → AST index → retrieval → briefing → host model → cited answer, all local-first
/codebase-apply writes safely — dry-run · .dsh-backups/ before overwrite · protected paths · never outside the project.
The 13 tools
Understand
Decide
Act
Explore
codebase_chat
codebase_intelligence
codebase_refactor
codebase_player
codebase_search
codebase_audit
codebase_tasks
codebase_crea
codebase_explain
codebase_report
codebase_health
codebase_ceo
codebase_impact
Same engine, three surfaces: MCP tools in your IDE, slash commands in DeepSeek Harness, CLI flags anywhere. Every tool takes lang (fr/en), embed, promptOnly, maxTokens.
Reference
Install — all paths
DeepSeek Harness plugin
bash
dsh plugin --profile web add dsh-codebase-chat
Then restart dsh web → http://127.0.0.1:3080 → Codebase Pro button.
CLI
bash
npx dsh-codebase-chat --project C:\my-app --ask "how is auth handled?"
npx dsh-codebase-chat --project C:\my-app --health # offline, no LLM
npx dsh-codebase-chat --project C:\my-app --health --diff main # only what changed
npx dsh-codebase-chat --project C:\my-app --watch # index stays hot while you code
npx dsh-codebase-chat --project C:\my-app --prompt intelligence # same banner brief the IDE gets — pipe to any LLM
npx dsh-codebase-chat --project C:\my-app --prompt intelligence --call # DeepSeek/OpenAI answers directly (API key)
npx dsh-codebase-chat --project C:\my-app --prompt intelligence --no-llm # deterministic report — zero model, zero key
npx dsh-codebase-chat --project C:\my-app --prompt intelligence --no-llm # deterministic report — zero LLM, zero key
Default prompt language (en/fr) — CLI, MCP tools, slash commands
maxTokens
Context budget when the caller passes none
ignoreDirs / ignoreFiles
Extra names skipped by indexing, codebase_health, file tree
ignoreGlobs
Globs on project-relative paths — ** spans dirs, * one segment
protectedPaths
Paths the apply pipeline can never patch
Environment variables
Variable
Default
Purpose
CODEBASE_CACHE_DIR
OS cache dir
Where the index cache lives
DSH_PROJECT_ALIASES
—
Extra name=path aliases (;-separated)
DSH_DAKO_PROJECT
—
Override the built-in dako alias
DSH_PROTECTED_PATHS
built-in list
Extra paths that can never be patched
DEEPSEEK_API_KEY / OPENAI_API_KEY
—
Direct-LLM mode only
DEEPSEEK_BASE_URL / OPENAI_BASE_URL
https://api.deepseek.com/v1
Custom endpoint
CODEBASE_MODEL
deepseek-chat
Model for direct-LLM mode
Plain words — 🇫🇷 inside
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.
Does 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.