@aipper/zentao-mcp-server 0.1.4 → 0.1.5

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/.env.example CHANGED
@@ -5,8 +5,8 @@ ZENTAO_BASE_URL=http://zentao.example.com
5
5
  ZENTAO_ACCOUNT=your_account
6
6
  ZENTAO_PASSWORD=your_password
7
7
 
8
- # API 前缀(多数禅道为 /api.php/v1)
9
- ZENTAO_API_PREFIX=/api.php/v1
8
+ # 可选:API 前缀(默认 /api.php/v1)
9
+ # ZENTAO_API_PREFIX=/api.php/v1
10
10
 
11
11
  # 获取 Token 的路径(相对 ZENTAO_BASE_URL;通常为 /api.php/v1/tokens)
12
12
  ZENTAO_TOKEN_PATH=/api.php/v1/tokens
package/README.md CHANGED
@@ -18,6 +18,8 @@
18
18
  - `ZENTAO_PASSWORD`
19
19
 
20
20
  > 注意:不同禅道版本/部署方式的 token 端点与返回结构可能不同;可通过 `ZENTAO_TOKEN_PATH`/`ZENTAO_API_PREFIX` 调整。
21
+ >
22
+ > 默认情况下不需要配置 `ZENTAO_API_PREFIX`(默认值是 `/api.php/v1`)。
21
23
 
22
24
  ## 安装与运行
23
25
  ```bash
@@ -26,6 +28,12 @@ cp .env.example .env
26
28
  npm start
27
29
  ```
28
30
 
31
+ ## npm 安装后的运行
32
+ 发布到 npm 后,推荐用 `npx` 启动(适合 MCP 客户端配置):
33
+ ```bash
34
+ npx -y @aipper/zentao-mcp-server
35
+ ```
36
+
29
37
  ## 验证(不依赖 MCP 客户端)
30
38
  ```bash
31
39
  npm i
@@ -38,7 +46,24 @@ npm run smoke
38
46
  - 输出 `GET /projects status: 200`(或你的禅道实际返回码)
39
47
 
40
48
  ## Claude Desktop / Cursor 示例(stdio)
41
- 把启动命令指向 `node src/index.js`(或 `npm start`)。
49
+ 优先使用 `npx`(npm 发布版):
50
+ ```json
51
+ {
52
+ "mcpServers": {
53
+ "zentao": {
54
+ "command": "npx",
55
+ "args": ["-y", "@aipper/zentao-mcp-server"],
56
+ "env": {
57
+ "ZENTAO_BASE_URL": "https://zentao.example.com",
58
+ "ZENTAO_ACCOUNT": "your_account",
59
+ "ZENTAO_PASSWORD": "your_password"
60
+ }
61
+ }
62
+ }
63
+ }
64
+ ```
65
+
66
+ 本地源码调试可继续用 `node src/index.js`:
42
67
 
43
68
  示例(Claude Desktop 的 `mcpServers` 风格,按你的客户端实际字段为准):
44
69
  ```json
@@ -50,7 +75,6 @@ npm run smoke
50
75
  "cwd": "/ABS/PATH/TO/zentao",
51
76
  "env": {
52
77
  "ZENTAO_BASE_URL": "https://zentao.example.com",
53
- "ZENTAO_API_PREFIX": "/api.php/v1",
54
78
  "ZENTAO_ACCOUNT": "your_account",
55
79
  "ZENTAO_PASSWORD": "your_password"
56
80
  }
@@ -59,6 +83,13 @@ npm run smoke
59
83
  }
60
84
  ```
61
85
 
86
+ ## 常见错误(`-32000`)
87
+ `-32000` 通常是客户端侧“通用 MCP 调用失败”映射码,优先检查:
88
+ - `env` 是否完整传入(尤其是 `ZENTAO_BASE_URL`/`ZENTAO_ACCOUNT`/`ZENTAO_PASSWORD`)。
89
+ - `ZENTAO_API_PREFIX`/`ZENTAO_TOKEN_PATH` 是否和你的禅道实例一致。
90
+ - MCP 客户端是否真的在执行 `npx -y @aipper/zentao-mcp-server`(而不是旧的本地命令)。
91
+ - 客户端日志中是否有启动报错(如找不到命令、401、超时)。
92
+
62
93
  ## 已实现工具
63
94
  - `get_token`:获取/刷新 token(默认不回显完整 token)
64
95
  - `call`:调用任意相对 API 路径(自动带 Token 头)
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import "../src/index.js";
3
+
package/package.json CHANGED
@@ -1,14 +1,17 @@
1
1
  {
2
2
  "name": "@aipper/zentao-mcp-server",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "A minimal MCP server for ZenTao (token + generic REST call + a few helper tools).",
7
7
  "license": "UNLICENSED",
8
8
  "main": "src/index.js",
9
+ "bin": {
10
+ "zentao-mcp-server": "bin/zentao-mcp-server.js"
11
+ },
9
12
  "scripts": {
10
13
  "start": "node src/index.js",
11
- "lint": "node -c src/index.js && node -c src/zentao.js && node -c src/tools.js && node -c scripts/smoke.mjs",
14
+ "lint": "node -c src/index.js && node -c src/zentao.js && node -c src/tools.js && node -c scripts/smoke.mjs && node -c bin/zentao-mcp-server.js",
12
15
  "smoke": "node scripts/smoke.mjs",
13
16
  "release:npm": "bash scripts/release-npm.sh"
14
17
  },