Connects Claude to Yuque's knowledge base platform with full CRUD operations across groups, repositories, and documents. You get read tools for browsing repos and fetching markdown content, write tools for creating and updating docs (including from local files), and TOC management for organizing content hierarchies. Ships with granular safety controls: writes are off by default, deletes require explicit confirmation text, and you can allowlist specific namespaces or groups. Useful when you want Claude to treat your Yuque workspace as a living knowledge base it can both query and maintain, or when building documentation workflows that need programmatic access to Yuque's API without writing your own client.
中文说明: README.zh-CN.md
This folder is prepared for building a custom MCP server for Yuque.
Build a Yuque MCP server so Codex can:
list/add/remove)get_my_repositories, get_repository_overview, search_and_read, create_document_with_toc)docs/00-project-brief.mddocs/01-scope-v1.mddocs/02-architecture.mddocs/03-tool-contract.mddocs/04-api-mapping.mddocs/05-security.mddocs/06-implementation-plan.mddocs/07-test-plan.mddocs/08-codex-integration.mddocs/09-release-notes-zh.mddocs/10-registry-publish.mddocs/11-weekly-maintenance.mddocs/12-complaint-and-takedown.mdCHANGELOG.mdCONTRIBUTING.mdSECURITY.mdDISCLAIMER.mdtasks/TODO.mdIn your new Codex session, start with:
docs/01-scope-v1.md and docs/03-tool-contract.md.npm install
npm run build
Required env:
YUQUE_TOKENYUQUE_ENDPOINT (optional, default https://www.yuque.com/api/v2/)YUQUE_TIMEOUT_MS (optional, default 10000)YUQUE_MAX_RETRIES (optional, default 2, read-only retries only)YUQUE_ALLOW_WRITE (optional, default false)YUQUE_WRITE_NAMESPACE_ALLOWLIST (optional, comma-separated namespace allowlist for repo/doc/toc writes)YUQUE_WRITE_GROUP_ALLOWLIST (optional, comma-separated group login allowlist for group writes)YUQUE_ALLOW_DELETE (optional, default false)YUQUE_DELETE_NAMESPACE_ALLOWLIST (optional, comma-separated delete allowlist targets; namespace for repo/doc, login for group)YUQUE_FILE_ROOT (optional, default current working directory, used by file-based doc tools)YUQUE_FILE_MAX_BYTES (optional, default 1048576)YUQUE_FILE_ALLOWED_EXTENSIONS (optional, default .md,.markdown,.txt)Write safety:
YUQUE_ALLOW_WRITE=true to enable writes.YUQUE_WRITE_NAMESPACE_ALLOWLIST=team/sandbox,team/testYUQUE_WRITE_GROUP_ALLOWLIST=sandbox-teamDelete safety:
yuque_delete_doc, yuque_delete_repo, and yuque_delete_group are blocked by default.YUQUE_ALLOW_WRITE=trueYUQUE_ALLOW_DELETE=trueYUQUE_DELETE_NAMESPACE_ALLOWLIST=your/test-namespace,your-test-group-loginconfirm: true and exact confirm_text:
DELETE DOC <namespace>/<docRef>DELETE REPO <namespace>DELETE GROUP <login>Latest highlights:
yuque_get_doc / yuque_update_doc / yuque_delete_doc support either slug or doc_id.yuque_list_docs supports pagination (offset, limit).yuque_search_docs now scans paginated docs across the full repository.markdown, html, lake; visibility supports 0 | 1 | 2.editNode, url, open_window, visible).yuque_list_group_users, yuque_add_group_user, yuque_remove_group_user.Run in dev:
npm run dev
Run compiled server:
npm run start
Run local MCP smoke test (test namespace only):
YUQUE_SMOKE_NAMESPACE=your/test-namespace npm run smoke
Run write smoke suite with cleanup (create/update/toc/delete on test namespace):
YUQUE_SMOKE_NAMESPACE=your/test-namespace \
YUQUE_SMOKE_ENABLE_WRITE=true \
YUQUE_ALLOW_WRITE=true \
YUQUE_ALLOW_DELETE=true \
YUQUE_DELETE_NAMESPACE_ALLOWLIST=your/test-namespace \
npm run smoke
@modelcontextprotocol/sdkfetch or lightweight HTTP clientzod for input validationCONTRIBUTING.mdSECURITY.mddocs/11-weekly-maintenance.mddocs/12-complaint-and-takedown.mdDISCLAIMER.mdYUQUE_TOKEN*secretYuque API token
YUQUE_ENDPOINTYuque API endpoint (optional)
YUQUE_TIMEOUT_MSYuque API timeout in milliseconds (optional)
YUQUE_MAX_RETRIESRead-only retry count (optional)
YUQUE_ALLOW_WRITEEnable write tools when true (optional, default false)
YUQUE_WRITE_NAMESPACE_ALLOWLISTComma-separated namespace allowlist for repo/doc/toc writes (optional)
YUQUE_WRITE_GROUP_ALLOWLISTComma-separated group login allowlist for group writes (optional)
YUQUE_ALLOW_DELETEEnable delete tools when true (optional, default false)
YUQUE_DELETE_NAMESPACE_ALLOWLISTComma-separated delete allowlist targets (optional)
YUQUE_FILE_ROOTAllowed root directory for file-based doc tools (optional, default current working directory)
YUQUE_FILE_MAX_BYTESMaximum size for file-based doc tools (optional, default 1048576)
YUQUE_FILE_ALLOWED_EXTENSIONSComma-separated allowed extensions for file-based doc tools (optional, default .md,.markdown,.txt)