host-execution-mcp 1.0.1 → 2.0.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/CHANGELOG.md +37 -0
- package/README.md +13 -11
- package/SECURITY.md +3 -3
- package/dist/access/index.d.ts +21 -10
- package/dist/access/index.js +55 -27
- package/dist/access/index.js.map +1 -1
- package/dist/access/paradi-auth.d.ts +3 -3
- package/dist/access/paradi-auth.js +4 -4
- package/dist/access/paradi-auth.js.map +1 -1
- package/dist/access/paradi-transport.d.ts +1 -1
- package/dist/access/paradi-transport.js +3 -3
- package/dist/access/paradi-transport.js.map +1 -1
- package/dist/access/paradi-username.d.ts +1 -1
- package/dist/access/paradi-username.js +2 -2
- package/dist/access/paradi-username.js.map +1 -1
- package/dist/access/session-pool.d.ts +5 -0
- package/dist/access/session-pool.js +7 -0
- package/dist/access/session-pool.js.map +1 -1
- package/dist/access/ssh-transport.d.ts +1 -1
- package/dist/access/ssh-transport.js +3 -2
- package/dist/access/ssh-transport.js.map +1 -1
- package/dist/config-yaml.d.ts +54 -0
- package/dist/config-yaml.js +172 -0
- package/dist/config-yaml.js.map +1 -0
- package/dist/config.d.ts +45 -1
- package/dist/config.js +126 -22
- package/dist/config.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/instructions.d.ts +4 -1
- package/dist/instructions.js +73 -51
- package/dist/instructions.js.map +1 -1
- package/dist/kubectl/runner.d.ts +7 -8
- package/dist/kubectl/runner.js +18 -21
- package/dist/kubectl/runner.js.map +1 -1
- package/dist/link-runtime.d.ts +39 -0
- package/dist/link-runtime.js +134 -0
- package/dist/link-runtime.js.map +1 -0
- package/dist/server.d.ts +2 -1
- package/dist/server.js +10 -12
- package/dist/server.js.map +1 -1
- package/dist/sources/guides.d.ts +34 -0
- package/dist/sources/guides.js +50 -0
- package/dist/sources/guides.js.map +1 -0
- package/dist/sources/index.d.ts +5 -0
- package/dist/sources/index.js +22 -0
- package/dist/sources/index.js.map +1 -0
- package/dist/sources/yaml-template.d.ts +31 -0
- package/dist/sources/yaml-template.js +35 -0
- package/dist/sources/yaml-template.js.map +1 -0
- package/dist/ssh/access-client.d.ts +6 -2
- package/dist/ssh/access-client.js +58 -27
- package/dist/ssh/access-client.js.map +1 -1
- package/dist/ssh/access-errors.js +1 -1
- package/dist/ssh/access-errors.js.map +1 -1
- package/dist/ssh/access-sftp.js +3 -3
- package/dist/ssh/access-sftp.js.map +1 -1
- package/dist/tools/copy-job-schemas.d.ts +96 -581
- package/dist/tools/copy-job-schemas.js +9 -9
- package/dist/tools/copy-job-schemas.js.map +1 -1
- package/dist/tools/register.d.ts +2 -10
- package/dist/tools/register.js +174 -331
- package/dist/tools/register.js.map +1 -1
- package/dist/tools/remote-schemas.d.ts +156 -708
- package/dist/tools/remote-schemas.js +99 -103
- package/dist/tools/remote-schemas.js.map +1 -1
- package/dist/utils/copy-executor.d.ts +3 -1
- package/dist/utils/copy-executor.js +39 -25
- package/dist/utils/copy-executor.js.map +1 -1
- package/dist/utils/copy-transfer.d.ts +2 -0
- package/dist/utils/copy-transfer.js.map +1 -1
- package/dist/utils/remote-executor.d.ts +3 -4
- package/dist/utils/remote-executor.js +8 -18
- package/dist/utils/remote-executor.js.map +1 -1
- package/dist/utils/remote-target.js +1 -1
- package/dist/utils/remote-target.js.map +1 -1
- package/docs/AGENT_GUIDE.md +31 -103
- package/docs/CONFIGURATION.md +30 -9
- package/docs/GUIDE.md +186 -0
- package/docs/PARADI_ACCESS_PLAN.md +6 -6
- package/docs/TODO.md +4 -11
- package/docs/USER_GUIDE.zh-CN.md +26 -173
- package/docs/host-execution.yaml +92 -0
- package/package.json +3 -1
package/docs/USER_GUIDE.zh-CN.md
CHANGED
|
@@ -1,140 +1,45 @@
|
|
|
1
1
|
# host-execution-mcp 使用教程
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
配置、`ACCESS_KIND`、怎么跟 Agent 说话,以 [GUIDE.md](./GUIDE.md) 为准(MCP Resource `host-execution://guides/user`)。本文只补 Codex 接法、旧包迁移和场景示例。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
建议配套 [k8s-multi-node-deploy](../../../skill/env/k8s-multi-node-deploy/) skill。
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
:::
|
|
10
|
-
建议配套 [**k8s-multi-node-deploy**](https://sh-code.mthreads.com/andy.wang/agent-compose/-/tree/master/skill/env/k8s-multi-node-deploy?ref_type=heads) skill 效果更佳~~~,无法访问联系我 $\color{#0089FF}{@Andy Wang}$
|
|
11
|
-
:::
|
|
12
|
-
|
|
13
|
-
## 1. 安装 Node.js
|
|
14
|
-
|
|
15
|
-
MCP 需要运行在 Node.js 环境上,**Node.js >= 18**。官网 [nodejs.org](https://nodejs.org) 下载 LTS,安装后验证:
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
node -v
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## 2. MCP 配置(Cursor 为例)
|
|
22
|
-
|
|
23
|
-
配置文件:`.cursor/mcp.json`,或 Cursor → Settings → MCP → Edit Config。
|
|
24
|
-
|
|
25
|
-
先问自己一句:**本机能不能用普通 `ssh user@ip` 直接登到要用的那台机器(或跳板)?** 答案决定 `ACCESS_KIND`。
|
|
26
|
-
|
|
27
|
-
| `ACCESS_KIND` | 你的实际情况 | 一句话 |
|
|
28
|
-
| --- | --- | --- |
|
|
29
|
-
| **`ssh`**(默认) | 本机(通常开 VPN)能**正常 SSH** 到入口机 / 目标机,连上就是 bash,没有「选资产 / 选账号」菜单 | 普通 SSH 场景 |
|
|
30
|
-
| **`paradi-gateway`** | **不能**对目标机直接 `ssh`;只能先连帕拉迪网关,再在网关里交互选资产、选登录账号,才能落到业务机 | 网关菜单穿透场景(见下图) |
|
|
31
|
-
|
|
32
|
-
**`ssh` 长什么样:** 本机执行例如 `ssh mccxadmin@10.121.120.7`,输密码后直接进系统 shell —— 配 `ACCESS_KIND=ssh`(§2.1)。
|
|
33
|
-
|
|
34
|
-
**`paradi-gateway` 长什么样:** 本机只能先 `ssh 网关账号@网关IP`,连上后出现「目标资产列表 / 登录帐号列表」,要手选数字才能进机器 —— **MCP 替你省掉这份交互**,用编码账号/密码直接落到目标机(§2.2)。真实终端示意:
|
|
7
|
+
帕拉迪网关长什么样(先连网关,再选手选资产 / 账号):
|
|
35
8
|
|
|
36
9
|

|
|
37
10
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
### 2.1 `ACCESS_KIND=ssh`:本机能正常 SSH(跳板 / K8s)
|
|
41
|
-
|
|
42
|
-
:::
|
|
43
|
-
**需要先验证本地机器通过 VPN 能登录到 `10.121.120.7` 才行(找四季青运维)**
|
|
44
|
-
:::
|
|
45
|
-
|
|
46
|
-
```json
|
|
47
|
-
{
|
|
48
|
-
"mcpServers": {
|
|
49
|
-
"host-execution": {
|
|
50
|
-
"command": "npx",
|
|
51
|
-
"args": ["-y", "host-execution-mcp@latest"],
|
|
52
|
-
"env": {
|
|
53
|
-
"ACCESS_KIND": "ssh",
|
|
54
|
-
"ACCESS_HOST": "10.121.120.7",
|
|
55
|
-
"ACCESS_USER": "mccxadmin",
|
|
56
|
-
"ACCESS_PASSWORD": "mccxadminjd",
|
|
57
|
-
"ACCESS_PORT": "22",
|
|
58
|
-
"ALLOWED_NAMESPACES": "his-test"
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
```
|
|
11
|
+
## Codex
|
|
64
12
|
|
|
65
|
-
|
|
13
|
+
把 GUIDE §2 的 `env` 配进 Codex。不要把密码写进仓库或对话。
|
|
66
14
|
|
|
67
|
-
|
|
15
|
+
也可把 GUIDE 里的 JSON 交给 Codex,让它按 GUIDE 配。`~/.codex/config.toml` 示意:
|
|
68
16
|
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
"
|
|
73
|
-
```
|
|
17
|
+
```toml
|
|
18
|
+
[mcp_servers.host-execution]
|
|
19
|
+
command = "npx"
|
|
20
|
+
args = ["-y", "host-execution-mcp@latest"]
|
|
74
21
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
"mcpServers": {
|
|
82
|
-
"host-execution-paradi": {
|
|
83
|
-
"command": "npx",
|
|
84
|
-
"args": ["-y", "host-execution-mcp@latest"],
|
|
85
|
-
"env": {
|
|
86
|
-
"ACCESS_KIND": "paradi-gateway",
|
|
87
|
-
"ACCESS_HOST": "10.121.61.10",
|
|
88
|
-
"ACCESS_PORT": "22",
|
|
89
|
-
"ACCESS_USER": "ellazj",
|
|
90
|
-
"ACCESS_PASSWORD": "<网关密码>",
|
|
91
|
-
"ACCESS_PARADI_AUTH": "auto",
|
|
92
|
-
"TARGET_HOST": "10.121.35.74",
|
|
93
|
-
"TARGET_USER": "mccuseradmin"
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
22
|
+
[mcp_servers.host-execution.env]
|
|
23
|
+
ACCESS_KIND = "ssh"
|
|
24
|
+
ACCESS_HOST = "<入口机 IP>"
|
|
25
|
+
ACCESS_USER = "<入口机用户>"
|
|
26
|
+
ACCESS_PASSWORD = "<入口机密码>"
|
|
27
|
+
ACCESS_PORT = "22"
|
|
98
28
|
```
|
|
99
29
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
| 模式 | 用户名 | 密码 | 适合 | 实际场景(手动 SSH 等价) |
|
|
103
|
-
| --- | --- | --- | --- | --- |
|
|
104
|
-
| **auto**(默认) | 先按 slash,AUTH_FAILED 再按 compound;成功后进程内钉死赢家 | 同上 | 不确定网关开了哪种能力时 | 无需手选;`access_check` 可看 `paradiAuth` |
|
|
105
|
-
| **slash** | `USER/HOST/OSUSER` | 网关密码 | 网关按三段用户名选资产 | `ssh zhangyimingzgc/10.121.35.68/mccuseradmin@10.121.61.3`,密码填网关密码(网关 `10.121.61.3` → `10.121.35.68` / `mccuseradmin`) |
|
|
106
|
-
| **compound** | `USER` | `密码@##@HOST:SSH:22:OSUSER` | 网关已开程序穿透 | `ssh ellazj@10.121.61.10`,密码填 `网关密码@##@10.121.35.74:SSH:22:mccuseradmin`(网关 `10.121.61.10` → `10.121.35.74` / `mccuseradmin`) |
|
|
107
|
-
|
|
108
|
-
mcp.json **不要**手写三段用户名或 `@##@` 串,由 MCP 按上表编码。
|
|
109
|
-
|
|
110
|
-
保存后重启 MCP 服务。验证连通:
|
|
111
|
-
|
|
112
|
-
> 用 host-execution 跑 `access_check`;若要做 K8s,再让 Agent 执行 `kubectl cluster-info --request-timeout=5s`
|
|
113
|
-
|
|
114
|
-
若提示 `ACCESS_UNAVAILABLE`:先查 VPN / `ACCESS_HOST`,不要反复重试本 MCP 的其他工具。
|
|
115
|
-
|
|
116
|
-
---
|
|
117
|
-
|
|
118
|
-
## 3. 怎么用
|
|
30
|
+
> 使用时整个 vscode 窗口只能当作一个类似 Codex 桌面版 app,建议配合 terminal 使用。
|
|
119
31
|
|
|
120
|
-
|
|
32
|
+
## 与旧包对照(迁移)
|
|
121
33
|
|
|
122
|
-
|
|
|
34
|
+
| 旧(bastion-k8s-mcp) | 新(host-execution-mcp) |
|
|
123
35
|
| --- | --- |
|
|
124
|
-
|
|
|
125
|
-
|
|
|
126
|
-
|
|
|
127
|
-
|
|
|
128
|
-
|
|
|
129
|
-
| 帕拉迪落点 | 已在目标机:直接 `shell_exec` / `docker_*`,不要再 derive |
|
|
130
|
-
|
|
131
|
-
输出太大被截断时,让 Agent 用 `grep`、`tail` 缩小范围。
|
|
132
|
-
|
|
133
|
-
常用工具(Agent 侧):`access_check`、`shell_exec`、`context_derive`、`k8s_*`、`docker_*`、`remote_*` / `remote_copy_*`。
|
|
134
|
-
|
|
135
|
-
---
|
|
36
|
+
| `bastion-k8s-mcp@3.x` | `host-execution-mcp@1.0.0` |
|
|
37
|
+
| `BASTION_HOST` / `USER` / `PASSWORD` / `PORT` | `ACCESS_HOST` / `USER` / `PASSWORD` / `PORT` |
|
|
38
|
+
| `REMOTE_SSH_USER` / `PASSWORD` | `TARGET_USER` / `TARGET_PASSWORD` |
|
|
39
|
+
| `bastion_check` / `bastion_exec` | `access_check` / `shell_exec` |
|
|
40
|
+
| — | `ACCESS_KIND=paradi-gateway` + `TARGET_*`(帕拉迪) |
|
|
136
41
|
|
|
137
|
-
##
|
|
42
|
+
## 场景示例
|
|
138
43
|
|
|
139
44
|
1. MCP + SKILL → 让从零重新创建一个负载,然后拉 128 个节点
|
|
140
45
|
|
|
@@ -154,56 +59,4 @@ mcp.json **不要**手写三段用户名或 `@##@` 串,由 MCP 按上表编码
|
|
|
154
59
|
|
|
155
60
|

|
|
156
61
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
## 常见问题
|
|
160
|
-
|
|
161
|
-
* **MCP 起不来**:检查 `node -v`、入口机地址账号、本机能否 `ssh user@10.121.120.7`;确认 env 已改成 `ACCESS_*`(旧 `BASTION_*` 会被拒绝)
|
|
162
|
-
* **仍配置 BASTION_***:会报错并提示改名;按上文 JSON 换成 `ACCESS_HOST` / `ACCESS_USER` / `ACCESS_PASSWORD`
|
|
163
|
-
* **k8s_logs 为空**:日志在文件里,让 Agent 读挂载路径,不要只用 container stdout
|
|
164
|
-
* **多个节点都 Killed**:先找第一个报 MUSA/SIGABRT 的 rank,其余可能是连锁退出
|
|
165
|
-
* **帕拉迪连不上**:确认网关开了程序穿透(或 slash 可用);可设 `ACCESS_PARADI_AUTH=compound` / `slash` 强制一种;`access_check` 成功后会带 `paradiAuth`
|
|
166
|
-
|
|
167
|
-
更多配置见 [CONFIGURATION.md](./CONFIGURATION.md)。
|
|
168
|
-
|
|
169
|
-
---
|
|
170
|
-
|
|
171
|
-
# 补充:
|
|
172
|
-
|
|
173
|
-
## Codex 使用
|
|
174
|
-
|
|
175
|
-
本地 vscode + codex 也可用。
|
|
176
|
-
|
|
177
|
-
将上述《host-execution-mcp 使用教程》的配置拷贝给 codex 插件,直接让其根据该配置,自动本地配好 MCP server。
|
|
178
|
-
|
|
179
|
-
配置好后大概如下:
|
|
180
|
-
|
|
181
|
-

|
|
182
|
-
|
|
183
|
-
也可以打开 `~/.codex/config.toml`(或本机 Codex 配置)增加配置如下:
|
|
184
|
-
|
|
185
|
-
```toml
|
|
186
|
-
[mcp_servers.host-execution]
|
|
187
|
-
command = "npx"
|
|
188
|
-
args = ["-y", "host-execution-mcp@latest"]
|
|
189
|
-
|
|
190
|
-
[mcp_servers.host-execution.env]
|
|
191
|
-
ALLOWED_NAMESPACES = "his-test"
|
|
192
|
-
ACCESS_KIND = "ssh"
|
|
193
|
-
ACCESS_HOST = "10.121.120.7"
|
|
194
|
-
ACCESS_PASSWORD = "mccxadminjd"
|
|
195
|
-
ACCESS_PORT = "22"
|
|
196
|
-
ACCESS_USER = "mccxadmin"
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
> 使用时整个 vscode 窗口只能当作一个类似 Codex 桌面版 app,建议配合 terminal 使用。
|
|
200
|
-
|
|
201
|
-
## 与旧包对照(迁移)
|
|
202
|
-
|
|
203
|
-
| 旧(bastion-k8s-mcp) | 新(host-execution-mcp) |
|
|
204
|
-
| --- | --- |
|
|
205
|
-
| `bastion-k8s-mcp@3.x` | `host-execution-mcp@1.0.0` |
|
|
206
|
-
| `BASTION_HOST` / `USER` / `PASSWORD` / `PORT` | `ACCESS_HOST` / `USER` / `PASSWORD` / `PORT` |
|
|
207
|
-
| `REMOTE_SSH_USER` / `PASSWORD` | `TARGET_USER` / `TARGET_PASSWORD` |
|
|
208
|
-
| `bastion_check` / `bastion_exec` | `access_check` / `shell_exec` |
|
|
209
|
-
| — | `ACCESS_KIND=paradi-gateway` + `TARGET_*`(帕拉迪) |
|
|
62
|
+
常见问题见 [GUIDE.md](./GUIDE.md)。更多环境变量见 [CONFIGURATION.md](./CONFIGURATION.md)。
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# host-execution 名册(对照 docs/GUIDE.md §2)
|
|
2
|
+
# 路径写死:
|
|
3
|
+
# Linux/mac ~/.agents/host-execution.yaml
|
|
4
|
+
# Windows %USERPROFILE%\.agents\host-execution.yaml
|
|
5
|
+
#
|
|
6
|
+
# 一条链路 = GUIDE 里一份 mcp.json env。description 必填且唯一,写清场景用途(谁、干什么、哪台),不要只写「本机直连 + IP」。
|
|
7
|
+
# 追加:在 links 下复制下面某一段示例,去掉行首 #,改 description 与账号。
|
|
8
|
+
# 对话里出现新的 user+IP(新跳板/网关/账号,或同一 IP 换用户)→ 追加一条,不要只记在对话里。
|
|
9
|
+
# 同一 ACCESS 且同一 TARGET_USER、只是多了一个目标 IP → 往该条 TARGET_HOSTS 加一项。
|
|
10
|
+
# 同一 IP、不同用户(root vs mccxadmin)是两条链路,不要写进同一条 TARGET_HOSTS。
|
|
11
|
+
# description 不准(场景变了、或「本机/跳板/生产」说错)→ 当场改名,随后按新名精确选用;不要把旧名当不可改主键。
|
|
12
|
+
# 本轮对话一直指向某一条 → 一直用那条,不要因为本文件有多条(含同 IP 另一用户)就换。
|
|
13
|
+
# 选用时 description 必须精确相等。不要 CIDR / 通配。
|
|
14
|
+
# 帕拉迪:不要手写 USER/HOST/OSUSER 或 密码@##@… ,由 MCP 编码。
|
|
15
|
+
|
|
16
|
+
links: []
|
|
17
|
+
|
|
18
|
+
# --- GUIDE §2.1 最少:只上入口机 ---
|
|
19
|
+
# - description: 入口机本机作业
|
|
20
|
+
# ACCESS_KIND: ssh # 可省,默认 ssh
|
|
21
|
+
# ACCESS_HOST: "<入口机 IP>"
|
|
22
|
+
# ACCESS_USER: "<入口机用户>"
|
|
23
|
+
# ACCESS_PASSWORD: "<入口机密码>"
|
|
24
|
+
# ACCESS_PORT: 22 # 可省
|
|
25
|
+
|
|
26
|
+
# --- GUIDE §2.1 密钥代替密码 ---
|
|
27
|
+
# - description: 入口机密钥登录
|
|
28
|
+
# ACCESS_HOST: "<入口机 IP>"
|
|
29
|
+
# ACCESS_USER: "<入口机用户>"
|
|
30
|
+
# ACCESS_PRIVATE_KEY_PATH: "<密钥路径>"
|
|
31
|
+
|
|
32
|
+
# --- GUIDE §2.1 限制 kubectl 命名空间 ---
|
|
33
|
+
# ALLOWED_NAMESPACES: "his-test"
|
|
34
|
+
|
|
35
|
+
# --- GUIDE §2.1 跳板 + 一台默认第二跳 ---
|
|
36
|
+
# - description: 跳板再上训练机
|
|
37
|
+
# ACCESS_HOST: "<入口机 IP>"
|
|
38
|
+
# ACCESS_USER: "<入口机用户>"
|
|
39
|
+
# ACCESS_PASSWORD: "<入口机密码>"
|
|
40
|
+
# TARGET_HOSTS:
|
|
41
|
+
# - "<目标机 IP>"
|
|
42
|
+
# TARGET_USER: "<目标机用户>"
|
|
43
|
+
# TARGET_PASSWORD: "<目标机密码>"
|
|
44
|
+
|
|
45
|
+
# --- GUIDE §2.1 跳板 + 多台已知 IP(同一账号)---
|
|
46
|
+
# - description: 跳板再上多台训练机
|
|
47
|
+
# ACCESS_HOST: "<入口机 IP>"
|
|
48
|
+
# ACCESS_USER: "<入口机用户>"
|
|
49
|
+
# ACCESS_PASSWORD: "<入口机密码>"
|
|
50
|
+
# TARGET_HOSTS:
|
|
51
|
+
# - "<目标机 IP>"
|
|
52
|
+
# - "<目标机 IP>"
|
|
53
|
+
# TARGET_USER: "<目标机用户>"
|
|
54
|
+
# TARGET_PASSWORD: "<目标机密码>"
|
|
55
|
+
|
|
56
|
+
# --- GUIDE §2.1 只留账号,对话里说 IP ---
|
|
57
|
+
# - description: 跳板账号已配,目标 IP 对话指定
|
|
58
|
+
# ACCESS_HOST: "<入口机 IP>"
|
|
59
|
+
# ACCESS_USER: "<入口机用户>"
|
|
60
|
+
# ACCESS_PASSWORD: "<入口机密码>"
|
|
61
|
+
# TARGET_USER: "<目标机用户>"
|
|
62
|
+
# TARGET_PASSWORD: "<目标机密码>"
|
|
63
|
+
|
|
64
|
+
# --- GUIDE §2.2 帕拉迪 ---
|
|
65
|
+
# - description: 经网关上业务机
|
|
66
|
+
# ACCESS_KIND: paradi-gateway
|
|
67
|
+
# ACCESS_HOST: "<网关 IP>"
|
|
68
|
+
# ACCESS_PORT: 22
|
|
69
|
+
# ACCESS_USER: "<网关用户>"
|
|
70
|
+
# ACCESS_PASSWORD: "<网关密码>"
|
|
71
|
+
# ACCESS_PARADI_AUTH: auto # auto | slash | compound
|
|
72
|
+
# TARGET_HOSTS:
|
|
73
|
+
# - "<目标机 IP>"
|
|
74
|
+
# TARGET_USER: "<目标机系统用户>"
|
|
75
|
+
|
|
76
|
+
# --- 同一 IP、不同用户:两条链路 ---
|
|
77
|
+
# - description: 业务机 mccxadmin
|
|
78
|
+
# ACCESS_HOST: "<入口机 IP>"
|
|
79
|
+
# ACCESS_USER: "<入口机用户>"
|
|
80
|
+
# ACCESS_PASSWORD: "<入口机密码>"
|
|
81
|
+
# TARGET_HOSTS:
|
|
82
|
+
# - "<目标机 IP>"
|
|
83
|
+
# TARGET_USER: "mccxadmin"
|
|
84
|
+
# TARGET_PASSWORD: "<该用户密码>"
|
|
85
|
+
# - description: 业务机 root
|
|
86
|
+
# ACCESS_HOST: "<入口机 IP>"
|
|
87
|
+
# ACCESS_USER: "<入口机用户>"
|
|
88
|
+
# ACCESS_PASSWORD: "<入口机密码>"
|
|
89
|
+
# TARGET_HOSTS:
|
|
90
|
+
# - "<目标机 IP>"
|
|
91
|
+
# TARGET_USER: "root"
|
|
92
|
+
# TARGET_PASSWORD: "<该用户密码>"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "host-execution-mcp",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Access -> HostExecutionContext -> Runtime MCP for remote shell/docker/kubectl (SSH jump or Paradi gateway)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -47,12 +47,14 @@
|
|
|
47
47
|
"homepage": "https://github.com/your-org/host-execution-mcp#readme",
|
|
48
48
|
"dependencies": {
|
|
49
49
|
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
50
|
+
"js-yaml": "^5.4.2",
|
|
50
51
|
"ssh2": "^1.16.0",
|
|
51
52
|
"ssh2-sftp-client": "^12.1.1",
|
|
52
53
|
"zod": "^3.24.2"
|
|
53
54
|
},
|
|
54
55
|
"devDependencies": {
|
|
55
56
|
"@eslint/js": "^9.23.0",
|
|
57
|
+
"@types/js-yaml": "^4.0.9",
|
|
56
58
|
"@types/node": "^22.13.10",
|
|
57
59
|
"@types/ssh2": "^1.15.4",
|
|
58
60
|
"@types/ssh2-sftp-client": "^9.0.6",
|