yuque-ai-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | Your Yuque API Token | |
| cookie | No | Optional, for recycle/upload features | |
| ctoken | No | Optional, extracted from Cookie | |
| api_base | No | Yuque API base URL | https://www.yuque.com/api/v2 |
| toc_cache_ttl_minutes | No | TOC cache TTL in minutes (default 60). Set higher to reduce API calls, lower for fresher data. | 60 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| yuque_get_userA | Get current user profile (id,login,name,avatar_url,books_count,description,created_at). GET /user. 详见 references/api/user_api.md |
| yuque_helloA | Health check — verify Yuque API token validity. GET /hello. 详见 references/api/user_api.md |
| yuque_get_user_groupsB | List groups the user belongs to. GET /users/:id/groups. 详见 references/api/user_api.md |
| yuque_searchC | General search across Yuque docs and repos. GET /search?q=:q&type=:type. 详见 references/api/search_api.md |
| yuque_rag_searchB | RAG-enhanced search: accepts LLM-generated keywords, runs concurrent multi-path searches, deduplicates by doc_id, fetches top-N full doc content. 详见 references/api/search_api.md |
| yuque_web_searchA | Cookie-based web search across Yuque docs/books/users. Returns full document objects (_record) without needing a second get_doc call. Supports scope filtering (repo/group), type filtering (content/book/user), pagination, AND advanced search syntax: "phrase", in:title, NOT/AND/OR, updated:>YYYY-MM-DD, url:scope, is:related/public. Requires cookie+ctoken in config. GET /api/zsearch?q=:q&type=:type&scope=:scope&p=:p. ⚠️ Cookie-based API — QPS unknown, avoid concurrent calls. 详见 references/api/search_api.md |
| yuque_get_group_usersA | List group members (page size 100). Supports role filter (0=admin,1=member,2=readonly). GET /groups/:login/users. 详见 references/api/group_api.md |
| yuque_update_group_userC | Change a group member role (0=admin,1=member,2=readonly). PUT /groups/:login/users/:id. 详见 references/api/group_api.md |
| yuque_delete_group_userB | Remove a member from a group. ⚠️ Requires confirm='DELETE'. DELETE /groups/:login/users/:id. 详见 references/api/group_api.md |
| yuque_list_docsB | List documents in a repo, sorted by updated_at desc. limit ≤ 100. Supports deleted (recycle view) and changed_at_gte (incremental sync). GET /repos/:id/docs. 详见 references/api/doc_api.md |
| yuque_create_docC | Create a document in a repo. 传 parent_uuid 则挂到指定节点下,不传默认挂根目录。POST /repos/:id/docs. 详见 references/api/doc_api.md |
| yuque_get_docA | Get document detail (body/body_html). Sheet/Table docs and body_lake/body_draft need raw=true. Supports id or slug. GET /repos/docs/:id. 详见 references/api/doc_api.md |
| yuque_update_docC | Update a document title/body/slug/format/public. PUT /repos/:id/docs/:id. 详见 references/api/doc_api.md |
| yuque_delete_docB | Delete a document (moves to recycle bin). ⚠️ Requires confirm='DELETE'. DELETE /repos/:id/docs/:id. 详见 references/api/doc_api.md |
| yuque_get_doc_versionsA | List document version history (last 100 published versions). GET /doc_versions?doc_id=:id. 详见 references/api/doc_api.md |
| yuque_get_doc_version_detailA | Get version detail (format/body/body_md/body_html/body_asl/diff + meta). Fields over 20000 chars are truncated — pass raw=true for the full payload. GET /doc_versions/:id. 详见 references/api/doc_api.md |
| yuque_embed_urlB | Generate a Yuque embed reader URL from a document link or doc_id+book_id. 详见 references/api/extended_api.md |
| yuque_batch_get_docsB | Batch get document details (concurrent GET, read-only, max 20). 详见 references/api/doc_api.md |
| yuque_export_docA | Export a single document as Markdown file. Fetches doc → converts body_html to Markdown → adds frontmatter → writes to disk. Resource download is separate (yuque_export_resources). 详见 references/api/extended_api.md |
| yuque_export_resourcesA | Download images/attachments from a document to local directory. Extracts resource URLs from body_html, downloads to <output_dir>/images/ and <output_dir>/attachments/, returns URL→local_path mapping. 详见 references/api/extended_api.md |
| yuque_copy_docA | Copy a single document to another repo. Agent fetches source via yuque_get_doc, cleans content, then calls this tool with title/body/format/paths. 详见 references/api/extended_api.md |
| yuque_import_urlB | Import content from a web URL into Yuque. Fetches page, extracts readable content, creates doc. 详见 references/api/extended_api.md |
| yuque_import_fileC | Import a local Markdown/HTML file into Yuque. 3 modes: direct / upload_assets / embed_assets. 详见 references/api/extended_api.md |
| yuque_diff_doc_versionsB | Compare two document versions and show line-level diff (added/removed/unchanged). Computes diff locally. 详见 references/api/doc_api.md |
| yuque_get_tocB | Get repo TOC tree (flat array, navigable via uuid/parent_uuid/child_uuid). GET /repos/:id/toc. 详见 references/api/toc_api.md |
| yuque_update_tocA | Update repo TOC (create/move/edit/delete nodes). ⚠️ Deleting requires confirm='DELETE'. For removeNode: action_mode=sibling deletes only the node, child deletes the node and all its children. PUT /repos/:id/toc. 详见 references/api/toc_api.md |
| yuque_batch_update_tocA | Batch update repo TOC. Agent provides ops plan, tool executes only. Supported actions: createTitle, appendNode, removeNode, moveNode, prependDoc. createTitle auto-reuses existing dirs. appendNode/moveNode support target_title. ⚠️ Remove/move ops require confirm='RESTRUCTURE'. For cross-book copy, use yuque_copy_doc instead. |
| yuque_list_reposC | List repos for a user or group. GET /users|groups/:login/repos. 详见 references/api/repo_api.md |
| yuque_create_repoB | Create a repo, auto-detects user vs group endpoint. POST /users|groups/:login/repos. 详见 references/api/repo_api.md |
| yuque_get_repoB | Get repo detail including toc_yml (TOC tree in YAML), namespace, items_count, full metadata. GET /repos/:id. 详见 references/api/repo_api.md |
| yuque_update_repoC | Update repo name/description/slug/public. PUT /repos/:id. 详见 references/api/repo_api.md |
| yuque_delete_repoA | Delete a repo (⚠️ irreversible). Requires confirm='DELETE'. DELETE /repos/:id. 详见 references/api/repo_api.md |
| yuque_batch_get_reposB | Batch get repo details (concurrent GET, read-only, max 20). 详见 references/api/repo_api.md |
| yuque_export_repoA | Export all docs in a repo as Markdown files organized by TOC dir structure, with images downloaded and INDEX.md+GRAPH.md generated. 详见 references/api/extended_api.md |
| yuque_copy_repoC | Batch copy documents to another repo. Agent provides cleaned documents array (title/body/format/paths). Tool creates TOC dirs and copies. 详见 references/api/extended_api.md |
| yuque_get_group_statisticsC | Get group summary statistics. GET /groups/:login/statistics. 详见 references/api/statistic_api.md |
| yuque_get_member_statisticsC | Get group member statistics. GET /groups/:login/statistics/members. 详见 references/api/statistic_api.md |
| yuque_get_book_statisticsC | Get group repo statistics. GET /groups/:login/statistics/books. 详见 references/api/statistic_api.md |
| yuque_get_doc_statisticsC | Get group document statistics. GET /groups/:login/statistics/docs. 详见 references/api/statistic_api.md |
| yuque_list_notesB | List current user's notes. GET /notes. 详见 references/api/note_api.md |
| yuque_get_noteC | Get note detail. GET /notes/:id. 详见 references/api/note_api.md |
| yuque_create_noteB | Create a note (short memo). Returns id, slug, note_url. POST /notes. 详见 references/api/note_api.md |
| yuque_update_noteB | Update or delete a note. ⚠️ Deleting (status=9) requires confirm='DELETE'. PUT /notes/:id. 详见 references/api/note_api.md |
| yuque_list_recyclesB | List recycle bin items (requires cookie+ctoken). GET /mine/recycles. 详见 references/api/recycle_api.md |
| yuque_restore_recycleB | Restore an item from recycle bin (requires cookie+ctoken). PUT /mine/recycles/:id/restore. 详见 references/api/recycle_api.md |
| yuque_destroy_recycleA | Permanently delete a recycle bin item (⚠️ irreversible, requires cookie+ctoken). Requires confirm='DELETE'. DELETE /mine/recycles/:id. 详见 references/api/recycle_api.md |
| yuque_upload_attachmentA | Upload a file to Yuque CDN (image≤50MB, attachment/video≤2GB, requires cookie+ctoken). Extension pre-check: only Yuque-supported formats allowed (official list: https://www.yuque.com/yuque/gpvawt/ca13hg), unsupported extensions rejected with a friendly error (pack into zip first). POST /upload/attach. 详见 references/api/upload_api.md |
| yuque_get_boardC | Get board resource JSON DSL and summary stats from a document. GET /yfm/boards. 详见 references/api/board_api.md |
| yuque_create_boardC | Create a board resource (mindmap/flowchart/architecture diagram) in a document. POST /yfm/boards. 详见 references/api/board_api.md |
| yuque_update_boardC | Update a board resource (text or dsl, choose one). PUT /yfm/boards. 详见 references/api/board_api.md |
| yuque_get_book_stacksA | 获取当前用户的知识库分组(书架)列表,含每个分组下的知识库。需要 cookie+ctoken 认证。GET /api/mine/book_stacks |
| yuque_get_editor_centerB | 获取个人编辑中心全景数据:知识库数、文档数、总字数、编辑次数、活跃天数、互动用户排行、最多字的知识库等。需要 cookie+ctoken 认证。GET /api/mine/editor_center |
| yuque_create_book_stackA | 创建知识库分组(书架)并设定名称。需要 cookie+ctoken 认证。语雀 create 不能直接指定名字,本工具内部 create 后自动 edit 改名。body {name, target_rank}。 |
| yuque_rename_book_stackA | 重命名知识库分组(书架)。需要 cookie+ctoken 认证。PUT /api/book_stacks/{stack_id},body {name, type:'user_books'}。 |
| yuque_update_book_stackA | 移动知识库到指定分组(书架)。需要 cookie+ctoken 认证。PUT /api/mine/book_stack/move。常用于将知识库从一个分组(如预废弃)移到另一个分组(如废弃)。 |
| yuque_sort_book_stackA | 排序分组(书架)内知识库顺序。需要 cookie+ctoken 认证。PUT /api/mine/book_stack/move,传有序 targetBookIds(数组顺序即最终排序)。常用于把分组内知识库按期望顺序重排。 |
| yuque_delete_book_stackA | 删除知识库分组(书架)。⚠️ 不可恢复!需传 confirm='DELETE' 二次确认。DELETE /api/book_stacks/{stack_id}。分组内须先清空知识库。 |
| yuque_web_get_docA | Cookie-based: Get full document detail with body/content. Supports markdown/lake/lakesheet formats. Returns richer fields than v2 get_doc (54 fields including abilities, joinToken, etc.). No membership required, no Token rate limiting. GET /api/docs/{id}?book_id={book_id}. id supports doc slug; book_id supports namespace/slug (e.g. yehuoshun/utuif2) or numeric. 详见 references/api/doc_api.md |
| yuque_web_list_docsA | Cookie-based: List documents in a repo. Returns richer fields than v2 list_docs (draft_version, editor_meta, read_status, etc.). No membership required. GET /api/docs?book_id={book_id}. 详见 references/api/doc_api.md |
| yuque_web_list_reposA | Cookie-based: List repos for current user. Returns richer fields than v2 list_repos (abilities, cover_color, scene, etc.). Includes permission info (abilities.create_doc, modify_setting, destroy). No membership required. GET /api/books. 详见 references/api/repo_api.md |
| yuque_web_get_tocA | Cookie-based: Get repo TOC tree (flat array, navigable via uuid/parent_uuid/child_uuid). Same structure as v2 get_toc, but no membership required. GET /api/catalog_nodes?book_id={book_id}. 详见 references/api/toc_api.md |
| yuque_web_delete_docA | Cookie-based: Delete a document (moves to recycle bin). DELETE /api/docs/{id}?book_id={book_id}. No membership required, alternative to v2 delete_doc when Token is rate-limited/expired. ⚠️ Requires confirm='DELETE'. 详见 references/api/doc_api.md |
| yuque_web_batch_move_catalog_nodesB | Cookie-based: Batch move document nodes to a target catalog node. PUT /api/catalog_nodes/batch. Supports cross-repo move (target_book_id may differ from book_id). No membership required. Moves the specified node_uuids under the target_uuid directory as children. 详见 references/api/web_doc_api.md |
| yuque_web_move_catalog_nodeA | Cookie-based: Move a single catalog node to a target catalog node / target repo. PUT /api/catalog_nodes/move. Supports cross-repo move (target_book_id may differ from book_id) and moving the whole subtree (with_children). No membership required. 详见 references/api/web_doc_api.md |
| yuque_web_copy_catalog_nodeA | Cookie-based: Copy a catalog node (doc or dir) to a target catalog node / target repo, server-side with attachment re-upload. PUT /api/catalog_nodes/copy. The source node is kept; a copy is created in the target repo and attachments re-uploaded there (preserves file cards). node_uuid must be from the web catalog (/api/catalog_nodes), not the v2 TOC. 详见 references/api/web_doc_api.md |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 65 tools
The server exposes two parallel API surfaces (v2 token-based and cookie-based `web_*`) that largely duplicate each other: `yuque_list_docs`/`yuque_web_list_docs`, `yuque_get_doc`/`yuque_web_get_doc`, `yuque_get_toc`/`yuque_web_get_toc`, and `yuque_delete_doc`/`yuque_web_delete_doc` do the same job with slightly different payloads. Similarly, TOC restructuring is split across `yuque_update_toc`, `yuque_batch_update_toc`, `yuque_web_move_catalog_node`, and `yuque_web_batch_move_catalog_nodes`, and search is split across `yuque_search`, `yuque_rag_search`, and `yuque_web_search`. Descriptions hint at the differences (no membership required, richer fields, batch vs single), but an agent must read carefully to avoid picking the wrong twin.
Almost all tools follow `yuque_verb_noun` snake_case (`yuque_create_doc`, `yuque_list_repos`, `yuque_update_toc`), with a consistent `yuque_web_` prefix marking the cookie-based variants. Minor deviations exist (`yuque_hello` has no verb, `yuque_rag_search` inserts a modifier), but the pattern is predictable and readable overall.
65 tools is far beyond a comfortable surface for an agent to navigate, and the count is inflated by the duplicate v2/web API pairs plus four separate TOC-manipulation tools. The domain (docs, repos, TOC, notes, groups, boards, search, recycle, statistics, book stacks) is genuinely broad, so some size is justified, but this many tools with this much redundancy is heavy.
Coverage is unusually thorough: full CRUD for docs, repos, notes, boards, and book stacks, plus TOC editing, recycle bin lifecycle, version history/diff, export/import, group member management, and statistics. Gaps are minor and peripheral — no comment/discussion tools and no explicit permission/share management for documents or repos.