npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

yuque-ai-mcp

v2.7.9

Published

Full-featured Yuque MCP Server — 62 fine-grained tools covering the entire Yuque OpenAPI

Readme


A full-featured Yuque (语雀) MCP Server built on the Model Context Protocol. Provides 63 fine-grained tools across 15 domains — every Yuque OpenAPI endpoint as a dedicated tool.

Why

  • 19 → 63 tools — 3x more coverage than the official yuque-mcp-server
  • Dual transport — stdio + HTTP SSE, shared registry, zero downtime on reload
  • Modular architecture — 15 domains, barrel exports, single source of truth registry
  • Full API coverage — group, recycle, upload, statistics, versions, boards — all the missing pieces
  • Skill layer — 63 usage guides for AI agents

Table of Contents

Quick Start

cd server
npm install
npm run build

# Copy config template
cp config/config.example.json config/config.json
# Edit config.json with your Yuque API token

# Run
npm start              # stdio mode
npm run dev:http       # HTTP SSE mode (http://localhost:3099)

Note: npm run dev:http uses tsx for hot-reload during development.

Tool Overview

| Domain | Tools | Highlights | |--------|-------|------------| | doc | 15 | CRUD, versions, diff, batch get, import URL/file, cross-book copy, export, resource download | | repo | 8 | CRUD, batch get, cross-book copy, full export (TOC-structure + INDEX/GRAPH) | | toc | 3 | Get, update, batch update (createTitle/appendNode/removeNode/moveNode) | | search | 3 | General search + RAG-enhanced search + Cookie web search | | user | 3 | User info, heartbeat, group list | | group | 3 | Member list, role change, delete member | | statistic | 4 | Group/member/repo/doc statistics | | note | 4 | CRUD + soft-delete/restore | | recycle | 3 | List, restore, destroy (Cookie auth) | | upload | 1 | File upload to Yuque CDN (Cookie auth) | | board | 3 | Mindmap, flowchart, architecture diagram | | mine | 2 | Book stacks, editor center (Cookie auth) | | rss | 3 | Source list, fetch + dedup + save, schedule analysis | | crawler | 4 | Fetch, CSS extract, dedup save, schedule analysis | | kv | 4 | Get, set, delete, list — incremental sharding, 250KB/doc limit | | Total | 63 | |

All 63 Tools

| Tool | Domain | Description | |------|--------|-------------| | yuque_hello | user | 心跳检测,验证 Token 有效性 | | yuque_get_user | user | 获取当前 Token 的用户详情 | | yuque_get_user_groups | user | 获取用户所属的团队列表 | | yuque_search | search | 通用搜索文档/知识库 | | yuque_rag_search | search | RAG 检索增强搜索 + 自动获取文档内容 | | yuque_web_search | search | Cookie 态 Web 搜索,返回完整文档对象 + 精确总数 + 高亮摘要 | | yuque_get_group_users | group | 获取团队成员列表 | | yuque_update_group_user | group | 变更团队成员角色 | | yuque_delete_group_user | group | 删除团队成员 | | yuque_list_docs | doc | 获取知识库文档列表 | | yuque_create_doc | doc | 创建文档 | | yuque_get_doc | doc | 获取文档详情(支持 ID 或 slug) | | yuque_update_doc | doc | 更新文档 | | yuque_delete_doc | doc | 删除文档 | | yuque_batch_get_docs | doc | 批量获取文档详情(max 20) | | yuque_get_doc_versions | doc | 获取文档历史版本列表 | | yuque_get_doc_version_detail | doc | 获取文档历史版本详情 | | yuque_diff_doc_versions | doc | 对比两个版本的行级差异 | | yuque_copy_doc | doc | 单文档跨库复制 | | yuque_export_doc | doc | 导出单篇文档为 Markdown 文件 | | yuque_export_resources | doc | 下载文档中的图片/附件到本地 | | yuque_import_url | doc | 从网页 URL 导入文档 | | yuque_import_file | doc | 从本地文件导入文档 | | yuque_embed_url | doc | 生成文档嵌入阅读器 URL | | yuque_get_toc | toc | 获取知识库目录 | | yuque_update_toc | toc | 更新知识库目录 | | yuque_batch_update_toc | toc | 批量更新目录(createTitle/appendNode/removeNode/moveNode/prependDoc) | | yuque_list_repos | repo | 获取知识库列表(用户/团队) | | yuque_create_repo | repo | 创建知识库 | | yuque_get_repo | repo | 获取知识库详情 | | yuque_update_repo | repo | 更新知识库 | | yuque_delete_repo | repo | 删除知识库 | | yuque_batch_get_repos | repo | 批量获取知识库详情(max 20) | | yuque_copy_repo | repo | 批量跨库复制(LLM 分类 + 目录重建) | | yuque_export_repo | repo | 批量导出知识库为 Markdown(按 TOC 目录结构) | | yuque_get_group_statistics | statistic | 获取团队汇总统计数据 | | yuque_get_member_statistics | statistic | 获取团队成员统计数据 | | yuque_get_book_statistics | statistic | 获取团队知识库统计数据 | | yuque_get_doc_statistics | statistic | 获取团队文档统计数据 | | yuque_list_notes | note | 获取小记列表 | | yuque_get_note | note | 获取小记详情 | | yuque_create_note | note | 创建小记 | | yuque_update_note | note | 更新小记 | | yuque_list_recycles | recycle | 列出回收站项目 | | yuque_restore_recycle | recycle | 恢复回收站项目 | | yuque_destroy_recycle | recycle | 彻底删除回收站项目 | | yuque_upload_attachment | upload | 上传文件到语雀 CDN | | yuque_get_board | board | 获取文档中的画板资源 | | yuque_create_board | board | 在文档中创建画板资源 | | yuque_update_board | board | 更新文档中的画板资源 | | yuque_rss_list_sources | rss | 列出所有可用 RSS 数据源及 feed 类型 | | yuque_rss_fetch | rss | 抓取 RSS/Atom Feed,解析后去重写入语雀 | | yuque_rss_schedule | rss | 分析更新频率,生成推荐抓取时间 | | yuque_crawl_fetch | crawler | 抓取网页原始 HTML | | yuque_crawl_extract | crawler | CSS 选择器从 HTML 提取内容 | | yuque_crawl_save | crawler | 去重 + 写入语雀 | | yuque_crawl_schedule | crawler | 分析爬虫抓取频率,生成推荐抓取时间 | | yuque_get_book_stacks | mine | 获取知识库分组(书架)列表 | | yuque_get_editor_center | mine | 获取个人编辑中心全景数据 | | yuque_kv_get | kv | 读取 KV 命名空间的完整 JSON map(分片合并) | | yuque_kv_set | kv | 增量设置 key-value,超 250KB 自动分片 | | yuque_kv_delete | kv | 遍历分片查找并删除 key | | yuque_kv_list | kv | 列出已配置的 KV 命名空间 |

See SKILL.md or yuque-ai-skills for full tool documentation with parameters and examples.

vs Official

| Feature | Official yuque-mcp-server | yuque-ai-mcp | |---------|--------------------------|--------------| | Tools | 19 | 63 | | Granularity | Coarse | Fine-grained (1 tool / endpoint) | | Group, Recycle, Upload, Statistics | ❌ | ✅ | | Versions, Diff, Cross-book Copy | ❌ | ✅ | | Transport | stdio only | stdio + HTTP SSE | | Config | Env var | config.json (token + cookie) | | Skill Layer | ❌ | ✅ 63 guides |

Architecture

server/src/
├── common/              # Shared: config, errors, types, format, validate,
│                        # api-client, web-request, register-tools, copy/export/schedule common,
│                        # repo-capacity (auto-expand), toc-cache (configurable TTL), text-utils
├── user/ search/ group/ doc/ toc/ repo/ statistic/
├── note/ recycle/ upload/ board/ rss/ crawler/ mine/ kv/
├── index.ts             # stdio entry
└── http.ts              # HTTP SSE entry (port 3099)

Configuration

{
  "token": "Your Yuque API Token",
  "api_base": "https://www.yuque.com/api/v2",
  "cookie": "Optional, for recycle/upload features",
  "ctoken": "Optional, extracted from Cookie",
  "kv": { "enabled": true },
  "rss": {
    "enabled": true,
    "sources": {
      "cnblogs": {
        "name": "博客园",
        "slug_pattern": "/p/(\\d+)",
        "feeds": {
          "sitehome": { "label": "首页", "url": "https://feed.cnblogs.com/blog/sitehome/rss" }
        }
      }
    },
    "namespaces": {
      "cnblogs": {
        "book_id": [0],
        "kv_slugs": [],
        "schedule_slugs": []
      }
    }
  },
  "crawler": {
    "enabled": true,
    "namespaces": {
      "my-source": {
        "book_id": [0],
        "kv_slugs": [],
        "schedule_slugs": []
      }
    }
  }
}
  • book_id: Target repo ID array — last element is the active repo. Auto-expands when full (5000 docs).
  • kv_slugs: KV dedup shard docs ({book_id}/{doc_id} format)
  • schedule_slugs: Schedule config docs
  • toc_cache_ttl_minutes: TOC cache TTL in minutes (default 60). Set higher to reduce API calls, lower for fresher data.

Error Handling

Unified error handling with structured responses (HTTP status + message + response summary). All tools share the same error pipeline.

Key errors:

  • book_full — Auto-expands by creating a new repo and appending to the book_id array
  • 401 / 403 — Token/permission issues
  • 429 — Rate limit with automatic retry

See references/api/errors.md for the full error code reference.

Contributing

git clone https://github.com/yehuoshun/yuque-ai-mcp.git
cd yuque-ai-mcp/server
npm install
npm run build

# New tool checklist:
# 1. Create server/src/{domain}/{tool}.ts
# 2. Export in {domain}/index.ts + append to tools array
# 3. npx tsc
# 4. Restart HTTP server + curl health
# 5. Sync yuque-ai-skills
# 6. Update README

Both yuque-ai-mcp and yuque-ai-skills are kept in sync.

Tech Stack

  • TypeScript + Node.js
  • @modelcontextprotocol/sdk v1.x
  • Zod (validation)
  • Yuque OpenAPI v2 / Web API

License

MIT