CodeIntel MCP服务器
MCP客户端的本地首码智能。
CodeIntel将源代码树转化为可搜索的结构化工作区,供代理和开发人员使用。它允许MCP客户端直接跳转到符号、轮廓、引用、调用边和精确的源代码片段,而不是强行将整个文件放入上下文中。
为什么存在
大多数面向代码的MCP服务器都会在两个极端之一停止:
- 结构薄弱的文件搜索
- 没有足够导航深度的符号检索
CodeIntel被构建为位于有用的中间:
- 精确符号查找
- 整个工作区文本搜索
- 已解析引用
- 呼叫者和被呼叫者遍历
- 通过文件观看实时了解当地新鲜情况
它首先针对个人本地工作流程进行了优化,通过Streamable HTTP提供了一条干净的远程部署路径。
快速开始
1.安装
npm ci
npm run build2.跑过stdio
node dist/index.js --transport stdio3.或运行本地流式HTTP
node dist/index.js --transport http --host 127.0.0.1 --port 3333可选运行时标志:
--db-path /custom/path/codeintel.sqlite--disable-watch--enable-refactors公开实验重命名/移动工具
亮点
| 能力 | 你得到了什么 |
|---|---|
| 符号导航 | 在函数、类、方法、类型和常量之间进行排名搜索 |
| 精确检索 | 仅获取特定符号的主体和周围上下文 |
| 文件智能 | 树视图加上每个文件的轮廓 |
| 工作区搜索 | 文本与文件、行和列的匹配 |
| 引用跟踪 | 启发式地解析导入、直接使用和调用站点 |
| 调用图遍历 | 上游调用者和下游被调用者 |
| 解析诊断 | 工作区级解析问题计数加上每个文件的恢复警告 |
| 本地优先索引 | JS、TS、TSX和Python支持 |
| 快速本地存储 | SQLite+FTS5 |
| MCP传输选项 | stdio 以及本地流式HTTP |
支持的语言
- JavaScript
- TypeScript
- 多伦多证券交易所
- python
工具目录
默认只读MCP表面:
| 工具 | 目的 |
|---|---|
codeintel_index_workspace | 索引本地工作区并开始实时观看 |
codeintel_list_workspaces | 列出索引工作区 |
codeintel_get_workspace_status | 显示新鲜度、修订和待定更改 |
codeintel_refresh_workspace | 强制增量刷新或完全重建 |
codeintel_get_file_tree | 浏览索引文件和目录 |
codeintel_get_file_outline | 获取文件的符号层次结构 |
codeintel_search_symbols | 排名符号搜索 |
codeintel_get_symbol | 检索符号的确切来源 |
codeintel_search_text | 搜索索引文件内容 |
codeintel_find_references | 查找已解析的符号引用 |
codeintel_find_callers | 穿越来电边缘 |
codeintel_find_callees | 穿越呼出边缘 |
实验性选择加入工具:
codeintel_rename_symbolcodeintel_move_symbol
这些仅在服务器启动时才公开 --enable-refactors.
资源目录
| 资源 | 目的 |
|---|---|
codeintel://workspaces | 列出索引工作区 |
codeintel://workspace/{workspaceId} | 工作区详细信息和状态 |
codeintel://workspace/{workspaceId}/files | 索引文件列表 |
codeintel://workspace/{workspaceId}/file/{filePath} | 文件内容、解析警告和大纲 |
codeintel://workspace/{workspaceId}/symbol/{symbolId} | 符号详细信息有效载荷 |
MCP客户端配置
克劳德代码/克劳德桌面:
{
"mcpServers": {
"codeintel": {
"command": "node",
"args": [
"/absolute/path/to/codeintel-mcp-server/dist/index.js",
"--transport",
"stdio"
]
}
}
}添加 --enable-refactors 仅当您想要实验性的重命名和移动工具时,才将参数添加到服务器args。
典型工作流程
要求您的MCP客户:
- 对回购进行索引并总结其结构
- 找到每个命名的符号
authenticate - 仅检索
UserService.login - 查找以下呼叫者
Greeter.format - 在不打开完整文件的情况下搜索字符串文字
- 切换分支后刷新工作区
建筑
Local workspace
-> file scan + ignore rules
-> tree-sitter parse
-> symbol/reference/call extraction
-> SQLite + FTS5 index
-> MCP tools
-> stdio or Streamable HTTP核心设计选择
- 解析器层:本机
tree-sitterNode与JS/TS/TSX/Python语法的绑定 - 存储层:SQLite通过
better-sqlite3,加上用于符号和文本搜索的FTS5表 - 刷新模式:完整初始索引,增量按需刷新,可选实时观察者更新
- 解析模型:对相同文件符号、命名导入、命名空间导入和
this/self方法调用
本地开发
npm run lint
npm run typecheck
npm test
npm run build该仓库包括以下固定夹具工作区 tests/fixtures/ 验证:
- JavaScript索引和解析恢复报告
- TypeScript符号提取和调用者
- TSX解析和文本搜索
- Python方法调用和引用
- 源代码更改后的增量刷新
- 在刷新和监视模式下基于名称的无效
- 内存中客户端/服务器传输上的MCP工具和资源行为
验证状态
通过以下方式在本地验证:
npm run lintnpm run typechecknpm testnpm run build- stdio传输启动
- 本地HTTP传输启动和
GET /mcp -> 405
当前范围
默认情况下,此版本有意专注于本地只读智能。
包括:
- 本地工作区索引
- 精确符号检索
- 搜索、引用和调用遍历
- 解析恢复诊断
- 鲜活新鲜
实验性选择加入:
- 重命名和移动符号工具
--enable-refactors
尚未包括:
- GitHub远程索引
- 语义/嵌入搜索
- 默认启用写入的工作流
- 多用户身份验证和托管部署工作流
评估
基于夹具的只读评估提示已上线 evaluations/fixture-eval.xml.
许可证
MIT。看 许可证.
