timarai-dashboard-mcp 1.0.3 → 1.0.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 CHANGED
@@ -1,5 +1,20 @@
1
1
  # 变更记录
2
2
 
3
+ ## v1.0.4 — 2026-09-21(已发布到 npm)
4
+
5
+ **包已公开发布**:`npm i -g timarai-dashboard-mcp`。使用者不需要 clone 仓库、不需要 build,
6
+ 装完在 Agent 客户端填三个必填变量即可(凭证写在客户端配置的 `env` 字段里)。
7
+
8
+ | 改动 | 说明 |
9
+ |------|------|
10
+ | README 顶部 | 版本说明对齐当前版本,首屏给出 `npm i -g timarai-dashboard-mcp` |
11
+ | `docs/DISTRIBUTION.md` | 去掉「还没发布到 npm」的过时说明,离线包降级为「目标机离线时才用」 |
12
+ | `docs/DISTRIBUTION.md` | 新增「建 token 时两个必踩的坑」:granular token 必须**同时**勾 `Bypass two-factor authentication` 且权限选 `Read and write (publish and stage)`;推荐改用 Classic Token(Automation)一步到位 |
13
+
14
+ 发布后实测(从 registry 干净安装,非本地 tgz):`npm i -g` 装出 95 个包、bin 就位;
15
+ 不带凭证执行打印引导并退出码 2;带凭证走 MCP 协议拿到 9 个工具、`serverInfo.version` 与包版本一致;
16
+ `render_chart` 用真实数据出图成功,产物落在 `TIMARAI_OUTPUT_DIR` 指定的绝对路径。
17
+
3
18
  ## v1.0.3 — 2026-09-21(去掉写死的默认值)
4
19
 
5
20
  **三个必填项(`URL` / `ClientId` / `Secret`)一律声明为「无默认值」**,仓库里不再出现任何
package/README.md CHANGED
@@ -8,8 +8,13 @@ Agent 接入后可以直接问「上周哪个商户增长最快」「财务周
8
8
  **一句话边界**:只读消费方。不启动后端、不建库、不写数据——后端 API 怎么部署是平台侧的职责,
9
9
  本仓库只关心「给我一个可达地址」。
10
10
 
11
- > **版本 v1.0.0**(2026-09-21 封板):与接口侧的契约问题 **0 条未解决**,
12
- > 验证基线 smoke 41/41 · e2e 84/84 · live-check 7/7。
11
+ > **版本 v1.0.4**(2026-09-21):已发布到 npm,装它只要一行 ——
12
+ >
13
+ > ```bash
14
+ > npm i -g timarai-dashboard-mcp
15
+ > ```
16
+ >
17
+ > 与接口侧的契约问题 **0 条未解决**;验证基线 smoke 46/46 · e2e 84/84 · live-check 7/7。
13
18
  > 已知边界与上线前置动作见 [`CHANGELOG.md`](CHANGELOG.md)。
14
19
 
15
20
  ---
@@ -45,8 +45,9 @@ where timarai-dashboard-mcp # Windows 确认命令就位;macOS/Linux
45
45
 
46
46
  包内只含 `dist/` + 文档(`files` 白名单),**不含 `.env`、不含源码、不含凭证**。
47
47
 
48
- > 还没发布到 npm(或目标机离线)时用离线包:`npm install -g ./timarai-dashboard-mcp-<版本>.tgz`,
49
- > 由维护者在本机 `npm pack` 产出。发布流程见文末「维护者:发布新版本」。
48
+ > 目标机**离线**(连不上 npm registry)时才用离线包:
49
+ > `npm install -g ./timarai-dashboard-mcp-<版本>.tgz`,由维护者在本机 `npm pack` 产出。
50
+ > 发布流程见文末「维护者:发布新版本」。
50
51
 
51
52
  装完先做一次「冒烟」:直接在终端执行
52
53
 
@@ -209,6 +210,24 @@ git tag -a v<版本> -F <消息文件> && git push --follow-tags
209
210
 
210
211
  升级流程:改 `package.json` 的 `version` → 更新 `CHANGELOG.md` → 提交 → `npm publish`。
211
212
 
213
+ ### ⚠️ 建 token 时两个必踩的坑
214
+
215
+ 用 npm 的 **granular token** 必须**同时**满足下面两条,缺一条 `npm publish` 必挂
216
+ (两条都各自单独挂一次,很难一眼看出是权限问题):
217
+
218
+ | 坑 | 不这么做会怎样 |
219
+ |---|---|
220
+ | 勾上独立的 **`Bypass two-factor authentication`** 复选框(**不在权限下拉框里**,默认不勾) | `403 ... granular access token with bypass 2fa enabled is required to publish packages`(新包首次发布强制 2FA) |
221
+ | Permissions 选 **`Read and write (publish and stage)`**,**不能**选 `(stage only)` | `E_STAGE_REQUIRED`:stage-only 只能给**已存在**的包交待审版本,包还不存在时创建不了 |
222
+
223
+ **更省事的做法**:建 **Classic Token → 类型选 `Automation`**,天然带「直接发布 + 绕过 2FA」,
224
+ 一个下拉搞定,没有第二个开关要勾。
225
+
226
+ 其余三项:Organizations 栏个人账号保持 `No access`(勾了权限却不选组织会报
227
+ "You must select at least one organization");Allowed IP ranges **留空**(本机出口 IP 会变,
228
+ 填了会把自己锁在外面);Select packages 选 **All packages**(包还没发布时,"指定包"的
229
+ 下拉列表里找不到它)。
230
+
212
231
  想不公开:改用内网 registry(Verdaccio 等)`npm publish --registry=<内网地址>`,
213
232
  使用者 `npm i -g timarai-dashboard-mcp --registry=<内网地址>`;
214
233
  或 GitHub Packages(需 scope 与 token,安装方也要配 `.npmrc`,最麻烦)。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "timarai-dashboard-mcp",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "TimarAI 数据驾驶舱只读 MCP 服务器(CEO / 运营 / 财务三舱,数据源为平台驾驶舱 OpenAPI)",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",