@fragments_awe/ops-mcp 0.0.0-stage → 0.15.0
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 +66 -2
- package/bin/darwin-arm64/ops-mcp +0 -0
- package/bin/darwin-x64/ops-mcp +0 -0
- package/bin/linux-x64/ops-mcp +0 -0
- package/bin/win32-x64/ops-mcp.exe +0 -0
- package/index.cjs +29 -0
- package/package.json +24 -4
package/README.md
CHANGED
|
@@ -1,3 +1,67 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Ops MCP
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
需要 Node.js 18+。支持 macOS Apple/Intel、Windows x64、Linux x64。
|
|
4
|
+
|
|
5
|
+
```sh
|
|
6
|
+
npm install -g @fragments_awe/ops-mcp
|
|
7
|
+
ops-mcp login us_east
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
国内登录用 `ops-mcp login cn`,新加坡用 `ops-mcp login singapore`。在浏览器完成飞书授权。
|
|
11
|
+
|
|
12
|
+
AI 客户端的 MCP 配置:
|
|
13
|
+
|
|
14
|
+
```json
|
|
15
|
+
{
|
|
16
|
+
"mcpServers": {
|
|
17
|
+
"wgops": {
|
|
18
|
+
"command": "ops-mcp",
|
|
19
|
+
"args": []
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Claude Code 可执行 `claude mcp add --transport stdio --scope user wgops -- ops-mcp`。
|
|
26
|
+
如果图形客户端找不到命令,使用 `which ops-mcp`(Windows 用 `where ops-mcp`)输出的完整路径。
|
|
27
|
+
|
|
28
|
+
对 AI 说“先绑定美东路演,再列出测试集合”。区域分别是 `cn_dev`、`singapore_dev`、`us_east_exhibition`。
|
|
29
|
+
|
|
30
|
+
MCP 启动后后台查询 npm latest,检查结果缓存 24 小时,长驻进程每 24 小时再次检查。
|
|
31
|
+
发现新版会在绑定区域后的一次成功工具调用中附带更新提醒,由 AI 转述;不保证客户端弹出通知。
|
|
32
|
+
|
|
33
|
+
```sh
|
|
34
|
+
npm install -g @fragments_awe/ops-mcp@latest
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
更新后重启客户端里的 MCP。登录凭据仍保存在 `~/.wgops-mcp/session.json`,不包含在 npm 包中。
|
|
38
|
+
|
|
39
|
+
维护者从仓库 backend 目录构建,再进入 npm/ops-mcp 发布:
|
|
40
|
+
|
|
41
|
+
```sh
|
|
42
|
+
GOTOOLCHAIN=auto go run ./cmd/package-ops-mcp --npm-output ../npm/ops-mcp
|
|
43
|
+
cd ../npm/ops-mcp
|
|
44
|
+
npm test
|
|
45
|
+
npm pack
|
|
46
|
+
npm publish --access public
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
发布前同步修改 `backend/internal/opsmcp/version.go` 与 `package.json` 的版本,构建及 prepack 都会验证版本一致。
|
|
50
|
+
|
|
51
|
+
## 直接调用 ModelHub
|
|
52
|
+
|
|
53
|
+
更新到 0.15.0 后增加一个 `modelhub` 工具,独立于 Ops 登录和区域绑定。
|
|
54
|
+
先让 Agent 用 configure 保存 ModelHub 公网地址和用户提供的 Key,再用 models 查 text/image/video 模型。
|
|
55
|
+
generate 只需 model、prompt,可选 images(本机绝对路径或 URL)、图片尺寸或视频时长;不需要填写 protobuf。
|
|
56
|
+
result 用同一 task_id 取结果,支持 wait_seconds=0–60,完成提前返回。
|
|
57
|
+
|
|
58
|
+
Key 位于 `~/.wgops-mcp/modelhub.json`,仅当前用户可读写;生成文件在 `~/.wgops-mcp/modelhub/jobs/`。
|
|
59
|
+
等待时保持 MCP 连接,失败不自动重提。语音暂不接入。
|
|
60
|
+
|
|
61
|
+
## 自动发版
|
|
62
|
+
|
|
63
|
+
相关代码合入 dev 后,`Publish Ops MCP to npm` 自动运行:检查两处版本一致且高于 npm latest,
|
|
64
|
+
跑测试、编译四平台、验证 npm 包,再使用仓库 Actions Secret NPM_TOKEN 发布并回查 latest 与 gitHead。
|
|
65
|
+
同一源码提交重跑会跳过已发布版本,其他提交复用已发布版本会失败,要求先提升版本。
|
|
66
|
+
Token 仅在发布步骤注入 NODE_AUTH_TOKEN,不进入安装包;到期后更新仓库 Secret。
|
|
67
|
+
Secret 只需包级发布权限,无需组织管理权限。
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/index.cjs
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
const { spawn } = require('node:child_process')
|
|
3
|
+
const { existsSync } = require('node:fs')
|
|
4
|
+
const { join } = require('node:path')
|
|
5
|
+
|
|
6
|
+
const platform = `${process.platform}-${process.arch}`
|
|
7
|
+
const binary = join(__dirname, 'bin', platform, process.platform === 'win32' ? 'ops-mcp.exe' : 'ops-mcp')
|
|
8
|
+
if (!existsSync(binary)) {
|
|
9
|
+
console.error(`Ops MCP 暂不支持 ${platform}。支持 macOS arm64/x64、Windows x64 和 Linux x64。`)
|
|
10
|
+
process.exit(1)
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// stdin/stdout 原样交给 Go MCP;启动器日志只能写 stderr,避免破坏 JSON-RPC。
|
|
14
|
+
const child = spawn(binary, process.argv.slice(2), { stdio: 'inherit' })
|
|
15
|
+
for (const signal of ['SIGINT', 'SIGTERM']) {
|
|
16
|
+
process.on(signal, () => child.kill(signal))
|
|
17
|
+
}
|
|
18
|
+
child.on('error', error => {
|
|
19
|
+
console.error(`Ops MCP 启动失败:${error.message}`)
|
|
20
|
+
process.exitCode = 1
|
|
21
|
+
})
|
|
22
|
+
child.on('exit', (code, signal) => {
|
|
23
|
+
if (signal) {
|
|
24
|
+
process.removeAllListeners(signal)
|
|
25
|
+
process.kill(process.pid, signal)
|
|
26
|
+
} else {
|
|
27
|
+
process.exitCode = code ?? 1
|
|
28
|
+
}
|
|
29
|
+
})
|
package/package.json
CHANGED
|
@@ -1,6 +1,26 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fragments_awe/ops-mcp",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.15.0",
|
|
4
|
+
"description": "WG Ops MCP tools for local AI clients",
|
|
5
|
+
"license": "UNLICENSED",
|
|
6
|
+
"bin": {
|
|
7
|
+
"ops-mcp": "index.cjs"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"index.cjs",
|
|
11
|
+
"bin/",
|
|
12
|
+
"README.md"
|
|
13
|
+
],
|
|
14
|
+
"engines": {
|
|
15
|
+
"node": ">=18"
|
|
16
|
+
},
|
|
17
|
+
"publishConfig": {
|
|
18
|
+
"access": "public",
|
|
19
|
+
"registry": "https://registry.npmjs.org/"
|
|
20
|
+
},
|
|
21
|
+
"scripts": {
|
|
22
|
+
"test": "node --test launcher.test.cjs",
|
|
23
|
+
"prepack": "node verify-package.cjs"
|
|
24
|
+
},
|
|
25
|
+
"gitHead": "abdb6870b946b6b1f47f48d4e9b3cf2b6fd0f196"
|
|
26
|
+
}
|