一个MCP服务器和命令行工具,提供AI助手对项目依赖文档的上下文访问,使关于代码库中使用的库和框架的回答更加准确。
推荐的方式是通过在项目根目录创建自定义的dependency-context.json文件来指定要索引的依赖项。这允许您:
在项目根目录创建一个具有以下格式的dependency-context.json文件:
{
"express": "^4.17.1",
"axios": "1.0.0"
}
如果不存在dependency-context.json文件,依赖上下文会回退到扫描package.json或requirements.txt。
{
"mcpServers": {
"dependency-context": {
"command": "npx",
"args": ["-y", "--package=dependency-context", "dependency-context"],
"env": {
"GITHUB_TOKEN": "YOUR_GITHUB_TOKEN_HERE", // 可选但推荐
"MODEL_NAME": "Xenova/all-MiniLM-L6-v2", // 可选,默认值显示
"DEBUG": "false", // 可选,默认值显示
"MIN_CHUNK_SIZE": "800", // 可选,默认值显示
"MAX_CHUNK_SIZE": "8000", // 可选,默认值显示
"CHUNKS_RETURNED": "5" // 可选,默认值显示
}
}
}
}
在编辑器中启用MCP
提示AI初始化依赖上下文。确保您处于“代理”模式。
你能初始化依赖上下文吗?
如果您希望仅下载并浏览依赖文档而不进行向量搜索:
npm install -g dependency-context
# 从您的项目目录
dependency-context download
# 或指定不同的项目路径
dependency-context download /path/to/your/project
dependency-context文件夹中找到文档:# 浏览文档
cd dependency-context
ls
每个依赖项都会有自己的文件夹,包含其存储库中的所有Markdown文档。
依赖上下文通过其MCP接口提供了两个主要工具:
分析项目的依赖项,并为其文档创建可搜索的索引。
{
"capability": "InitializeDependencyIndex",
"parameters": {
"project_path": "/path/to/your/project",
"env_vars": {
"GITHUB_TOKEN": "your_github_token", // 可选但推荐
"MODEL_NAME": "Xenova/all-MiniLM-L6-v2", // 可选,默认值显示
"DEBUG": "true", // 可选
"MIN_CHUNK_SIZE": "800", // 可选,默认值显示
"MAX_CHUNK_SIZE": "8000" // 可选,默认值显示
}
}
}
此功能:
dependencies.json文件(推荐)package.json或requirements.txt在已索引的依赖文档中执行语义搜索。
{
"capability": "searchDependencyDocs",
"parameters": {
"project_path": "/path/to/your/project",
"query": "如何处理身份验证?",
"repository_context": "express", // 可选:限制到特定依赖项
"env_vars": {
"MODEL_NAME": "Xenova/all-MiniLM-L6-v2",
"CHUNKS_RETURNED": "5" // 可选,默认值显示
}
}
}
返回:
依赖上下文采用模块化的TypeScript架构构建:
核心组件:
package.json和requirements.txt中提取依赖项关键库:
运行测试套件:
npm test
对于手动测试,请遵循以下步骤:
mkdir test-project
cd test-project
# 创建自定义的dependencies.json文件(推荐方法)
echo '{
"dependencies": {
"express": "^4.17.1",
"axios": "^1.0.0"
}
}' > dependencies.json
# 或者,您可以使用标准的依赖文件:
# 对于Node.js项目
echo '{
"dependencies": {
"express": "^4.17.1",
"axios": "^1.0.0"
}
}' > package.json
# 对于Python项目
echo 'requests==2.26.0
numpy>=1.20.0' > requirements.txt
# 编译并使CLI可执行
cd /path/to/dependency-context
npx fastmcp dev src/index.ts
# 初始化并索引依赖项(从您的测试项目目录)
tool(InitializeDependencyIndex)
# 在已索引的依赖项中搜索信息
tool(searchDependencyDocs)
如果您遇到“API速率限制超出”的错误:
设置为GITHUB_TOKEN环境变量:
export GITHUB_TOKEN=your_token_here
或将其添加到.env文件中:
# 可选但推荐以获得更高的API速率限制
GITHUB_TOKEN=your_token_here
# 显示默认值的可选设置
MIN_CHUNK_SIZE=800
MAX_CHUNK_SIZE=8000
CHUNKS_RETURNED=5
如果您的搜索返回空结果:
如果您在访问项目目录时遇到权限错误:
# 克隆仓库
git clone https://github.com/yourusername/dependency-context.git
# 安装依赖项
cd dependency-context
npm install
# 使用fastmcp dev本地运行MCP服务器
npx fastmcp dev src/index.ts
# 测试CLI下载命令
node src/index.js download ./test-project
package.json和requirements.txt的依赖项解析器依赖上下文根据MIT许可证附带Commons条款许可。这意味着您可以:
✅ 允许:
❌ 不允许:
详情请参阅LICENSE文件中的完整许可文本和许可细节。
版权所有 © 2024 DarianB