codedev mcp
通用代码开发MCP服务器 --搜索、分析、审查和浏览40多种编程语言的任何代码库。33种工具、语义搜索、AST解析、安全扫描、死代码检测、复杂度热图、类型流分析、数据库模式解析、API合同发现、IaC分析、CI/CD管道解析、monoreto支持、依赖漏洞扫描、性能评测、代码脚手架等。适用于所有兼容MCP的IDE。 需要零个API密钥。
主机LLM(Claude、GPT、Gemini)进行推理。此服务器提供 快速、结构化、全面的访问 到你的代码。
graph TD
IDE["🖥️ IDE / Agent
(Claude Code, Cursor, VS Code,
Codex CLI, Gemini CLI)"]
MCP["⚡ codedev-mcp v3.1
33 tools · 6 resources · 7 prompts
Typed output schemas"]
FS["📁 File System
Ripgrep + Regex + AST"]
GIT["🔀 Git History
Log · Diff · Blame · Status"]
SQLITE["💾 SQLite Index
sql.js WASM · persistent"]
TOOLCACHE["🗄️ Tool Result Cache
LRU · TTL · hash-keyed"]
FILECACHE["📦 File Cache
mtime invalidation"]
WATCH["👁️ File Watcher
Auto cache invalidation"]
ROOTS["🌲 Multi-Root
workspace support"]
IDE |"MCP Protocol
(stdio)"| MCP
MCP FS
MCP GIT
MCP SQLITE
MCP TOOLCACHE
MCP FILECACHE
WATCH -.->|"invalidate"| FILECACHE
WATCH -.->|"invalidate"| TOOLCACHE
FS -.->|"file changes"| WATCH
ROOTS -.->|"multiple dirs"| FS
style MCP fill:#7c3aed,stroke:#5b21b6,stroke-width:3px,color:#fff
style IDE fill:#2563eb,stroke:#1d4ed8,stroke-width:2px,color:#fff
style FS fill:#059669,stroke:#047857,stroke-width:2px,color:#fff
style GIT fill:#d97706,stroke:#b45309,stroke-width:2px,color:#fff
style SQLITE fill:#6b7280,stroke:#4b5563,stroke-width:1px,color:#fff
style TOOLCACHE fill:#6b7280,stroke:#4b5563,stroke-width:1px,color:#fff
style FILECACHE fill:#6b7280,stroke:#4b5563,stroke-width:1px,color:#fff
style WATCH fill:#6b7280,stroke:#4b5563,stroke-width:1px,color:#fff
style ROOTS fill:#059669,stroke:#047857,stroke-width:1px,color:#fff100%本地执行。没有数据离开你的机器。没有API密钥。没有网络呼叫。
为什么?
| 问题 | codedev-mcp解决了它 |
|---|---|
| 人工智能无法高效搜索您的代码库 | Ripgrep驱动的搜索+TF-IDF语义搜索 |
| AI不理解你的项目结构 | codebase_map 在一次通话中提供完整的概述 |
| AI在大型代码库中失去上下文 | 符号搜索、调用图、依赖关系图、目标文件读取 |
| 无法查看代码质量 | 安全扫描、测试覆盖率、文档提取、健康检查 |
| 难以评估变化的影响 | change_impact 查找受影响的文件、测试和破坏性更改 |
| 针对不同IDE的不同工具 | 一台服务器可以在任何地方工作——Claude Code、Cursor、VS Code、Codex、Gemini CLI |
| 需要API密钥/外部服务 | 零配置,运行100%本地,无需网络 |
工具(33)
搜索和导航
| 工具 | 说明 |
|---|---|
search_code | 跨代码库快速搜索文本/正则表达式(ripgrep支持) |
search_symbols | 按名称或模式查找函数、类、类型、接口 |
semantic_search | 基于概念的搜索 --查找没有确切字符串的“身份验证逻辑”或“错误处理代码” |
find_references | 查找代码库中符号的所有用法 |
file_tree | 具有深度控制和过滤功能的智能目录列表 |
context_pack | 智能上下文打包 --返回令牌预算内问题的最相关文件/片段 |
分析与架构
| 工具 | 说明 |
|---|---|
codebase_map | 完整的项目概述:语言、框架、结构、git信息 |
analyze_file | 深度文件分析:符号、导入、导出、复杂性 |
read_files | 读取一个或多个具有行范围的文件(合并的单个/批) |
dependency_graph | 任何文件的导入/依赖关系分析 |
call_graph | 函数调用关系 --谁调用什么(树保姆AST或正则表达式) |
code_metrics | LOC、复杂性、注释比率、文件大小分析 |
type_flow | 类型流量分析 --类型/接口流向的跟踪:定义→ 导入→ 参数→ 退货 |
architecture_check | 层边界执行 --验证控制器不从存储库导入等。 |
complexity_heatmap | 复杂性排名 --按圈、认知、嵌套指标对文件/函数进行排名 |
质量与安全
| 工具 | 说明 |
|---|---|
security_scan | SAST精简版 --检测SQL注入、XSS、硬编码秘密、eval、弱加密、路径遍历(15种模式) |
test_coverage | Parse-lcov/istanbul/cobertura--覆盖率百分比、未覆盖的行、未测试的函数 |
code_docs | 提取JSDoc、Python文档字符串、Rustdoc、Javadoc、Go文档注释;查找未记录的API |
find_pattern | 检测TODO、大文件、长函数、硬编码秘密、空捕获、控制台日志 |
dead_code | 死码检测 --未使用的导出,从未导入的孤立文件 |
dep_vuln_scan | 依赖漏洞扫描 --对照捆绑的离线咨询数据库交叉引用锁定文件(无网络调用) |
演出
| 工具 | 说明 |
|---|---|
perf_profile | 性能分析 --V8 CPU配置文件、webpack捆绑包统计数据、大文件、繁重的npm-deps和轻量级的替代品 |
Git和变更管理
| 工具 | 说明 |
|---|---|
git_history | 日志、差异、责任、状态、分支、贡献者、显示提交 |
change_impact | 影响分析 --给定更改,找到受影响的依赖项,重新运行测试,破坏更改,风险级别 |
branch_compare | 分支结构差异 --添加/修改/删除文件,前/后提交,冲突检测 |
git_hooks | 预提交挂钩 --生成、预览或检查用于代码质量强制的git挂钩的状态 |
基础设施和生态系统
| 工具 | 说明 |
|---|---|
db_schema | 数据库模式分析 --Prisma、Drizzle、SQLAlchemy、Django ORM、TypeORM、原始SQL DDL |
api_contracts | API端点发现 --OpenAPI/Swagger、GraphQL、Express、NestJS、FastAPI路由解析 |
iac_analyze | 基础设施即代码 --Terraform、CloudFormation、Kubernetes清单、Docker编写 |
cicd_analyze | CI/CD管道解析 --GitHub Actions、GitLab CI、Jenkins、CircleCI |
monorepo_analyze | Monorepo情报 --npm/yarn/pnpm工作区、Cargo、Lerna、Nx、Turborepo |
代码生成
| 工具 | 说明 |
|---|---|
scaffold | 锅炉板发电 --自动检测项目约定并生成组件、路由、测试、服务、钩子、utils |
笔记本
| 工具 | 说明 |
|---|---|
notebook_analyze | Jupyter.ipynb分析——代码单元、执行顺序、导入、健康评分 |
MCP资源(6)
无需工具调用即可自动加载上下文:
| 资源URI | 描述 |
|---|---|
project://config | 项目配置文件(package.json、tsconfig、pyproject.toml、Cargo.toml等) |
project://structure | 目录树(前3级,缓存) |
project://gitinfo | 当前分支、最近提交、脏文件 |
project://languages | 语言细分与文件数量 |
server://stats | 服务器分析 --正常运行时间、每次工具调用计数、平均/最大持续时间、错误率、文件缓存+工具结果缓存命中率 |
project://suggested_actions | AI建议下一步行动 --根据使用模式推荐未使用的工具并标记问题 |
MCP提示(7)
为常见任务链接多个工具的工作流宏:
| 提示 | 描述 | 工具链接 |
|---|---|---|
onboard_codebase | 完整的项目入职概述 | 代码库_map→ 文件树→ code_metrics→ 依赖图→ git_历史→ find_pattern |
review_changes | 预提交代码审查 | git_history→ change_impact→ 查找模式×3→ 安全扫描 |
investigate_symbol | 深入了解任何函数/类 | search_symbols→ 查找引用→ code_docs→ 依赖图→ 通话图→ git_历史 |
code_health_check | 完整代码库健康审计 | code_metrics→ 查找模式×4→ 安全扫描→ 测试平均值 |
understand_file | 完全理解文件 | analyze_file→ read_files→ code_docs→ 依赖图→ 通话图→ git_历史→ 测试平均值 |
pr_review | PR审查工作流程 | 分支机构→ 分析文件→ 复杂性_地图→ 安全扫描→ dead_code→ 测试平均值→ 架构检查 |
refactor_plan | 重构优先级计划 | 复杂性_地图→ dead_code→ 架构检查→ 安全扫描→ code_docs→ 测试平均值→ find_pattern |
语言支持
全面分析支持 (符号、导入、文档、调用图、安全模式)用于:
TypeScript、JavaScript、Python、Java、Go、Rust、C、C++、C#、Ruby、PHP、Swift、Kotlin
搜索+符号检测 (基于正则表达式的提取)用于:
Dart、Scala、Elixir、Erlang、Haskell、OCaml、F#、Lua、R、Julia、Perl、Shell/Bash、Clojure、Zig、Nim、Crystal、V
仅搜索 (文本搜索、文件检测、度量——无深度符号提取):
SQL、Solidity、Terraform、YAML、TOML、Markdown、HTML、CSS、SCSS、Vue、Svelte和任何其他文本文件
备注:security_scan针对TS、JS、Python、Java、Go、Rust、Ruby、PHP和C#运行SAST模式。使用search_code使用正则表达式模式进行其他语言的安全检查。
先决条件
- Node.js v18+ --必填项(下载)
- Git --必须在你的
PATH对于githistory、change_impact和git相关功能 - ripgrep (可选,推荐)——搜索速度快10-100倍;如果未安装,则回退到grep(安装)
验证:
node --version # v18.0.0 or higher
git --version # any recent version
rg --version # optional but recommended安装
克劳德代码
claude mcp add codedev -- npx -y codedev-mcpCodex CLI
添加到 ~/.codex/config.toml:
[mcp_servers.codedev]
command = "npx"
args = ["-y", "codedev-mcp"]Gemini CLI
添加到 ~/.gemini/settings.json:
{
"mcpServers": {
"codedev": {
"command": "npx",
"args": ["-y", "codedev-mcp"]
}
}
}备注:如果Gemini CLI找不到npx,使用完整路径:"command": "/usr/local/bin/npx"(奔跑which npx找到你的)。在Windows上,使用npx.cmd或从以下位置开始的完整路径where npx.
光标
推荐:添加到 ~/.cursor/mcp.json (全球)或 .cursor/mcp.json (项目特定):
{
"mcpServers": {
"codedev": {
"command": "npx",
"args": ["-y", "codedev-mcp"]
}
}
}替代 (如果通过本地安装 npm install codedev-mcp):
{
"mcpServers": {
"codedev": {
"command": "node",
"args": ["./node_modules/codedev-mcp/dist/index.js"],
"cwd": "${workspaceFolder}"
}
}
}备注:使用 npx 建议使用,因为无论包是本地安装还是全局安装,它都能正常工作,并自动解析正确的路径。VS代码/GitHub副本
命令面板→ “MCP:添加服务器”,或添加到 .vscode/settings.json:
{
"mcp": {
"servers": {
"codedev": {
"command": "npx",
"args": ["-y", "codedev-mcp"]
}
}
}
}帆板运动
添加到MCP配置:
{
"mcpServers": {
"codedev": {
"command": "npx",
"args": ["-y", "codedev-mcp"]
}
}
}克劳德桌面版
添加到 claude_desktop_config.json:
{
"mcpServers": {
"codedev": {
"command": "npx",
"args": ["-y", "codedev-mcp"]
}
}
}码头工人
docker build -t codedev-mcp .
docker run --init -i -v /path/to/project:/workspace:ro codedev-mcp或者使用docker编写:
PROJECT_DIR=/path/to/project docker-compose up安装方法
方法1:使用npx(推荐)
npx -y codedev-mcp 自动下载并运行最新版本。无需安装:
{
"mcpServers": {
"codedev": {
"command": "npx",
"args": ["-y", "codedev-mcp"]
}
}
}方法2:本地安装(项目特定)
在项目中安装以进行版本控制:
npm install codedev-mcp然后使用配置 npx (也适用于本地安装):
{
"mcpServers": {
"codedev": {
"command": "npx",
"args": ["-y", "codedev-mcp"]
}
}
}或者直接引用(项目特定配置):
{
"mcpServers": {
"codedev": {
"command": "node",
"args": ["./node_modules/codedev-mcp/dist/index.js"],
"cwd": "${workspaceFolder}"
}
}
}方法3:全球安装
全局安装以实现全系统访问:
npm install -g codedev-mcp然后配置:
{
"mcpServers": {
"codedev": {
"command": "codedev-mcp"
}
}
}版本固定
要使用npx固定特定版本,请执行以下操作:
npx -y codedev-mcp@3.2.1或者在本地安装特定版本:
npm install codedev-mcp@3.2.1工作目录
默认情况下,codedev-mcp使用当前工作目录。覆盖:
# Environment variable
CODEDEV_CWD=/path/to/project npx codedev-mcp
# CLI flag
npx codedev-mcp --cwd=/path/to/project
# In MCP config (any IDE)
{
"command": "npx",
"args": ["-y", "codedev-mcp", "--cwd=/path/to/your/project"]
}多根工作区
同时分析多个项目目录 --roots:
# CLI flag (comma-separated)
npx codedev-mcp --roots=/path/to/frontend,/path/to/backend,/path/to/shared
# Environment variable
CODEDEV_ROOTS=/path/to/frontend,/path/to/backend npx codedev-mcp
# In MCP config
{
"command": "npx",
"args": ["-y", "codedev-mcp", "--roots=/path/to/frontend,/path/to/backend"]
}当启用多根时,工具如 search_code 和 codebase_map 自动跨越所有根目录,在结果前加上根目录名。文件监视器监视所有根目录以防止缓存失效。单根模式(--cwd)仍然是默认值,并且完全向后兼容。
配置和筛选
.gitignore支持
Ripgrep尊重 .gitignore 自动。 当安装ripgrep时, search_code 和 find_references 将跳过您的 .gitignore, .rgignore,以及 .ignore 默认情况下为文件。这是一个内置的ripgrep行为——不需要配置。
当回到grep(未安装ripgrep)时,codedev-mcp使用硬编码的排除列表。
默认排除
所有工具都会自动排除这些目录,即使没有 .gitignore:
node_modules, .git, dist, build, __pycache__, .venv, venv,
target, bin, obj, .next, coverage, vendor, Pods, .dart_tool自定义筛选
大多数工具都接受 file_glob 或 directory 目标分析参数:
"Find TODO comments only in Python files"
→ find_pattern with file_glob: "*.py"
"Search only in the src/api directory"
→ search_code with directory: "src/api"
"Analyze only Go files for security issues"
→ security_scan with file_glob: "**/*.go"对于批量读取, max_lines_per_file (默认值:200)可防止大文件产生过大的输出。
不--ignoreCLI标志当前存在。 超出自定义排除范围.gitignore应通过以下方式处理file_glob和directory单个工具调用的参数。插件支持允许在需要时添加自定义排除逻辑。
使用示例
安装后,只需自然地与您的AI对话:
“为我绘制这个代码库” → AI呼叫 codebase_map“查找所有与身份验证相关的代码” → AI呼叫 semantic_search 使用查询“身份验证”“谁调用handlePayment函数?” → AI呼叫 call_graph 函数名为“handlePayment”“运行安全扫描” → AI呼叫 security_scan“src/auth/login.ts的测试覆盖率是多少?” → AI呼叫 test_coverage 使用动作“file”“显示UserService类的文档” → AI呼叫 code_docs 带有动作“提取”和符号“UserService”“如果我更改src/api/routes.ts,会受到什么影响?” → AI呼叫 change_impact 使用文件\[“src/api/routes.ts”\]“在提交之前进行完整的代码审查” → AI使用 review_changes 提示(链7工具)“给我检查一下这个代码库的健康状况” → AI使用 code_health_check 提示(链8工具)“分析此Jupyter笔记本” → AI呼叫 notebook_analyze 用行动“分析”“在过去的5次提交中发生了什么变化?” → AI呼叫 git_history 操作“日志”和文件为真“查找死代码和未使用的导出” → AI呼叫 dead_code“需要重构的最复杂的文件是什么?” → AI呼叫 complexity_heatmap 具有粒度“文件”“将我的功能分支与主分支进行比较” → AI呼叫 branch_compare 以“main”为基础“UserProfile类型在代码库中流向哪里?” → AI呼叫 type_flow 类型为“用户配置文件”“检查架构违规” → AI呼叫 architecture_check“显示数据库架构” → AI呼叫 db_schema“查找此项目中的所有API终结点” → AI呼叫 api_contracts“分析CI/CD管道” → AI呼叫 cicd_analyze“定义了哪些地形资源?” → AI呼叫 iac_analyze“分析单回购结构” → AI呼叫 monorepo_analyze“彻底审查此PR” → AI使用 pr_review 提示(链7工具)“为技术债务制定重构计划” → AI使用 refactor_plan 提示(链7工具)“为我获取最相关的文件,以了解身份验证流程” → AI呼叫 context_pack 使用查询“身份验证流”“扫描依赖关系以查找漏洞” → AI呼叫 dep_vuln_scan“是否存在性能瓶颈?” → AI呼叫 perf_profile“按照我们的约定生成React组件” → AI呼叫 scaffold 带有动作“生成”和模板“组件”“设置预提交挂钩” → AI呼叫 git_hooks 用动作“生成”输出示例
change_impact 输出
## Change Impact Analysis
3 files changed, 2 symbols modified
8 dependent files affected
2 test files need re-running
⚠️ 1 breaking changes detected
Risk level: CRITICAL
### Changed symbols:
modified: handlePayment in src/billing/payments.ts
removed: legacyCharge in src/billing/payments.ts
### Affected files (8):
src/api/routes.ts
src/checkout/flow.ts
src/webhooks/stripe.ts
...
### Tests to re-run (2):
tests/billing/payments.test.ts
tests/api/routes.test.ts
### ⚠️ Breaking changes:
Removed: legacyCharge from src/billing/payments.tssecurity_scan 输出
## Security Scan Report
Total findings: 4
Severity breakdown: critical: 1, high: 2, medium: 1
Dependencies: 12 direct, 347 total (lockfile ✅)
### Findings:
🔴 [CRITICAL] Hardcoded secret/credential
src/config/database.ts:14
const DB_PASSWORD = "super_secret_123"
💡 Move secrets to environment variables or a secret manager.
🟠 [HIGH] Potential XSS via innerHTML
src/components/render.ts:42
element.innerHTML = userInput
💡 Use textContent instead of innerHTML, or sanitize with DOMPurify.test_coverage 输出
## Test Coverage (lcov)
Files: 47
Lines: 2,841/4,120 (68%)
Functions: 189/267 (70%)
Branches: 412/680 (60%)
### Lowest coverage files:
src/billing/payments.ts 23% lines 20% funcs
src/api/middleware.ts 34% lines 25% funcs
src/utils/crypto.ts 41% lines 33% funcs演出
- 搜索:Ripgrep驱动,在不到1秒的时间内处理100K以上的文件代码库
- 两层缓存:文件级mtime缓存+工具结果LRU缓存(2000个条目,120秒TTL)——重复的工具调用会立即返回
- SQLite持久索引:基于sql.js WASM的SQLite在重启时存储文件/符号/导入索引——启动时不重新索引
- 文件监视:文件更改时自动缓存无效(chokidar)--使文件缓存和工具结果缓存无效
- 多根工作区:使用以下命令在单个会话中分析多个项目目录
--roots=dir1,dir2 - AST解析:树保姆WASM(可用时),所有语言的正则表达式回退
- 智能过滤:尊重
.gitignore,自动排除构建目录,可通过配置file_glob - 大文件保护:批量读取默认截断为200行/文件(可配置);目标访问的行范围读取
- 无网络:一切都在本地运行,API调用的延迟为零
建筑
src/
├── index.ts # MCP server: 33 tools, 6 resources, 7 prompts (~2,326 lines)
├── schemas/
│ └── output-schemas.ts # Zod output schemas for all 33 tools (typed structuredContent)
├── search/
│ ├── fast-search.ts # Ripgrep/grep search engine
│ └── semantic.ts # TF-IDF semantic search with synonym expansion
├── analyzers/
│ ├── symbols.ts # Symbol extraction (40+ languages)
│ ├── codebase.ts # Codebase mapping & metrics
│ ├── git.ts # Git operations (log, diff, blame, status)
│ ├── tree-sitter.ts # AST parsing, call graphs, scope analysis
│ ├── coverage.ts # Test coverage (lcov, istanbul, cobertura)
│ ├── docs.ts # Documentation extraction (JSDoc, docstrings, etc.)
│ ├── security.ts # SAST-lite security scanning (15 patterns)
│ ├── impact.ts # Change impact analysis
│ ├── notebook.ts # Jupyter notebook parsing
│ ├── dead-code.ts # Dead code detection (unused exports, orphan files)
│ ├── branch-compare.ts # Structural git branch comparison
│ ├── complexity-heatmap.ts # Complexity ranking with A-F grading
│ ├── context-pack.ts # Smart context window packing
│ ├── type-flow.ts # Type/interface flow tracing
│ ├── architecture.ts # Layer boundary rule enforcement
│ ├── db-schema.ts # Database schema parsing (6 ORMs + raw SQL)
│ ├── api-contract.ts # API endpoint discovery (REST, GraphQL, tRPC)
│ ├── iac.ts # Infrastructure-as-Code analysis
│ ├── cicd.ts # CI/CD pipeline parsing
│ ├── monorepo.ts # Monorepo workspace intelligence
│ ├── dep-vuln.ts # Dependency vulnerability scanning
│ ├── perf-profile.ts # Performance profiling & bundle analysis
│ └── scaffold.ts # Code generation from project conventions
├── cache/
│ └── memory-cache.ts # File cache (mtime) + tool-result LRU cache (2K entries, 120s TTL)
├── db/
│ ├── json-store.ts # JSON-file persistent index (legacy)
│ └── sqlite-store.ts # SQLite persistent index (sql.js WASM, zero native deps)
├── types/
│ └── sql.js.d.ts # Type declarations for sql.js WASM module
└── utils/
├── languages.ts # Language detection & patterns (40+)
├── plugins.ts # Plugin architecture + npm marketplace auto-discovery
├── analytics.ts # Per-tool usage analytics & tracking
└── git-hooks.ts # Git hook generation & management
Dockerfile # Multi-stage Docker build (alpine, non-root, tini)
docker-compose.yml # Docker Compose for easy deployment约10200行TypeScript 36个源文件。7个运行时依赖关系。
插件
使用自定义分析器扩展codedev-mcp,而无需分叉:
本地插件
~/.codedev-mcp/plugins/
└── my-plugin/
├── plugin.json # Manifest: name, tools, patterns, languages
└── index.js # Tool handler implementations将插件放入 ~/.codedev-mcp/plugins/ (全球)或 .codedev-mcp/plugins/ (每个项目)。插件在服务器启动时自动加载。
npm市场插件
发布到npm的插件 codedev-plugin-* 命名约定是自动发现的:
# Install a marketplace plugin
npm install codedev-plugin-terraform
# Or use scoped packages
npm install @myorg/codedev-plugin-custom-rulescodedev-mcp自动搜索 node_modules 在三个地点(项目, ~/.codedev-mcp/node_modules,global)用于匹配包裹 codedev-plugin-* 或 @*/codedev-plugin-*。每个包应导出一个 plugin.json 舱单(或 codedev 钥匙在其 package.json).
要发布自己的市场插件,请使用scaffold工具:
"Generate a plugin scaffold"
→ scaffold with action "generate", template "plugin"这产生了两者 plugin.json (本地)和 package.json (npm marketplace)附带发布说明。
安全
- 路径遍历保护:所有文件参数均通过验证
safePath()--项目根目录之外没有访问权限 - 只读:所有33个工具都是只读的,从不修改文件或git状态
- 工具安全:所有工具都设计为只读和幂等的——可以安全地重新运行,没有副作用
- 码头工人:非root用户,最小alpine映像,tini初始化,只读工作区挂载
- 无网络:零个外部API调用,所有处理都是本地处理
故障排除
“找不到服务器”或“npx:找不到命令”
确保已安装Node.js npx 在您的系统PATH中:
which npx # Should print a path
npx --version # Should print a version对于基于GUI的IDE(Claude Desktop、Cursor),系统PATH可能与您的终端不同。尝试使用完整路径:
{ "command": "/usr/local/bin/npx", "args": ["-y", "codedev-mcp"] }在Windows上,使用 npx.cmd 而不是 npx,或来自的完整路径 where npx.
在大型代码库上搜索缓慢
安装 ripgrep 搜索速度提高10-100倍。codedev-mcp会自动检测并使用它。如果没有ripgrep,它会退回到grep,而grep在大型repo上的速度要慢得多。
# macOS
brew install ripgrep
# Ubuntu/Debian
sudo apt install ripgrep
# Windows
winget install BurntSushi.ripgrep大文件读取超时或产生巨大输出
对大文件使用行范围,而不是读取整个文件:
"Read lines 100-150 of that large config file"
→ read_files with path: "config.json", start_line: 100, end_line: 150批处理读取会自动截断每个文件200行。覆盖 max_lines_per_file.
Git工具返回错误
确保工作目录位于Git存储库中 git 在您的路径中:
cd /your/project && git status # Should work without errors缓存显示过时的结果
codedev-mcp使用两层缓存:文件级mtime缓存和工具结果LRU缓存(2000个条目,120秒TTL)。两个缓存都会在通过chokidar文件监视器更改文件时自动失效。如果您看到过时的结果,则文件监视器可能没有检测到更改(例如,外部工具所做的更改)。工具结果缓存条目也会在120秒后过期。SQLite持久索引每5分钟自动保存一次。
树保姆未加载
树型AST解析需要WASM语法文件。如果没有它们,codedev-mcp就会退回到基于正则表达式的解析(这对大多数用例都很有效)。树保姆支持是可选的,主要提高了调用图和范围分析的准确性。
Docker:服务器没有完全关闭
使用 --init 用于正确信号处理的标志(或tini):
docker run --init -i -v /path/to/project:/workspace:ro codedev-mcp为此,提供的Dockerfile已经包含了tini。
v3.1.0变更日志(从v3.0.0开始)
输出架构迁移: 从迁移的所有33个工具 server.tool() 到 server.registerTool() Zod已定义 outputSchema 和 structuredContent 每次成功返回(共66条返回路径)。MCP客户端现在可以使用键入的JSON和人类可读的文本。
SQLite持久索引: 用基于sql.js WASM的SQLite替换JSON文件索引(.codedev-mcp/index.sqlite).模式包括5个表(元、文件、符号、导入、usage_stats)和适当的索引。零原生编译——适用于Node.js运行的任何地方。自动每5分钟保存一次,具有优雅的关机持久性。分析数据现在跨会话持久化。
可靠性和安全性: 实现了结构化日志记录(JSON格式的stderr)替换 console.log 为了更好的可观察性。使用准备好的语句(零字符串连接)保护所有数据库查询。增强 safePath 验证以稳健地防止目录遍历攻击。
多根工作区支持: 新 --roots=dir1,dir2 旗和 CODEDEV_ROOTS env-var用于在单个会话中分析多个项目目录。 search_code 和 codebase_map 自动跨越所有根。文件监视器监视所有根目录的缓存失效情况。完全向后兼容——单根模式仍然是默认模式。
工具结果缓存: 新的会话感知LRU缓存(2000个条目,120秒TTL),缓存由以下键控的完整工具响应 hash(toolName + params)。使用FNV-1a启发的哈希算法来提高速度。通过文件监视器对文件更改自动失效。统计数据可见于 server://stats.
npm市场插件发现: loadPlugins() 现在自动发现匹配的npm包 codedev-plugin-* (包括范围 @org/codedev-plugin-*)从项目 node_modules, ~/.codedev-mcp/node_modules,全球 node_modules脚手架工具生成两者 plugin.json 和 package.json 发布说明。
基础设施: 孤立文件清理(删除了未使用的上下文打包器.ts),中的双层缓存统计信息 server://stats (文件缓存+工具结果缓存),SIGINT/SIGTERM上优雅的SQLite关闭,sql.js的类型声明。
v3.0.0更改日志(从v2.0.0开始)
新工具(+15): dead_code、branch_core、complexity_heatmap、context_pack、type_flow、架构检查、db_schema、api_connects、iac_analyze、cicd_analyze、单报告分析、dep_vuln_scan、性能文件、脚手架、git_hooks
新资源(+2): server://stats(分析仪表板),project://suggested_actions(AI指导下一步行动)
新提示(+2): pr_review(全面的pr审查工作流程)、reform_plan(优先重构计划)
新功能: 死代码检测(未使用的导出、孤立文件)、结构分支比较、具有A-F分级的复杂性热图、LLM令牌预算的智能上下文打包、跨代码库的类型流跟踪、体系结构层边界强制执行、数据库模式解析(Prisma、Drizle、SQLAlchemy、Django、TypeORM、原始SQL)、API端点发现(OpenAPI、GraphQL、Express、NestJS、FastAPI)、基础结构as-code分析(Terraform、CloudFormation、K8s、Docker Compose)、CI/CD管道解析(GitHub Actions、GitLab CI、Jenkins、CircleCI)、monorestore工作空间智能(npm/yar/pnpm、Cargo,Lerna,Nx,Turborepo),依赖漏洞扫描(npm,Cargo,pip,Go锁定文件),性能评测(V8 CPU配置文件,webpack捆绑包,重型deps),来自项目约定的代码脚手架,githook生成/预览
基础设施: 按工具分析跟踪(调用计数、持续时间、错误、缓存命中率)、基于使用情况的建议操作引擎、一致的工具提示注释
v2.0.0更改日志(从v1.0.0开始)
新工具(+7): 语义搜索、调用图、测试平均值、代码文档、安全扫描、更改影响、记事本分析
MCP的新功能: 4个资源(项目配置、结构、git信息、语言),5个提示(机载、审查、调查、健康检查、理解文件)
工具整合: read_file+batch_read→ read_files (12 → 18 工具网)
基础设施: 内存缓存(重复次数快100倍)、文件观察器(自动失效)、树型AST(精确解析)、JSON持久索引、插件架构、Docker打包(多阶段、非根、tini)
本地开发
git clone https://github.com/YOUR_USERNAME/codedev-mcp.git
cd codedev-mcp
npm install
npm run build
# Test with MCP Inspector
npm run inspect
# Test with Claude Code
claude mcp add codedev-local -- node /path/to/codedev-mcp/dist/index.js贡献
PR欢迎!感兴趣的领域:
- 树型语法WASM文件,适用于更多语言
- 其他安全扫描模式(Solidity、Terraform等)
- LSP网桥集成用于类型感知分析
- OAuth 2.1远程部署的HTTP传输
- 企业级存储库(50万+文件)的性能优化
- 自定义
--ignore排除模式的CLI标志.gitignore - 额外的输出模式优化,以实现更好的结构化内容
- 用于领域特定分析的npm市场插件
许可证
麻省理工学院
