yuque-mcp 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -2
- package/README.md +20 -5
- package/README.zh-CN.md +20 -5
- package/dist/cli.js +5 -2
- package/dist/cli.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/utils/error.js +1 -1
- package/dist/utils/error.js.map +1 -1
- package/package.json +6 -5
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
### Changed
|
|
11
|
+
- Support `YUQUE_PERSONAL_TOKEN` and `YUQUE_GROUP_TOKEN` as primary environment variables (with `YUQUE_TOKEN` as fallback for backward compatibility)
|
|
12
|
+
- Update error messages to reflect new environment variable naming
|
|
13
|
+
|
|
10
14
|
## [0.1.0] - 2025-02-15
|
|
11
15
|
|
|
12
16
|
### Added
|
|
@@ -23,5 +27,5 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
23
27
|
- Docker support
|
|
24
28
|
- Documentation in English and Chinese
|
|
25
29
|
|
|
26
|
-
[Unreleased]: https://github.com/
|
|
27
|
-
[0.1.0]: https://github.com/
|
|
30
|
+
[Unreleased]: https://github.com/yuque/yuque-mcp-server/compare/v0.1.0...HEAD
|
|
31
|
+
[0.1.0]: https://github.com/yuque/yuque-mcp-server/releases/tag/v0.1.0
|
package/README.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# Yuque MCP Server
|
|
2
2
|
|
|
3
|
-
[](https://github.com/yuque/yuque-mcp-server/actions/workflows/ci.yml)
|
|
4
4
|
[](https://www.npmjs.com/package/yuque-mcp)
|
|
5
5
|
[](https://opensource.org/licenses/MIT)
|
|
6
6
|
|
|
7
7
|
MCP server for [Yuque (语雀)](https://www.yuque.com/) — expose your knowledge base to AI assistants through the [Model Context Protocol](https://modelcontextprotocol.io/).
|
|
8
8
|
|
|
9
|
-
🌐 **[Website](https://
|
|
9
|
+
🌐 **[Website](https://yuque.github.io/yuque-ecosystem/)** · [中文文档](./README.zh-CN.md)
|
|
10
10
|
|
|
11
11
|
## Quick Start
|
|
12
12
|
|
|
@@ -22,6 +22,21 @@ Visit [Yuque Developer Settings](https://www.yuque.com/settings/tokens) to creat
|
|
|
22
22
|
claude mcp add yuque-mcp -- npx -y yuque-mcp --token=YOUR_TOKEN
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
+
Or set environment variable (choose one):
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
# For personal token
|
|
29
|
+
export YUQUE_PERSONAL_TOKEN=YOUR_TOKEN
|
|
30
|
+
|
|
31
|
+
# For group/team token
|
|
32
|
+
export YUQUE_GROUP_TOKEN=YOUR_TOKEN
|
|
33
|
+
|
|
34
|
+
# Legacy (still supported)
|
|
35
|
+
export YUQUE_TOKEN=YOUR_TOKEN
|
|
36
|
+
|
|
37
|
+
claude mcp add yuque-mcp -- npx -y yuque-mcp
|
|
38
|
+
```
|
|
39
|
+
|
|
25
40
|
### 3. Done!
|
|
26
41
|
|
|
27
42
|
Ask your AI assistant to search your Yuque docs, create documents, or manage repos.
|
|
@@ -44,7 +59,7 @@ Ask your AI assistant to search your Yuque docs, create documents, or manage rep
|
|
|
44
59
|
|
|
45
60
|
| Error | Solution |
|
|
46
61
|
|-------|----------|
|
|
47
|
-
| `
|
|
62
|
+
| `YUQUE_PERSONAL_TOKEN is required` | Pass `--token=YOUR_TOKEN` or set one of: `YUQUE_PERSONAL_TOKEN`, `YUQUE_GROUP_TOKEN`, or `YUQUE_TOKEN` |
|
|
48
63
|
| `401 Unauthorized` | Token is invalid or expired — regenerate at [Yuque Settings](https://www.yuque.com/settings/tokens) |
|
|
49
64
|
| `429 Rate Limited` | Wait a moment and retry |
|
|
50
65
|
| Tool not found | Update to latest: `npx -y yuque-mcp@latest` |
|
|
@@ -52,7 +67,7 @@ Ask your AI assistant to search your Yuque docs, create documents, or manage rep
|
|
|
52
67
|
## Development
|
|
53
68
|
|
|
54
69
|
```bash
|
|
55
|
-
git clone https://github.com/
|
|
70
|
+
git clone https://github.com/yuque/yuque-mcp-server.git
|
|
56
71
|
cd yuque-mcp-server
|
|
57
72
|
npm install
|
|
58
73
|
npm test # run tests (57 tests)
|
|
@@ -66,4 +81,4 @@ npm run dev # dev mode with hot reload
|
|
|
66
81
|
|
|
67
82
|
## Links
|
|
68
83
|
|
|
69
|
-
- [Website](https://
|
|
84
|
+
- [Website](https://yuque.github.io/yuque-ecosystem/) · [Yuque API Docs](https://www.yuque.com/yuque/developer/api) · [MCP Protocol](https://modelcontextprotocol.io/) · [Contributing](./CONTRIBUTING.md)
|
package/README.zh-CN.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# Yuque MCP Server
|
|
2
2
|
|
|
3
|
-
[](https://github.com/yuque/yuque-mcp-server/actions/workflows/ci.yml)
|
|
4
4
|
[](https://www.npmjs.com/package/yuque-mcp)
|
|
5
5
|
[](https://opensource.org/licenses/MIT)
|
|
6
6
|
|
|
7
7
|
[语雀](https://www.yuque.com/) MCP Server — 通过 [Model Context Protocol](https://modelcontextprotocol.io/) 让 AI 助手访问你的语雀知识库。
|
|
8
8
|
|
|
9
|
-
🌐 **[官网](https://
|
|
9
|
+
🌐 **[官网](https://yuque.github.io/yuque-ecosystem/)** · [English](./README.md)
|
|
10
10
|
|
|
11
11
|
## 快速开始
|
|
12
12
|
|
|
@@ -22,6 +22,21 @@
|
|
|
22
22
|
claude mcp add yuque-mcp -- npx -y yuque-mcp --token=YOUR_TOKEN
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
+
或设置环境变量(三选一):
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
# 个人 Token
|
|
29
|
+
export YUQUE_PERSONAL_TOKEN=YOUR_TOKEN
|
|
30
|
+
|
|
31
|
+
# 团队 Token
|
|
32
|
+
export YUQUE_GROUP_TOKEN=YOUR_TOKEN
|
|
33
|
+
|
|
34
|
+
# 旧版(仍支持)
|
|
35
|
+
export YUQUE_TOKEN=YOUR_TOKEN
|
|
36
|
+
|
|
37
|
+
claude mcp add yuque-mcp -- npx -y yuque-mcp
|
|
38
|
+
```
|
|
39
|
+
|
|
25
40
|
### 3. 开始使用!
|
|
26
41
|
|
|
27
42
|
让 AI 助手搜索语雀文档、创建文档、管理知识库。
|
|
@@ -44,14 +59,14 @@ claude mcp add yuque-mcp -- npx -y yuque-mcp --token=YOUR_TOKEN
|
|
|
44
59
|
|
|
45
60
|
| 错误 | 解决方案 |
|
|
46
61
|
|------|----------|
|
|
47
|
-
| `
|
|
62
|
+
| `YUQUE_PERSONAL_TOKEN is required` | 传入 `--token=YOUR_TOKEN` 或设置以下环境变量之一:`YUQUE_PERSONAL_TOKEN`、`YUQUE_GROUP_TOKEN` 或 `YUQUE_TOKEN` |
|
|
48
63
|
| `401 Unauthorized` | Token 无效或过期 — 到[语雀设置](https://www.yuque.com/settings/tokens)重新生成 |
|
|
49
64
|
| `429 Rate Limited` | 请求过于频繁,等待后重试 |
|
|
50
65
|
|
|
51
66
|
## 开发
|
|
52
67
|
|
|
53
68
|
```bash
|
|
54
|
-
git clone https://github.com/
|
|
69
|
+
git clone https://github.com/yuque/yuque-mcp-server.git
|
|
55
70
|
cd yuque-mcp-server
|
|
56
71
|
npm install
|
|
57
72
|
npm test # 运行测试(57 个测试用例)
|
|
@@ -65,4 +80,4 @@ npm run dev # 开发模式
|
|
|
65
80
|
|
|
66
81
|
## 链接
|
|
67
82
|
|
|
68
|
-
- [官网](https://
|
|
83
|
+
- [官网](https://yuque.github.io/yuque-ecosystem/) · [语雀 API 文档](https://www.yuque.com/yuque/developer/api) · [MCP 协议](https://modelcontextprotocol.io/) · [贡献指南](./CONTRIBUTING.md)
|
package/dist/cli.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { runStdioServer } from './server.js';
|
|
3
|
-
const token = process.env.
|
|
3
|
+
const token = process.env.YUQUE_PERSONAL_TOKEN ||
|
|
4
|
+
process.env.YUQUE_GROUP_TOKEN ||
|
|
5
|
+
process.env.YUQUE_TOKEN ||
|
|
6
|
+
process.argv.find((arg) => arg.startsWith('--token='))?.split('=')[1];
|
|
4
7
|
if (!token) {
|
|
5
|
-
console.error('Error: YUQUE_TOKEN environment variable or --token argument is required');
|
|
8
|
+
console.error('Error: YUQUE_PERSONAL_TOKEN, YUQUE_GROUP_TOKEN, or YUQUE_TOKEN environment variable (or --token argument) is required');
|
|
6
9
|
process.exit(1);
|
|
7
10
|
}
|
|
8
11
|
runStdioServer(token).catch((error) => {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,KAAK,GACT,OAAO,CAAC,GAAG,CAAC,oBAAoB;IAChC,OAAO,CAAC,GAAG,CAAC,iBAAiB;IAC7B,OAAO,CAAC,GAAG,CAAC,WAAW;IACvB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAExE,IAAI,CAAC,KAAK,EAAE,CAAC;IACX,OAAO,CAAC,KAAK,CAAC,uHAAuH,CAAC,CAAC;IACvI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,cAAc,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACpC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,9 +2,9 @@ import { createServer as createMCPServer } from './server.js';
|
|
|
2
2
|
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
3
3
|
import { createServer } from 'node:http';
|
|
4
4
|
import { randomUUID } from 'node:crypto';
|
|
5
|
-
const token = process.env.YUQUE_TOKEN;
|
|
5
|
+
const token = process.env.YUQUE_PERSONAL_TOKEN || process.env.YUQUE_GROUP_TOKEN || process.env.YUQUE_TOKEN;
|
|
6
6
|
if (!token) {
|
|
7
|
-
console.error('Error: YUQUE_TOKEN environment variable is required');
|
|
7
|
+
console.error('Error: YUQUE_PERSONAL_TOKEN, YUQUE_GROUP_TOKEN, or YUQUE_TOKEN environment variable is required');
|
|
8
8
|
process.exit(1);
|
|
9
9
|
}
|
|
10
10
|
const mcpServer = createMCPServer(token);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;AAE3G,IAAI,CAAC,KAAK,EAAE,CAAC;IACX,OAAO,CAAC,KAAK,CAAC,iGAAiG,CAAC,CAAC;IACjH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;AACzC,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC;IAClD,kBAAkB,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;CACvC,CAAC,CAAC;AAEH,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;IACrC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IAC9C,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC3C,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YAChD,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAChD,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QAC3B,OAAO,CAAC,GAAG,CAAC,gDAAgD,IAAI,EAAE,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACjB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/utils/error.js
CHANGED
|
@@ -12,7 +12,7 @@ export class YuqueError extends Error {
|
|
|
12
12
|
function statusHint(status) {
|
|
13
13
|
switch (status) {
|
|
14
14
|
case 400: return 'Bad request — check the parameters';
|
|
15
|
-
case 401: return 'Unauthorized — the YUQUE_TOKEN may be invalid or expired';
|
|
15
|
+
case 401: return 'Unauthorized — the API token (YUQUE_PERSONAL_TOKEN, YUQUE_GROUP_TOKEN, or YUQUE_TOKEN) may be invalid or expired';
|
|
16
16
|
case 403: return 'Forbidden — insufficient permissions for this resource';
|
|
17
17
|
case 404: return 'Not found — the resource does not exist or is not accessible';
|
|
18
18
|
case 429: return 'Rate limited — too many requests, try again later';
|
package/dist/utils/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/utils/error.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,UAAW,SAAQ,KAAK;IAG1B;IACA;IAHT,YACE,OAAe,EACR,UAAmB,EACnB,aAAuB;QAE9B,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,eAAU,GAAV,UAAU,CAAS;QACnB,kBAAa,GAAb,aAAa,CAAU;QAG9B,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,sFAAsF;AACtF,SAAS,UAAU,CAAC,MAAc;IAChC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,GAAG,CAAC,CAAC,OAAO,oCAAoC,CAAC;QACtD,KAAK,GAAG,CAAC,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/utils/error.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,UAAW,SAAQ,KAAK;IAG1B;IACA;IAHT,YACE,OAAe,EACR,UAAmB,EACnB,aAAuB;QAE9B,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,eAAU,GAAV,UAAU,CAAS;QACnB,kBAAa,GAAb,aAAa,CAAU;QAG9B,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,sFAAsF;AACtF,SAAS,UAAU,CAAC,MAAc;IAChC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,GAAG,CAAC,CAAC,OAAO,oCAAoC,CAAC;QACtD,KAAK,GAAG,CAAC,CAAC,OAAO,kHAAkH,CAAC;QACpI,KAAK,GAAG,CAAC,CAAC,OAAO,wDAAwD,CAAC;QAC1E,KAAK,GAAG,CAAC,CAAC,OAAO,8DAA8D,CAAC;QAChF,KAAK,GAAG,CAAC,CAAC,OAAO,mDAAmD,CAAC;QACrE,OAAO,CAAC,CAAE,OAAO,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QAChC,MAAM,KAAK,CAAC;IACd,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,GAAG,GAAG,KAA0F,CAAC;QAEvG,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;YACnC,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,GAAG,CAAC,OAAO,IAAI,yBAAyB,CAAC;YAC1F,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;YAC9D,MAAM,IAAI,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,IAAI,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,MAAM,IAAI,UAAU,CAAC,wBAAwB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACnE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "yuque-mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "MCP server for Yuque (语雀) — expose Yuque knowledge base to AI assistants via Model Context Protocol",
|
|
5
|
+
"mcpName": "io.github.yuque/yuque-mcp",
|
|
5
6
|
"type": "module",
|
|
6
7
|
"main": "dist/cli.js",
|
|
7
8
|
"bin": {
|
|
@@ -36,16 +37,16 @@
|
|
|
36
37
|
"claude",
|
|
37
38
|
"cursor"
|
|
38
39
|
],
|
|
39
|
-
"author": "
|
|
40
|
+
"author": "yuque",
|
|
40
41
|
"license": "MIT",
|
|
41
42
|
"repository": {
|
|
42
43
|
"type": "git",
|
|
43
|
-
"url": "https://github.com/
|
|
44
|
+
"url": "https://github.com/yuque/yuque-mcp-server.git"
|
|
44
45
|
},
|
|
45
46
|
"bugs": {
|
|
46
|
-
"url": "https://github.com/
|
|
47
|
+
"url": "https://github.com/yuque/yuque-mcp-server/issues"
|
|
47
48
|
},
|
|
48
|
-
"homepage": "https://github.com/
|
|
49
|
+
"homepage": "https://github.com/yuque/yuque-mcp-server#readme",
|
|
49
50
|
"engines": {
|
|
50
51
|
"node": ">=18.0.0"
|
|
51
52
|
},
|