项目简介

本项目是一个 MCP (Model Context Protocol) 服务工具集合,旨在通过标准化的 MCP 协议向 LLM 客户端提供丰富的上下文信息和功能。它包含多个独立的 MCP 服务实现示例,用于集成不同的外部能力,如调用第三方 AI 模型 API (如 Hugging Face, Dify) 或提供特定的数据资源。

主要功能点

  • 工具注册与调用: 封装各类外部服务和自定义逻辑为 MCP 工具,允许 LLM 通过标准的 JSON-RPC 请求进行调用。例如,提供了用于访问 Dify 平台对话、生成、历史记录等功能的工具,以及用于调用 Hugging Face 模型执行文本生成、分类、图像处理、语音识别等任务的工具,还有简单的天气查询和资源列表工具。
  • 资源托管与访问: 提供结构化的资源(如文档、日志等)列表和读取能力,使得 LLM 可以获取必要的上下文信息。
  • 多种传输协议支持: 示例代码展示了如何使用 Stdio, SSE (Server-Sent Events) 和 Streamable HTTP 等 MCP 支持的传输协议与客户端通信。
  • 能力声明: 服务端声明其支持的工具、资源、Prompt 等能力,供客户端发现。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/JQSC/mcp-server-hub.git
    cd mcp-server-hub
  2. 安装依赖: 项目使用 npm 管理依赖。
    npm install
  3. 配置环境变量: 如果需要使用集成 Hugging Face 或 Dify API 的服务,请在项目根目录创建 '.env' 文件,并根据你打算运行的服务配置相应的 API 密钥和基础 URL。
    # Hugging Face API 密钥 (如果使用 Hugging Face 服务)
    HUGGINGFACE_API_KEY=your_huggingface_api_key
    
    # Dify API 配置 (如果使用 Dify 服务)
    DIFY_API_KEY=your_dify_api_key
    DIFY_BASE_URL=your_dify_base_url

服务器配置

本项目包含多个独立的 MCP 服务器实现示例,每个示例通常对应 'src/mcpServer/' 目录下的一个文件。MCP 客户端需要知道具体要连接的服务器以及其启动方式。

对于使用 Stdio 传输协议 的服务器(例如 'src/mcpServer/high-level/dify_mcp.ts'),MCP 客户端通常需要在其配置中指定启动服务器进程的命令和参数。

以下是连接到示例 Dify MCP 服务器的 MCP 客户端配置片段(配置格式取决于具体客户端,这里提供核心信息):

{
  "server": {
    "name": "dify-mcp-server-stdio",
    // 客户端用于启动此MCP服务器进程的命令
    "command": "node",
    // 传递给启动命令的参数列表。
    // MCP服务器的可执行文件路径。请确保该路径在客户端环境中是正确的,
    // 通常是仓库克隆后的相对路径,且需要先运行 'npm install' 和 TypeScript 编译。
    // 这里的路径假设 TypeScript 文件已被编译为同名 .js 文件。
    "args": ["src/mcpServer/high-level/dify_mcp.js"]
    // 其他可能的配置项,如initializationOptions等
  }
}

对于使用 HTTP (Streamable HTTP/SSE) 传输协议的服务器(例如 'src/mcpServer/low-level/sseAndStreamableHttpCompatibleServer.ts'),MCP 客户端需要在其配置中指定服务器的 URL。

以下是连接到示例 HTTP/SSE/Streamable HTTP 服务器的 MCP 客户端配置片段:

{
  "server": {
    "name": "http-compatible-mcp-server",
    // MCP服务器的HTTP/S URL
    "url": "http://localhost:3000/mcp"
    // 其他可能的配置项,如headers, reconnectionOptions等
  }
}

注意: 实际使用时,你需要根据你希望运行的具体服务器文件及其所需的传输协议来配置你的 MCP 客户端。运行前需要先编译 TypeScript 文件('npm run build' 或使用 'ts-node' 直接运行 '.ts' 文件,具体取决于客户端环境)。

基本使用方法

  1. 启动 MCP 服务器: 根据你希望使用的服务,运行对应的服务器启动脚本。例如,要启动 Dify MCP 服务:

    # 假设 package.json 中有相应的启动命令,或者直接运行编译后的js文件
    npm run start:dify # 如果 package.json 定义了此脚本
    # 或者直接运行:
    node src/mcpServer/high-level/dify_mcp.js

    或者启动 Streamable HTTP 示例服务器:

    node src/mcpServer/low-level/sseAndStreamableHttpCompatibleServer.js

    服务器启动后,通常会在控制台输出监听的端口或 Stdio 运行提示。

  2. 配置并运行 MCP 客户端: 使用一个支持 MCP 协议的客户端应用程序。根据上一步启动的服务器类型和地址,配置客户端使其能够连接到该服务器。

    • 如果服务器运行在 Stdio 上,客户端需要配置服务器脚本的执行命令。
    • 如果服务器运行在 HTTP 端口上,客户端需要配置服务器的 URL。
  3. 通过客户端与服务器交互: 连接成功后,客户端可以通过发送 JSON-RPC 请求来:

    • 列出服务器提供的工具 ('tools/list')。
    • 调用特定的工具执行任务 ('tools/call'),例如调用 Dify 工具进行对话,或调用 Hugging Face 工具生成文本。
    • 列出服务器提供的资源 ('resources/list')。
    • 读取资源的具体内容 ('resources/read')。
    • (如果服务器支持并声明了)列出 Prompt 模板 ('prompts/list') 或获取特定的 Prompt ('prompts/get')。 客户端也会接收服务器推送的通知,例如日志信息或资源列表变更通知。

信息

分类

AI与计算