Skip to main content

A Model Context Protocol server for Yuque

Project description

语雀知识库管理 MCP 服务器

项目简介

本项目基于 FastMCP 框架,提供一个专门用于管理语雀知识库的 MCP 服务器。
该服务器支持自动识别并创建知识库分组,创建或更新文档,获取文档详情、文档列表及完整知识库目录,支持分页查询与结构化数据返回。
所有操作均基于语雀官方 API 实现。

环境配置

依赖安装

请确保已安装 Python 3.8+,并安装依赖包。
本项目主要依赖以下 Python 包:

  • fastmcp
  • starlette
  • requests
  • python-dotenv

可使用以下命令安装:

pip install fastmcp starlette requests python-dotenv

如果项目根目录有 requirements.txt 文件,也可使用:

pip install -r requirements.txt

环境变量配置

请在项目根目录创建 .env 文件,配置以下环境变量:

  • YUQUE_SPACE_SUBDOMAIN:语雀空间子域名(用于访问语雀空间的URL前缀,如 https://[SUBDOMAIN].yuque.com)
  • DEFAULT_API_TOKEN:默认API访问令牌(用于认证调用语雀API的权限)
  • DEFAULT_GROUP_LOGIN:默认群组(团队)别名(指定需要访问的语雀群组标识)
  • DEFAULT_BOOK_SLUG:默认知识库别名(语雀文档库的唯一标识符,用于定位具体文档库)

示例:

YUQUE_SPACE_SUBDOMAIN=your_space_subdomain_here
DEFAULT_API_TOKEN=your_api_token_here
DEFAULT_GROUP_LOGIN=your_group_login_here
DEFAULT_BOOK_SLUG=your_book_slug_here

此外,也可以通过mcp客户端请求头传递这些变量,示例配置文件如下:

{
    "mcpServers": {
       "yuque-mcp": {
          "url": "http://192.168.125.89:8000/mcp",
          "headers": {
              "YUQUE_SPACE_SUBDOMAIN": "www",
              "DEFAULT_API_TOKEN": "M4HeyBFsRmyNDsdfsdfsdf7ut3YFPX",
              "DEFAULT_GROUP_LOGIN": "oxsdf47",
              "DEFAULT_BOOK_SLUG": "vfgsd6"
            }
        }
    }
}

启动服务

运行服务器主程序 server.py,支持多种传输模式:

python server.py --transport streamable-http

可选传输模式:

  • streamable-http(默认):基于 HTTP 流的传输
  • sse:基于服务器发送事件(Server-Sent Events)
  • stdio:基于标准输入输出流

工具说明

服务器自动加载 tools/ 目录下的所有工具模块,主要包括:

  • create_yuque_group(name: str)
    创建语雀知识库中的分组(目录)。

    参数说明:

    • ame (str): 要创建的分组名称。该名称在当前知识库中应具有唯一性。
  • create_yuque_doc_in_group(...)
    在指定的语雀知识库中的指定分组下创建一个文档。如果该分组不存在,则会先创建该分组,再在其中创建文档。

    参数说明:

    • group_name (str): 分组名称。如果该分组不存在,将自动创建。
    • doc_title (str): 要创建的文档的标题。
    • doc_body (str): 文档的内容,支持 Markdown 格式。
  • get_yuque_doc_list(group_login, book_slug, offset, limit)
    获取知识库中的文档列表,支持分页。

  • get_yuque_doc_detail(...)
    获取指定文档的详细内容。

  • get_yuque_repo_toc(...)
    获取知识库的完整目录结构。

使用示例

启动服务器并使用默认传输:

python server.py

指定传输模式为 SSE:

python server.py --transport sse

语雀文档重要的概念

接口域名为 https://www.yuque.com,但要注意访问空间内资源需要使用该空间的子域名。

网址路径:

语雀的网址有一定的格式,比如https://www.yuque.com/yuque/developer/api。 这里面包含了用户或团队的名称、知识库的标识,以及文档的标识。

https://www.yuque.com/yuque/developer/api        [文档完整访问路径]
                        |
                        +-- yuque/               [团队或用户的登录名(group_login)]
                                |
                                +-- developer/   [知识库的标识(book_slug)]
                                       |
                                       +-- api   [文档的标识(doc_slug)]

语雀文档身份认证

语雀所有的开放 API 都需要 Token 验证之后才能访问。

个人用户认证 超级会员专享权益

获取 Token 可通过点击语雀的个人头像,并进入 个人设置 页面拿到,如下图:

image

企业团队身份认证 旗舰版空间专享权益

空间内的团队,可进入团队设置页面进行获取(仅旗舰版空间可使用),如下图。 image

贡献指南

欢迎提交 Issue 和 Pull Request,改进功能或修复问题。

联系方式

如有疑问,请联系项目维护者。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yuque_mcp-0.1.0.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

yuque_mcp-0.1.0-py3-none-any.whl (15.9 kB view details)

Uploaded Python 3

File details

Details for the file yuque_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: yuque_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for yuque_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 84d7cff7f67fca99d05f5d2fd03aca93f6682f4c69ac7327fc65e74b2a60f120
MD5 206ba8a764a46c171d69ed29d33b51d5
BLAKE2b-256 ad27d68308c44d97a0f29eb3612d18a5faf574b65128dc4ccea7d5a266423b2a

See more details on using hashes here.

File details

Details for the file yuque_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: yuque_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 15.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for yuque_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4850940637ac826f135e383f915357ed8df3ace0795ab98791fb11b8c562ab35
MD5 212b3c08c34d2f54feb1084b97856e74
BLAKE2b-256 503cc6a77e0c8da17a950c0ce3ea4b2448269501bf437d3df5ee7cd479a1ae71

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page