@aicommander/mcp 1.0.12 → 1.0.13
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 +7 -5
- package/dist/bin/mcp.js +20 -6
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -13,8 +13,10 @@ Use this package to connect any MCP client that speaks **stdio** (Codex CLI, Cla
|
|
|
13
13
|
|
|
14
14
|
| Tool | Description |
|
|
15
15
|
|---|---|
|
|
16
|
-
| `remote_exec` | Run a shell command on
|
|
17
|
-
| `session_status` | Check whether a machine is online
|
|
16
|
+
| `remote_exec` | Run a shell command on one of your machines — the tool for any "connect to / remote shell / run X on" request. Name the machine by its `AIC-…` session code or (with an API key) a saved alias/hostname like `wearfits-m3`; streams stdout/stderr back. |
|
|
17
|
+
| `session_status` | Check whether a machine is online/active/reachable (e.g. "is wearfits-m3 up?"). Same machine naming as above. |
|
|
18
|
+
|
|
19
|
+
These are the canonical way to reach your machines — your AI client should use them rather than probing the local network, DNS/`.local`, or SSH. A string containing `aic-`/`AIC-` is almost certainly one of your machines.
|
|
18
20
|
|
|
19
21
|
## Configuration
|
|
20
22
|
|
|
@@ -70,11 +72,11 @@ env = { AICOMMANDER_SERVER = "https://aicommander.dev" }
|
|
|
70
72
|
> `AICOMMANDER_TOKEN` (an account API key) is optional — add it to `env` only if
|
|
71
73
|
> you want the accounts/alias features.
|
|
72
74
|
|
|
73
|
-
Then just
|
|
75
|
+
Then just name a machine in chat — by session code or saved alias:
|
|
74
76
|
|
|
75
|
-
> *"Show disk usage on AIC-XYZ-1234"*
|
|
77
|
+
> *"Show disk usage on AIC-XYZ-1234"* · *"connect to wearfits-m3"* · *"is my-laptop online?"*
|
|
76
78
|
|
|
77
|
-
The client
|
|
79
|
+
The client routes it to `session_status` / `remote_exec` for you.
|
|
78
80
|
|
|
79
81
|
## License
|
|
80
82
|
|
package/dist/bin/mcp.js
CHANGED
|
@@ -15,8 +15,16 @@ const server = new McpServer({
|
|
|
15
15
|
// Tool: remote_exec
|
|
16
16
|
server.registerTool("remote_exec", {
|
|
17
17
|
description: "Execute a shell command on a remote machine running the AI Commander agent. " +
|
|
18
|
-
"
|
|
19
|
-
"
|
|
18
|
+
"THIS IS THE TOOL FOR REMOTE-MACHINE ACCESS — reach for it whenever the user asks to " +
|
|
19
|
+
"connect to a computer/machine/server, open a remote connection, remote shell, remote bash, " +
|
|
20
|
+
"remote terminal, or SSH-style session, or to run / check / install / fix something ON another " +
|
|
21
|
+
"machine (e.g. \"connect to wearfits-m3\", \"run df -h on my laptop\", \"open a shell on the build server\"). " +
|
|
22
|
+
"The machine can be named by an AIC- session code (e.g. AIC-XYZ-1234) OR — with an API key — a saved " +
|
|
23
|
+
"machine alias or hostname the user calls it by (e.g. 'wearfits-m3', 'aic-wearfits', 'my-laptop'); pass " +
|
|
24
|
+
"whatever the user said as `code` exactly as given. STRONG SIGNAL: a string containing 'aic-'/'AIC-' " +
|
|
25
|
+
"(any case) is almost certainly one of their machines — use this tool on it. Do NOT fall back to probing " +
|
|
26
|
+
"the local network, DNS, mDNS/.local, ping, or a raw ssh client — this tool IS the remote connection. " +
|
|
27
|
+
"Streams stdout/stderr output in real time.\n\n" +
|
|
20
28
|
"SAFETY — READ BEFORE USING. The agent runs as ROOT, so every command has full, " +
|
|
21
29
|
"unrestricted control of the target machine and can cause irreversible damage:\n" +
|
|
22
30
|
"- Use this ONLY for legitimate administration the user is authorized to perform on their " +
|
|
@@ -36,7 +44,7 @@ server.registerTool("remote_exec", {
|
|
|
36
44
|
inputSchema: {
|
|
37
45
|
code: z
|
|
38
46
|
.string()
|
|
39
|
-
.describe("
|
|
47
|
+
.describe("How the user named the machine, passed exactly as given: an AIC- session code (e.g. AIC-XYZ-1234), or — with an API key — a saved alias/hostname like 'wearfits-m3' or 'aic-wearfits'. A string containing 'aic-' is almost certainly one of the user's machines."),
|
|
40
48
|
command: z
|
|
41
49
|
.string()
|
|
42
50
|
.describe("Shell command to execute (runs via /bin/sh -c on the remote machine)"),
|
|
@@ -110,12 +118,18 @@ server.registerTool("remote_exec", {
|
|
|
110
118
|
});
|
|
111
119
|
// Tool: session_status
|
|
112
120
|
server.registerTool("session_status", {
|
|
113
|
-
description: "Check whether a remote machine is online and ready
|
|
114
|
-
"
|
|
121
|
+
description: "Check whether a remote machine is online, active, reachable and ready — and the FIRST step " +
|
|
122
|
+
"when the user wants to connect to one of their machines. USE THIS whenever the user asks to " +
|
|
123
|
+
"\"connect to / reach / log into\" a computer, or asks about its state (e.g. \"connect to wearfits-m3\", " +
|
|
124
|
+
"\"is my computer wearfits-m3 active/online/up?\", \"can you reach the build server?\"). The machine can be " +
|
|
125
|
+
"named by an AIC- session code (e.g. AIC-XYZ-1234) OR — with an API key — a saved alias/hostname like " +
|
|
126
|
+
"'wearfits-m3' or 'aic-wearfits'; pass that name as `code` exactly as given. STRONG SIGNAL: a string " +
|
|
127
|
+
"containing 'aic-'/'AIC-' (any case) is almost certainly one of their machines. Do NOT answer connectivity " +
|
|
128
|
+
"questions by probing the local network, DNS, mDNS/.local, ping, or ssh — this tool is the authoritative check.",
|
|
115
129
|
inputSchema: {
|
|
116
130
|
code: z
|
|
117
131
|
.string()
|
|
118
|
-
.describe("
|
|
132
|
+
.describe("How the user named the machine, passed exactly as given: an AIC- session code (e.g. AIC-XYZ-1234), or — with an API key — a saved alias/hostname like 'wearfits-m3' or 'aic-wearfits'."),
|
|
119
133
|
},
|
|
120
134
|
}, async ({ code }) => {
|
|
121
135
|
const res = await fetch(`${SERVER_URL}/mcp`, {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aicommander/mcp",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "Universal stdio MCP server for AI Commander — connect Codex CLI, Claude Desktop, or any stdio MCP client to remote machines by session code.",
|
|
3
|
+
"version": "1.0.13",
|
|
4
|
+
"description": "Universal stdio MCP server for AI Commander — connect Codex CLI, Claude Desktop, or any stdio MCP client to your remote machines by session code (AIC-…) or saved alias/hostname.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mcp",
|
|
7
7
|
"model-context-protocol",
|
|
@@ -33,11 +33,11 @@
|
|
|
33
33
|
"typecheck": "tsc --noEmit"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@modelcontextprotocol/sdk": "
|
|
37
|
-
"zod": "
|
|
36
|
+
"@modelcontextprotocol/sdk": "1.29.0",
|
|
37
|
+
"zod": "3.25.76"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
|
-
"@types/node": "
|
|
41
|
-
"typescript": "
|
|
40
|
+
"@types/node": "22.19.21",
|
|
41
|
+
"typescript": "5.9.3"
|
|
42
42
|
}
|
|
43
43
|
}
|