@leeguoo/yapi-mcp 0.3.0 → 0.3.2

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/README.md CHANGED
@@ -54,10 +54,54 @@ Yapi Auto MCP Server 是一个基于 [Model Context Protocol](https://modelconte
54
54
 
55
55
  ### 推荐方式:用 Cross Request Master 一键生成 MCP 配置(免手动找 Token)
56
56
 
57
- 如果你日常就在浏览器里使用 YApi,推荐安装 Chrome 扩展 [cross-request-master](https://github.com/leeguooooo/cross-request-master)。它会在 YApi 接口详情页(基本信息区域右上角)提供 **「当前项目 MCP 配置」** / **「所有项目 MCP 配置」** 按钮,可一键生成并复制配置:
57
+ 如果你日常就在浏览器里使用 YApi,推荐安装 Chrome 扩展 [cross-request-master](https://github.com/leeguooooo/cross-request-master)。它会在 YApi 接口详情页(基本信息区域右上角)提供 **「YApi 工具箱」** 按钮,包含 MCP 配置/Skill 一键安装/CLI docs-sync 说明;另外保留 **「复制给 AI」** 一键复制接口 Markdown:
58
58
 
59
- - 当前项目:使用 `--yapi-token=projectId:token`
60
- - 所有项目(全局模式):使用 `--yapi-auth-mode=global`(账号密码),启动后调用一次 `yapi_update_token` 刷新登录态 Cookie(并可选刷新项目缓存)
59
+ - MCP 配置(所有项目):使用 `--yapi-auth-mode=global`(账号密码),启动后调用一次 `yapi_update_token` 刷新登录态 Cookie(并可选刷新项目缓存)
60
+ - Skill 一键安装:生成 Codex/Claude Skill,并写入全局配置 `~/.yapi/config.toml`
61
+ - CLI 使用与 docs-sync:提供本地 CLI 安装命令和文档同步示例
62
+
63
+ ### Skill 一键安装与 CLI
64
+
65
+ 一条命令把 Skill 安装到 Codex / Claude Code,并写入 `~/.yapi/config.toml`(缺省会提示输入):
66
+
67
+ ```bash
68
+ npx -y @leeguoo/yapi-mcp install-skill \
69
+ --yapi-base-url=https://your-yapi-domain.com \
70
+ --yapi-email=your_email@example.com \
71
+ --yapi-password=your_password
72
+ ```
73
+
74
+ CLI 使用示例(走同一份 `~/.yapi/config.toml`):
75
+
76
+ ```bash
77
+ npx -y @leeguoo/yapi-mcp yapi -V
78
+ npx -y @leeguoo/yapi-mcp yapi -h
79
+ npx -y @leeguoo/yapi-mcp yapi login
80
+ npx -y @leeguoo/yapi-mcp yapi --path /api/interface/get --query id=123
81
+ ```
82
+
83
+ 全局模式下可先执行 `yapi login` 缓存登录态(`~/.yapi-mcp/auth-*.json`),权限失效会自动重新登录。
84
+
85
+ Markdown 同步到 YApi(支持 Mermaid 预渲染,需 `pandoc` + `mmdc`):
86
+
87
+ ```bash
88
+ npx -y @leeguoo/yapi-mcp yapi docs-sync bind add \
89
+ --name projectA \
90
+ --dir docs/release-notes \
91
+ --project-id 267 \
92
+ --catid 3667
93
+
94
+ npx -y @leeguoo/yapi-mcp yapi docs-sync --binding projectA
95
+ # 或同步 .yapi/docs-sync.json 内的所有绑定
96
+ npx -y @leeguoo/yapi-mcp yapi docs-sync
97
+ ```
98
+
99
+ 说明:
100
+ - 绑定配置保存在 `.yapi/docs-sync.json`(自动维护 `files`:文件名 → API id)
101
+ - 兼容旧方式:`--dir` 读取目录内 `.yapi.json` 的 `project_id/catid` 与 `source_files`
102
+ - 管理绑定:`yapi docs-sync bind list|get|add|update|remove`
103
+ - 可用 `--dry-run` 只做转换不更新
104
+ - 如需跳过 Mermaid 渲染,使用 `--no-mermaid`
61
105
 
62
106
  ### 手动方式:使用 npx(无需安装)
63
107
 
@@ -245,7 +289,7 @@ node dist/cli.js --stdio
245
289
  2. 进入项目设置页面
246
290
  3. 在 Token 配置中生成或查看 Token
247
291
 
248
- 不想手动找 Token 的话,可以用 [cross-request-master](https://github.com/leeguooooo/cross-request-master) 在接口详情页一键生成 MCP 配置(会自动带上 `projectId:token`)。
292
+ 不想手动找 Token 的话,可以用 [cross-request-master](https://github.com/leeguooooo/cross-request-master) 在接口详情页一键生成 **MCP 配置(所有项目)** 或 **Skill 一键安装**。
249
293
 
250
294
  ![Token 获取示例](./images/token.png)
251
295
 
package/dist/cli.js CHANGED
@@ -4,14 +4,29 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  const path_1 = require("path");
5
5
  const dotenv_1 = require("dotenv");
6
6
  const index_1 = require("./index");
7
+ const install_1 = require("./skill/install");
7
8
  (0, dotenv_1.config)({ path: (0, path_1.resolve)(process.cwd(), ".env") });
8
- (0, index_1.startServer)().catch((error) => {
9
- if (error instanceof Error) {
10
- console.error("Failed to start server:", error.message);
11
- }
12
- else {
13
- console.error("Failed to start server with unknown error:", error);
14
- }
15
- process.exit(1);
16
- });
9
+ const [command, ...restArgs] = process.argv.slice(2);
10
+ if (command === "install-skill") {
11
+ (0, install_1.runInstallSkill)(restArgs).catch((error) => {
12
+ if (error instanceof Error) {
13
+ console.error("Skill install failed:", error.message);
14
+ }
15
+ else {
16
+ console.error("Skill install failed with unknown error:", error);
17
+ }
18
+ process.exit(1);
19
+ });
20
+ }
21
+ else {
22
+ (0, index_1.startServer)().catch((error) => {
23
+ if (error instanceof Error) {
24
+ console.error("Failed to start server:", error.message);
25
+ }
26
+ else {
27
+ console.error("Failed to start server with unknown error:", error);
28
+ }
29
+ process.exit(1);
30
+ });
31
+ }
17
32
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,+BAA+B;AAC/B,mCAAgC;AAChC,mCAAsC;AAGtC,IAAA,eAAM,EAAC,EAAE,IAAI,EAAE,IAAA,cAAO,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AAEjD,IAAA,mBAAW,GAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IACrC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,+BAA+B;AAC/B,mCAAgC;AAChC,mCAAsC;AACtC,6CAAkD;AAGlD,IAAA,eAAM,EAAC,EAAE,IAAI,EAAE,IAAA,cAAO,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AAEjD,MAAM,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAErD,IAAI,OAAO,KAAK,eAAe,EAAE,CAAC;IAChC,IAAA,yBAAe,EAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACjD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;KAAM,CAAC;IACN,IAAA,mBAAW,GAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACrC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function runInstallSkill(rawArgs: string[]): Promise<void>;