使用说明
项目简介
TianGong-MCP-Server 是一个基于 Model Context Protocol (MCP) 标准构建的服务器端实现,旨在为大型语言模型 (LLM) 应用提供结构化的上下文信息和工具能力。该项目目前集成了一个强大的工具:Weaviate 混合搜索工具,允许 LLM 客户端通过该工具访问和查询 Weaviate 向量数据库中的信息,并支持上下文扩展,从而提升 LLM 在知识检索和问答等场景下的性能。
主要功能点
- MCP 服务器核心功能: 实现了 MCP 协议的基本框架,能够接收和处理来自 MCP 客户端的请求,并按照 MCP 协议规范进行响应。
- Weaviate 混合搜索工具: 集成 Weaviate 向量数据库的混合搜索功能,允许 LLM 客户端通过调用该工具,在指定的 Weaviate 集合中执行混合搜索(结合向量搜索和关键词搜索)。
- 上下文扩展: Weaviate 搜索工具支持上下文扩展功能,可以根据搜索结果自动扩展上下文范围,获取相关文档片段,为 LLM 提供更全面的背景信息。
- Stdio 传输协议: 目前服务器默认使用 Stdio (标准输入输出) 作为 MCP 客户端和服务器之间的通信协议,方便本地测试和部署。
安装步骤
- 安装 Node.js 环境: 确保你的系统中安装了 Node.js (推荐 v22 版本)。可以使用 nvm (Node Version Manager) 进行安装和管理,按照 README.md 中的指引操作:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash nvm install 22 nvm use - 安装项目依赖: 克隆仓库代码到本地后,进入项目根目录,运行以下命令安装项目依赖:
npm install - 更新依赖 (可选): 如果需要更新依赖包到最新版本,可以运行:
npm update && npm ci - 代码格式化 (可选): 为了保持代码风格一致,可以运行代码格式化工具:
npm run lint
服务器配置
MCP 客户端需要配置以下信息以连接 TianGong-MCP-Server。以下是基于 Stdio 传输协议的配置示例 (JSON 格式):
{ "serverName": "TianGong-MCP-Server", // MCP 服务器名称,与 src/index.ts 中 McpServer 构造函数的 name 字段一致 "command": "npm", // 启动服务器的命令,这里使用 npm "args": ["start"] // 启动服务器命令的参数,这里使用 "start" 运行 npm start }
配置说明:
- 'serverName': MCP 服务器的名称,用于客户端识别和区分不同的 MCP 服务器。
- 'command': 启动 MCP 服务器的可执行命令。由于项目使用 'npm start' 启动,因此这里配置为 'npm'。
- 'args': 传递给 'command' 的参数。'npm start' 命令的参数为 'start'。
注意: 请确保你的 MCP 客户端能够正确解析和使用以上 JSON 配置信息。
基本使用方法
-
启动 MCP 服务器: 在项目根目录下,运行以下命令启动 TianGong-MCP-Server (使用 Stdio 协议):
npm start服务器成功启动后,将监听标准输入,等待接收来自 MCP 客户端的请求。
-
配置 MCP 客户端: 在你的 MCP 客户端中,配置上述 服务器配置 JSON 信息,并确保客户端使用 Stdio 协议与服务器建立连接。
-
调用 Weaviate 工具: 当客户端成功连接到 TianGong-MCP-Server 后,可以通过 MCP 协议发送工具调用请求,使用 'Weaviate Hybrid Search with Extension' 工具进行 Weaviate 向量数据库的混合搜索。
工具的具体参数定义在 'src/tools/weaviate.ts' 文件中,包括 'collection', 'query', 'topK', 'extK' 等,客户端需要根据工具的参数定义构造正确的请求参数。
例如,客户端可以请求调用 'Weaviate Hybrid Search with Extension' 工具,并传入以下参数:
{ "tool_name": "Weaviate Hybrid Search with Extension", "parameters": { "collection": "your_weaviate_collection_name", "query": "用户查询内容", "topK": 10, "extK": 2 } }
前提条件:
- 确保本地运行了 Weaviate 向量数据库实例,并可通过 'localhost:8080' 和 'localhost:50051' 访问。
- Weaviate 中已创建相应的集合 (collection) 并导入了数据。
信息
分类
AI与计算