mcp-server-context-search-dcd222
v0.1.0
Published
MCP Server for codebase context search and retrieval
Maintainers
Readme
MCP Server Context Search
一个强大的 Model Context Protocol (MCP) 服务器,提供代码库上下文搜索和分析功能。
功能特性
- 🔍 语义搜索: 基于向量的代码语义搜索
- 🌳 AST 分析: 抽象语法树分析和查询
- 📊 关系分析: 代码依赖关系和调用图分析
- 🗂️ 项目管理: 多项目隔离和管理
- 📡 SSE 支持: Server-Sent Events 实时通信
- 🔧 丰富工具: 25+ 种代码分析工具
安装和使用
作为 MCP 服务器使用
在你的 MCP 客户端配置中添加:
{
"mcpServers": {
"context-search": {
"command": "npx",
"args": ["-y", "mcp-server-context-search"],
"env": {
"PORT": "8888",
"NEO4J_URI": "bolt://localhost:7687",
"NEO4J_USERNAME": "neo4j",
"NEO4J_PASSWORD": "my-password",
"LITELLM_PROXY_API_KEY": "your_api_key_here",
"LITELLM_PROXY_API_BASE": "your_api_base_url",
"EMBEDDING_MODEL": "your_embedding_model"
}
}
}
}本地开发
# 安装依赖
npm install
# 开发模式运行
npm run start:dev
# 构建项目
npm run build
# 生产模式运行
npm run start:prod
# CLI 模式运行
npm run start:cli环境变量
| 变量名 | 描述 | 默认值 |
|--------|------|--------|
| PORT | 服务器端口 | 8888 |
| NEO4J_URI | Neo4j 数据库连接地址 | bolt://localhost:7687 |
| NEO4J_USERNAME | Neo4j 用户名 | neo4j |
| NEO4J_PASSWORD | Neo4j 密码 | my-password |
| LITELLM_PROXY_API_KEY | LiteLLM API 密钥 | - |
| LITELLM_PROXY_API_BASE | LiteLLM API 基础URL | - |
| EMBEDDING_MODEL | 嵌入模型名称 | - |
| RERANK_MODEL | 重排序模型名称 | - |
API 端点
GET /- 健康检查GET /see- SSE 连接端点GET /mcp/tools- 获取可用工具列表POST /mcp/tools/call- 调用 MCP 工具
可用工具
项目管理
create-project- 创建新项目list-projects- 列出所有项目get-project-info- 获取项目信息delete-project- 删除项目add-documents-to-project- 向项目添加文档clear-project-documents- 清空项目文档
代码搜索
retrieve-codebase-context- 检索代码库上下文search-code-semantically- 语义搜索代码initialize-codebase-index- 初始化代码库索引get-retrieval-service-status- 获取服务状态clear-vector-store- 清空向量存储
AST 分析
ast-find-nodes-by-type- 按类型查找 AST 节点ast-find-function-calls- 查找函数调用关系ast-find-inheritance- 查找继承关系ast-find-circular-dependencies- 查找循环依赖ast-query-relationships- 查询节点关系ast-find-related-nodes- 查找相关节点ast-find-file-nodes- 查找文件节点ast-find-dependency-path- 查找依赖路径ast-get-project-stats- 获取项目统计ast-search-nodes- 搜索节点ast-custom-query- 自定义 Cypher 查询
自定义解析器
parse-project-with-custom-parser- 解析项目parse-single-file-custom- 解析单个文件get-custom-parser-stats- 获取解析器统计find-function-definition- 查找函数定义
代码编辑
apply-diff-edit- 应用差异补丁
查看完整工具列表和使用方法请访问 /mcp/tools 端点。
使用示例
1. 创建项目并索引代码库
# 通过 MCP 客户端调用
{
"tool": "create-project",
"arguments": {
"projectId": "my-project",
"name": "My Project",
"description": "项目描述"
}
}
{
"tool": "initialize-codebase-index",
"arguments": {
"projectId": "my-project",
"workspacePath": "/path/to/your/project"
}
}2. 搜索代码
{
"tool": "retrieve-codebase-context",
"arguments": {
"projectId": "my-project",
"query": "用户认证相关的代码"
}
}3. AST 分析
{
"tool": "ast-find-function-calls",
"arguments": {
"projectId": "my-project",
"functionName": "authenticate"
}
}支持的文件类型
- TypeScript/JavaScript:
.ts,.js,.tsx,.jsx - Python:
.py - Java:
.java - C/C++:
.cpp,.c,.h,.hpp - 其他语言和配置文件
许可证
MIT License
