Nancy Brain MCP 服务器
使用 Nancy Brain MCP 服务器
-
项目简介
- 该项目实现了一个基于 MCP(Model Context Protocol)的后端服务,用以向 MCP 客户端提供资源读取、工具执行、以及上下文/提示相关的能力。它通过一个 MCP 服务器核心组件暴露若干工具(Tool),并通过一个 RPC 机制接收请求、返回标准化响应。服务还包含对资源树、版本信息、健康状态等的支持,以及对运行时权重的动态调整能力。
-
主要功能点
- MCP 服务器核心:实现了 MCP 的基本能力集合,包括工具注册、工具执行、查询树形结构、检索权重设置、系统状态查询等。
- 与 RAG 后端的集成:对接 Nancy Brain 的检索服务(RAGService),实现对查询、文档检索、分段检索、以及嵌入索引的交互。
- 支持多种传输方式:通过标准的 stdio(命令行/调用流程)、HTTP(REST 入口)等方式与 MCP 客户端对接。
- 安全与鉴权:提供基本的 Bearer Token/API Key 认证支持,确保 MCP 客户端访问的安全性。
- 易于扩展:提供工具列表、执行入口、树结构浏览、以及权重设置等可扩展点,便于接入更多外部工具或自定义行为。
-
安装步骤
- 安装依赖(项目已包含所需模块,不一定需要额外安装全部依赖):
- 确保 Python 环境就绪,推荐使用虚拟环境。
- 安装依赖(若希望使用 HTTP/API 模式,需要安装 FastAPI、txtai、streamlit 等组件;若仅使用 MCP stdio 入口,主要依赖已在代码中引入的组件)。
- 下载代码并进入项目目录后,直接执行以下任选方式启动:
- 通过 MCP 启动脚本(推荐:用于 MCP 客户端对接的标准入口)
- python run_mcp_server.py
- 通过 HTTP+stdio 双模式启动(若需要同时支持 HTTP API 与 MCP stdio 客户端)
- 运行脚本时设置参数,或使用 run_mcp_server.py 内部配置来同时启用两种传输模式
- 通过 MCP 启动脚本(推荐:用于 MCP 客户端对接的标准入口)
- 注意:
- 服务器依赖的配置文件应正确存在,例如 config/repositories.yml、knowledge_base/embeddings 等路径应已正确创建和填充(或在启动前完成知识库构建过程)。
- 若要使用权重、模型、或 dual embeddings,请确保对应的权重文件、环境变量等配置就绪。
- 安装依赖(项目已包含所需模块,不一定需要额外安装全部依赖):
-
服务器配置(MCP 客户端配置要求) 注:以下为 MCP 客户端需要的配置信息格式示例(JSON),用于与 Nancy Brain 的 MCP 服务器建立连接。该配置描述了服务器名称、执行命令以及参数等信息,便于 MCP 客户端在启动时加载并连接到服务器。请按实际部署路径与参数填充。
{ "server_name": "nancy-brain", "command": "python", "args": [ "/path/to/run_mcp_server.py" ], "env": { "PYTHONPATH": "/path/to/nancy_brain", "MCP_PORT": "8000", "NB_SECRET_KEY": "your-secret-key" // 如使用 HTTP/API 认证,请提供合适的密钥 }, "transport": "stdio", "description": "Nancy Brain MCP Server(通过 stdio 转换为 MCP 的工具服务)" }
-
基本使用方法
- 启动后,客户端可通过 MCP 访问 Nancy Brain 提供的工具:
- search_knowledge_base:按 query 检索知识库中的文档/代码等片段
- retrieve_document_passage:按 doc_id 与行范围检索文本片段
- retrieve_multiple_passages:批量检索
- explore_document_tree:浏览知识库树状结构
- set_retrieval_weights:设置文档检索权重
- get_system_status:获取系统状态与健康信息
- MCP 客户端在发送请求时,需遵循 JSON-RPC 约定,向服务器发起请求,接收到的将是结构化的 JSON-RPC 响应或通知。
- 启动后,客户端可通过 MCP 访问 Nancy Brain 提供的工具:
-
运行与调试要点
- 运行环境要具备 Python、以及若使用嵌入模型/向量检索的依赖(txtai、torch、transformers 等),但尽量在测试阶段通过 mocking/替身避免重度依赖。
- 可以通过 run_mcp_server.py 及其参数进行快速启动与试验,确保 knowledge_base、config 路径正确无误。
- 如遇到未初始化的 RAG 服务,可通过健康/版本等端点进行自检,确保流程正确。
-
备注
- 该实现不仅仅是一个简单示例,而是包含了完整的 MCP 服务端实现、工具注册、以及对外暴露能力的综合实现,且提供了测试用例和多种集成使用的路径,较为贴合 MCP 服务器的完整实现需求。