UNPKG

mcp-server-context-search-dcd222

Version:
179 lines (142 loc) 4.32 kB
# MCP Server Context Search 一个强大的 Model Context Protocol (MCP) 服务器,提供代码库上下文搜索和分析功能。 ## 功能特性 - 🔍 **语义搜索**: 基于向量的代码语义搜索 - 🌳 **AST 分析**: 抽象语法树分析和查询 - 📊 **关系分析**: 代码依赖关系和调用图分析 - 🗂️ **项目管理**: 多项目隔离和管理 - 📡 **SSE 支持**: Server-Sent Events 实时通信 - 🔧 **丰富工具**: 25+ 种代码分析工具 ## 安装和使用 ### 作为 MCP 服务器使用 在你的 MCP 客户端配置中添加: ```json { "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" } } } } ``` ### 本地开发 ```bash # 安装依赖 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. 创建项目并索引代码库 ```bash # 通过 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. 搜索代码 ```bash { "tool": "retrieve-codebase-context", "arguments": { "projectId": "my-project", "query": "用户认证相关的代码" } } ``` ### 3. AST 分析 ```bash { "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