Connects your Yuque knowledge base to MCP clients through the Yuque API, exposing 19 tools across documents, books, notes, and search. You can query your knowledge base, create and update documents, manage table of contents, and work with resources. Supports both yuque.com and private deployments via custom base URLs. Ships with a CLI installer that auto-configures Claude Desktop, Cursor, VS Code, Windsurf, and other clients in one command. Authentication uses personal access tokens from your Yuque developer settings. Useful when you're maintaining documentation or internal wikis in Yuque and want your AI assistant to read from and write to those repositories without context switching.
MCP server for Yuque (语雀) — expose your knowledge base to AI assistants through the Model Context Protocol.
Visit Yuque Developer Settings to create a personal access token.
Use the built-in CLI to auto-configure your MCP client in one command:
npx yuque-mcp install --token=YOUR_TOKEN --client=cursor
Supported clients: claude-desktop, vscode, cursor, windsurf, cline, trae, qoder, opencode
Or use the interactive setup wizard:
npx yuque-mcp setup
The CLI will automatically find the correct config file for your OS, merge with any existing configuration (without overwriting other servers), and print a success message.
Choose your preferred client below:
claude mcp add yuque-mcp -- npx -y yuque-mcp --token=YOUR_TOKEN
Or using environment variables:
export YUQUE_PERSONAL_TOKEN=YOUR_TOKEN
claude mcp add yuque-mcp -- npx -y yuque-mcp
Add to your claude_desktop_config.json:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json{
"mcpServers": {
"yuque": {
"command": "npx",
"args": ["-y", "yuque-mcp"],
"env": {
"YUQUE_PERSONAL_TOKEN": "YOUR_TOKEN"
}
}
}
}
Add to .vscode/mcp.json in your workspace:
{
"servers": {
"yuque": {
"command": "npx",
"args": ["-y", "yuque-mcp"],
"env": {
"YUQUE_PERSONAL_TOKEN": "YOUR_TOKEN"
}
}
}
}
Then enable Agent mode in GitHub Copilot Chat.
Add to your Cursor MCP configuration (~/.cursor/mcp.json):
{
"mcpServers": {
"yuque": {
"command": "npx",
"args": ["-y", "yuque-mcp"],
"env": {
"YUQUE_PERSONAL_TOKEN": "YOUR_TOKEN"
}
}
}
}
Add to your Windsurf MCP configuration (~/.windsurf/mcp.json):
{
"mcpServers": {
"yuque": {
"command": "npx",
"args": ["-y", "yuque-mcp"],
"env": {
"YUQUE_PERSONAL_TOKEN": "YOUR_TOKEN"
}
}
}
}
Add to your Cline MCP settings (~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json):
{
"mcpServers": {
"yuque": {
"command": "npx",
"args": ["-y", "yuque-mcp"],
"env": {
"YUQUE_PERSONAL_TOKEN": "YOUR_TOKEN"
}
}
}
}
In Trae, open Settings and navigate to the MCP section, then add a new stdio-type MCP Server with the following configuration:
npx-y yuque-mcpYUQUE_PERSONAL_TOKEN=YOUR_TOKENSee Trae MCP documentation for detailed instructions.
More clients: Any MCP-compatible client that supports stdio transport can use yuque-mcp. The general pattern is: command =
npx, args =["-y", "yuque-mcp"], env =YUQUE_PERSONAL_TOKEN.
Ask your AI assistant to search your Yuque docs, create documents, or manage books.
The server supports multiple ways to provide your Yuque API token:
| Method | Environment Variable / Flag | Description |
|---|---|---|
| Personal Token (recommended) | YUQUE_PERSONAL_TOKEN | For accessing your personal Yuque account |
| CLI Argument | --token=YOUR_TOKEN | Pass directly as a command-line argument |
Priority order: YUQUE_PERSONAL_TOKEN > --token
For privately deployed Yuque instances, set the YUQUE_BASE_URL environment variable or use the --base-url CLI argument:
# Environment variable
export YUQUE_BASE_URL=https://yuque.example.com/api/v2
# CLI argument
npx yuque-mcp --token=YOUR_TOKEN --base-url=https://yuque.example.com/api/v2
# Install with custom base URL
npx yuque-mcp install --token=YOUR_TOKEN --client=cursor --base-url=https://yuque.example.com/api/v2
When not set, the default is https://www.yuque.com/api/v2.
| Category | Tools |
|---|---|
| User | yuque_get_user |
| Search | yuque_search |
| Books | yuque_list_books, yuque_get_book, yuque_create_book, yuque_update_book |
| Docs | yuque_list_docs, yuque_get_doc, yuque_create_doc, yuque_update_doc |
| Resources | yuque_get_resource, yuque_create_resource, yuque_update_resource |
| TOC | yuque_get_toc, yuque_update_toc |
| Notes | yuque_list_notes, yuque_get_note, yuque_create_note, yuque_update_note |
| Error | Solution |
|---|---|
YUQUE_PERSONAL_TOKEN is required | Set the environment variable YUQUE_PERSONAL_TOKEN or pass --token=YOUR_TOKEN |
401 Unauthorized | Token is invalid or expired — regenerate at Yuque Settings |
429 Rate Limited | Too many requests — wait a moment and retry |
410 Gone | The resource has been permanently deleted or the API endpoint is deprecated — verify the target document/repo still exists |
| Tool not found | Update to the latest version: npx -y yuque-mcp@latest |
npx command not found | Install Node.js (v18 or later) |
git clone https://github.com/yuque/yuque-mcp-server.git
cd yuque-mcp-server
npm install
npm test # run tests
npm run build # compile TypeScript
npm run dev # dev mode with hot reload
YUQUE_PERSONAL_TOKENsecretYuque personal API token (get from https://www.yuque.com/settings/tokens). Use one of: YUQUE_PERSONAL_TOKEN, YUQUE_GROUP_TOKEN, or YUQUE_TOKEN.
YUQUE_GROUP_TOKENsecretYuque group/team API token (alternative to YUQUE_PERSONAL_TOKEN for team workspaces).
YUQUE_TOKENsecretYuque API token (legacy, use YUQUE_PERSONAL_TOKEN or YUQUE_GROUP_TOKEN instead).
csoai-org/pdf-document-mcp
xt765/mcp-document-converter
io.github.xjtlumedia/markdown-formatter
io.github.ai-aviate/better-notion
suekou/mcp-notion-server
meterlong/mcp-doc