NexusCode MCP Knowledge Server
使用说明
- 项目简介
- NexusCode 通过 MCP 服务器将代码仓库中的上下文信息、可调用的工具以及 Prompt 模板暴露给 AI 客户端。核心目标是以统一、可扩展的方式提供资源管理、工具执行和提示渲染能力,方便大语言模型进行代码级推理和操作。
- 主要功能点
- 资源管理与数据访问:提供对代码块、符号、仓库等资源的索引、检索和访问能力,支持向量与关键词混合检索。
- 工具注册与执行:实现一组 MCP 工具,使 LLM 能通过标准接口调用外部功能(如代码搜索、符号查询、计划与问答等)。
- 提示模板与交互:定义并渲染 Prompt 模板,支持多种交互模式,便于 LLM 与系统进行可控对话与任务执行。
- JSON-RPC 与 SSE/WebSocket:通过 JSON-RPC 进行请求/响应,SSE/WebSocket 提供流式交互,支持长连接与事件推送。
- 会话与能力声明:维护会话状态、声明服务器能力,并对访问进行授权、审计与日志记录。
- 多传输协议与扩展性:设计支持多种传输协议,具备横向扩展能力以应对大规模并发。
- 安装步骤
- 环境准备
- 选择合适的 Python 3.11+ 运行环境,确保网络可访问凭据源。
- 获取代码
- 克隆仓库并进入项目根目录。
- 安装依赖
- 使用项目的依赖清单安装所需包(如 FastAPI、SQLAlchemy、Voyage AI 客户端、Stem 等组件)。
- 配置环境变量
- 根据项目文档提供的示例 .env,设置关键变量,例如 GitHub 访问令牌、Webhook 秘钥、数据库连接字符串、Redis 连接、Voyage API Key、Anthropic API Key、JWT 秘钥等。
- 启动依赖服务
- 使用 Docker Compose 启动 PostgreSQL 与 Redis(如 docker compose up postgres redis -d)。
- 启动 MCP 服务器
- 使用执行命令启动 MCP 服务(示例:uvicorn src.mcp.server:app --host 0.0.0.0 --port 8000 --reload,需根据实际入口调整)。
- 连接客户端
- MCP 客户端通过 https://<服务器地址>:8000/mcp/sse(或 WebSocket) 获取服务器能力、发起资源/工具/提示的请求。
- 环境准备
- 服务器配置(给 MCP 客户端的连接配置,格式为 JSON,字段示例说明如下)
{
"server_name": "NexusCode-MCP-Server",
"command": "uvicorn",
"args": [
"src.mcp.server:app",
"--host", "0.0.0.0",
"--port", "8000",
"--reload"
],
"description": "启动 MCP 服务器的命令及参数,客户端用来与 MCP 服务建立连接"
}
说明:
- server_name 指 MCP 服务器的名称,便于客户端在多服务环境中区分。
- command 与 args 为客户端需要的启动信息(MCP 客户端需要读取该信息以连接服务器;实际的服务器端实现细节由仓库内实现决定)。
- 基本使用方法
- 向 MCP 服务器发送资源读取、工具调用或 Prompt 获取请求,服务器返回相应的 JSON-RPC 响应或通过 SSE/WebSocket 推送事件。
- 使用者可通过标准客户端(如 Claude Desktop 的 MCP 支持、LangGraph、自带测试用例等)对接,进行模版化对话、代码检索、实现计划和问答等场景。
- 在本地开发环境中,确保数据库、缓存和 embedding 服务可用后,即可通过 API 路径和 MCP 流式接口进行交互。