使用说明

项目简介

本项目是一个 MCP (Model Context Protocol) 服务器,旨在为 AI 模型提供与语雀知识库平台进行交互的能力。通过此服务器,AI 模型可以安全、可控地访问和操作语雀中的知识库、文档和用户信息,从而实现更智能的知识管理和应用集成。

主要功能点

  • 用户与文档管理:
    • 获取当前用户信息
    • 获取用户知识库和文档列表
    • 获取、创建、更新、删除语雀文档
    • 在语雀中进行内容搜索
  • 团队统计分析:
    • 获取团队、成员、知识库和文档的统计数据,用于分析和监控团队知识库使用情况
  • 文档内容分块:
    • 支持将长文档分割成多个块,方便 AI 模型处理和理解大型文档内容
  • 灵活的部署方式:
    • 支持 HTTP 和 CLI (stdio) 两种服务器模式
    • 提供 Docker 部署方案,方便容器化部署
  • SSE 协议支持:
    • 通过 SSE (Server-Sent Events) 协议与 MCP 客户端通信,实现实时数据推送

安装步骤

  1. 前提条件:

    • 确保已安装 Node.js 18 或更高版本。
    • 拥有语雀账号并获取 API 令牌 (Token)。
  2. 克隆仓库:

    git clone https://github.com/HenryHaoson/Yuque-MCP-Server.git
    cd Yuque-MCP-Server
  3. 安装依赖:

    npm install
  4. 配置环境变量:

    • 复制 '.env.example' 文件并重命名为 '.env'。
    • 打开 '.env' 文件,根据需要配置以下环境变量:
      • 'YUQUE_API_TOKEN': 语雀 API 令牌 (可选,也可在客户端连接时通过参数传递)。
      • 'YUQUE_API_BASE_URL': 语雀 API 基础 URL,默认为 'https://www.yuque.com/api/v2'。
      • 'PORT': 服务器 HTTP 模式运行时监听的端口,默认为 '3000'。

服务器配置

MCP 客户端需要配置服务器的启动命令和参数才能连接到语雀 MCP 服务器。以下是基于本项目提供的 'package.json' 和 'README.md' 生成的服务器配置信息(JSON 格式):

HTTP 服务器模式配置:

{
  "serverName": "Yuque-MCP-Server-HTTP",
  "command": "node",
  "args": [
    "dist/index.js"
  ],
  "transports": [
    {
      "type": "sse",
      "url": "http://localhost:3000/sse"
    }
  ],
  "description": "使用 HTTP 模式启动语雀 MCP 服务器,通过 SSE 协议与客户端通信。"
}

参数说明:

  • 'serverName': 服务器名称,客户端用于标识连接的服务器。
  • 'command': 启动服务器的命令,这里使用 'node' 运行 Node.js 程序。
  • 'args': 传递给 'node' 命令的参数,'dist/index.js' 是编译后的 HTTP 服务器入口文件。
  • 'transports': 配置服务器支持的传输协议。
    • 'type': 传输协议类型,这里为 'sse' (Server-Sent Events)。
    • 'url': SSE 端点 URL,客户端通过此 URL 建立 SSE 连接。注意 'localhost:3000' 需要替换为实际服务器地址和端口。
  • 'description': 服务器配置的描述信息。

CLI Stdio 模式配置:

{
  "serverName": "Yuque-MCP-Server-CLI",
  "command": "node",
  "args": [
    "dist/cli.js"
  ],
  "transports": [
    {
      "type": "stdio"
    }
  ],
  "description": "使用 CLI (stdio) 模式启动语雀 MCP 服务器,通过标准输入输出与客户端通信。"
}

参数说明:

  • 'serverName': 服务器名称,客户端用于标识连接的服务器。
  • 'command': 启动服务器的命令,这里使用 'node' 运行 Node.js 程序。
  • 'args': 传递给 'node' 命令的参数,'dist/cli.js' 是编译后的 CLI 服务器入口文件。
  • 'transports': 配置服务器支持的传输协议。
    • 'type': 传输协议类型,这里为 'stdio' (标准输入输出)。
  • 'description': 服务器配置的描述信息。

注意:

  • 以上 'command' 和 'args' 配置假定您已在项目根目录下执行 'npm run build' 命令,生成了 'dist' 目录及编译后的 JavaScript 文件。
  • 如果您在开发模式下运行,可以直接使用 'npm run dev' 和 'npm run dev:cli' 中定义的命令,但 MCP 客户端配置应指向编译后的 'dist' 目录下的文件,以确保生产环境的稳定性。
  • 'url' 中的 'localhost:3000' 需要根据实际服务器部署情况进行修改,例如部署到远程服务器时,需要替换为服务器的 IP 地址或域名。

基本使用方法

  1. 启动服务器:

    • 开发模式:
      • HTTP 模式: 'npm run dev'
      • CLI 模式: 'npm run dev:cli'
    • 生产模式:
      • 构建项目: 'npm run build'
      • HTTP 模式: 'npm run start'
      • CLI 模式: 'npm run start:cli'
  2. 连接 MCP 客户端:

    • 根据您选择的服务器模式 (HTTP 或 CLI),配置 MCP 客户端连接到相应的服务器地址或命令。
    • 对于 HTTP 模式,客户端通常需要连接到 'http://<服务器地址>:<端口>/sse' 端点。
    • 对于 CLI 模式,客户端通常通过标准输入输出与服务器进程通信。
  3. 使用工具:

    • 服务器启动成功后,MCP 客户端可以调用服务器提供的工具,与语雀知识库进行交互。
    • 可用工具包括:
      • 'get_current_user'
      • 'get_user_docs'
      • 'get_user_repos'
      • 'get_repo_docs'
      • 'get_doc'
      • 'create_doc'
      • 'update_doc'
      • 'delete_doc'
      • 'search'
      • 'get_group_statistics'
      • 'get_group_member_statistics'
      • 'get_group_book_statistics'
      • 'get_group_doc_statistics'
      • 'get_doc_chunks_info'
    • 工具的具体参数和使用方法请参考 'src/server.ts' 文件中 'registerTools' 方法的定义和工具描述。
  4. 通过 SSE 端点传递 API Token:

    • 在 HTTP 模式下,您可以通过 SSE 端点的查询参数 'accessToken' 传递语雀 API Token,例如: 'http://localhost:3000/sse?accessToken=your_yuque_api_token_here'
    • 通过查询参数传递的 Token 优先级高于 '.env' 文件中配置的 'YUQUE_API_TOKEN'。

Docker 部署

本项目提供了 Dockerfile 和 docker-compose.yml 文件,方便使用 Docker 进行部署。具体步骤请参考仓库 README.md 文档中 "使用 Docker 部署" 章节。

信息

分类

生产力应用