关于 Code Context Provider MCP
Code Context Provider MCP 是一个 MCP 服务,为 AI 助手提供代码上下文与分析。它基于 WebAssembly 版 Tree-sitter 解析器提取目录结构和代码符号,并声明不依赖原生库。
主要功能
- 01生成目录树结构
- 02分析 JavaScript、TypeScript 与 Python 文件
- 03提取函数、变量、类、导入与导出符号
- 04支持通过 filePatterns 过滤文件
- 05支持 maxDepth 限制遍历深度
适用场景
- 01为 AI 助手提供大型项目的目录结构概览
- 02在分析前筛选特定类型或名称的配置文件
- 03在大型 monorepo 中只分析主要源码
MCP 相关
该项目是 MCP 服务,通过 get_code_context 工具向 MCP 客户端返回目录结构和可选的代码符号信息。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
1收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| absolutePath | string | 是 | 要分析的目录的绝对路径。对于 Windows,建议使用正斜杠以避免转义(例如 C:/Users/username/Documents/project/src) |
| analyzeJs | boolean | 否 | 是否分析 JavaScript/TypeScript 和 Python 文件。返回代码库中的函数、变量、类、导入和导出项的数量。 |
| includeSymbols | boolean | 否 | 是否在响应中包含代码符号。若启用,则返回每个文件的代码符号。 |
| symbolType | enum | 否 | 如果 includeSymbols 为 true,则要包含的符号类型。否则,仅返回目录树。functions | variables | classes | imports | exports | all |
| maxDepth | number | 否 | 代码分析的最大目录深度(默认:5 层)。仍会为所有层级构建目录树。如果只需要快速了解项目概况,请降低深度。 |
详细介绍
Code Context Provider MCP
为 AI 助手提供代码上下文和分析的 MCP 服务。使用 WebAssembly Tree-sitter 解析器提取目录结构和代码符号,且无需原生依赖。
功能
- 生成目录树结构
- 分析 JavaScript/TypeScript 和 Python 文件
- 提取代码符号(函数、变量、类、导入、导出)
- 兼容 MCP 协议,可与 AI 助手无缝集成
快速使用(MCP 设置)
通过 Smithery 安装
通过 Smithery 自动为 Claude Desktop 安装 Code Context Provider:
npx -y @smithery/cli install @AB498/code-context-provider-mcp --client claude
Windows
{
"mcpServers": {
"code-context-provider-mcp": {
"command": "cmd.exe",
"args": [
"/c",
"npx",
"-y",
"code-context-provider-mcp@latest"
]
}
}
}
MacOS/Linux
{
"mcpServers": {
"code-context-provider-mcp": {
"command": "npx",
"args": [
"-y",
"code-context-provider-mcp@latest"
]
}
}
}
或者使用 npm 全局安装:
npm install -g code-context-provider-mcp
然后运行以下命令使用:
code-context-provider-mcp # if you're not using @latest, you may want to clear the cache for latest version using `Remove-Item -Path "$env:LOCALAPPDATA\npm-cache\_npx" -Recurse -Force` for windows and `rm -rf ~/.npm/_npx` for linux/macos
可用工具
get_code_context
分析目录并返回其结构,以及代码符号(可选)。
参数:
absolutePath(string,必填):要分析的目录的绝对路径analyzeJs(boolean,可选):是否分析 JavaScript/TypeScript 和 Python 文件(默认值:false)includeSymbols(boolean,可选):是否在响应中包含代码符号(默认值:false)symbolType(enum,可选):当 includeSymbols 为 true 时要包含的符号类型(选项:'functions'、'variables'、'classes'、'imports'、'exports'、'all',默认值:'all')filePatterns(字符串数组,可选):要分析的文件模式(例如 ['.js'、'.py'、'config.*'])maxDepth(number,可选):要分析的最大目录深度(默认值:5 层)
注意:匿名函数会自动从结果中筛除。
工具调用的输出文本示例
Directory structure for: C:\Users\Admin\Desktop\mcp\context-provider-mcp
Code Analysis Summary:
- Files analyzed: 3
- Total functions: 29
- Total variables: 162
- Total classes: 0
Note: Symbol analysis is supported for JavaScript/TypeScript (.js, .jsx, .ts, .tsx) and Python (.py) files only.
Code analysis limited to a maximum depth of 5 directory levels (default).
├── index.js (39 KB)
│ └── [Analyzed: 22 functions, 150 variables, 0 classes]
│ Functions:
│ - initializeTreeSitter [39:0]
│ - getLanguageFromExtension [107:0]
│ - getPosition [138:24]
文件模式示例
你可以使用 filePatterns 参数指定要分析的文件。这对于包含多种语言或有特定关注文件的复杂项目很有用。
示例:
["*.js", "*.py"]- 分析所有 JavaScript 和 Python 文件["config.*"]- 分析所有扩展名不限的配置文件["package.json", "*.config.js"]- 分析 package.json 和所有 JavaScript 配置文件[".ts", ".tsx", ".py"]- 分析 TypeScript 和 Python 文件(使用扩展名格式)
文件模式匹配支持:
- 带通配符(*)的简单 glob 模式
- 直接指定文件扩展名(带点或不带点)
- 精确文件名
处理大型项目
对于非常大的项目,你可以使用 maxDepth 参数限制工具遍历目录的深度:
maxDepth: 2- 仅分析根目录和下一层子目录maxDepth: 3- 分析根目录和下两层子目录maxDepth: 0- 仅分析根目录中的文件
以下场景中特别有用:
- 处理大型 monorepo
- 分析包含许多依赖项的项目
- 只关注主要源代码,不分析第三方库
支持的语言
支持以下语言的代码符号分析:
- JavaScript (.js)
- JSX (.jsx)
- TypeScript (.ts)
- TSX (.tsx)
- Python (.py)
使用 filePatterns 参数可在目录结构中包含其他文件类型,但符号分析可能会受到限制。
开发
[开发] 设置开发环境
# Clone the repository
git clone https://github.com/your-username/code-context-provider-mcp.git
cd code-context-provider-mcp
# Install dependencies
npm install
# Set up WASM parsers
npm run setup
[开发] 安装后
安装后,软件包的 prepare 脚本会自动运行,以下载 WASM 解析器。如果下载失败,用户可以手动运行设置:
npx code-context-provider-mcp-setup
许可证
MIT
了解更多信息或寻求帮助
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。