使用说明

项目简介

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 客户端和服务器之间的通信协议,方便本地测试和部署。

安装步骤

  1. 安装 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
  2. 安装项目依赖: 克隆仓库代码到本地后,进入项目根目录,运行以下命令安装项目依赖:
    npm install
  3. 更新依赖 (可选): 如果需要更新依赖包到最新版本,可以运行:
    npm update && npm ci
  4. 代码格式化 (可选): 为了保持代码风格一致,可以运行代码格式化工具:
    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 配置信息。

基本使用方法

  1. 启动 MCP 服务器: 在项目根目录下,运行以下命令启动 TianGong-MCP-Server (使用 Stdio 协议):

    npm start

    服务器成功启动后,将监听标准输入,等待接收来自 MCP 客户端的请求。

  2. 配置 MCP 客户端: 在你的 MCP 客户端中,配置上述 服务器配置 JSON 信息,并确保客户端使用 Stdio 协议与服务器建立连接。

  3. 调用 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与计算