Code Context Provider (代码上下文提供者)
通过使用没有本地依赖的 WebAssembly Tree-sitter 解析器提取目录结构和代码符号,为 AI 助手提供代码上下文和分析。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"code-context-provider-mcp": {
"args": [
"/c",
"npx",
"-y",
"code-context-provider-mcp@latest"
],
"command": "cmd.exe"
}
}
}
服务介绍
代码上下文提供者 MCP
MCP 服务器为 AI 助手提供代码上下文和分析。使用 WebAssembly Tree-sitter 解析器提取目录结构和代码符号,无任何本地依赖。
特性
- 生成目录树结构
- 分析 JavaScript/TypeScript 和 Python 文件
- 提取代码符号(函数、变量、类、导入、导出)
- 与 MCP 协议兼容,可无缝集成到 AI 助手中
快速使用 (MCP 设置)
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(字符串, 必需): 要分析的目录的绝对路径analyzeJs(布尔值, 可选): 是否分析 JavaScript/TypeScript 和 Python 文件 (默认: false)includeSymbols(布尔值, 可选): 是否在响应中包含代码符号 (默认: false)symbolType(枚举, 可选): 如果 includeSymbols 为 true,则指定要包含的符号类型 (选项: 'functions', 'variables', 'classes', 'imports', 'exports', 'all', 默认: 'all')filePatterns(字符串数组, 可选): 要分析的文件模式 (例如 ['.js', '.py', 'config.*'])maxDepth(数字, 可选): 最大目录深度 (默认: 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 文件 (使用扩展名格式)
文件模式匹配支持:
- 简单的通配符模式 (*)
- 直接文件扩展名(带或不带点)
- 完整的文件名
处理大型项目
对于非常大的项目,您可以使用 maxDepth 参数来限制工具遍历目录的深度:
maxDepth: 2- 仅分析根目录及其一级子目录maxDepth: 3- 分析根目录及其两级子目录maxDepth: 0- 仅分析根目录中的文件
这在以下情况下特别有用:
- 处理大型单仓库(monorepos)
- 分析具有许多依赖项的项目
- 仅关注主源代码,而不关注第三方库
支持的语言
代码符号分析支持以下语言:
- 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