ssh-mcp-pro 1.2.1 → 1.4.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 +72 -0
- package/README.md +12 -2
- package/dist/agent-bin.js +5 -2
- package/dist/agent-bin.js.map +1 -1
- package/dist/cli.d.ts +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +38 -47
- package/dist/cli.js.map +1 -1
- package/dist/config-security-env.d.ts +4 -0
- package/dist/config-security-env.d.ts.map +1 -0
- package/dist/config-security-env.js +64 -0
- package/dist/config-security-env.js.map +1 -0
- package/dist/config.d.ts +2 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +4 -67
- package/dist/config.js.map +1 -1
- package/dist/connector-profile.d.ts +17 -3
- package/dist/connector-profile.d.ts.map +1 -1
- package/dist/connector-profile.js.map +1 -1
- package/dist/detect.d.ts.map +1 -1
- package/dist/detect.js +226 -192
- package/dist/detect.js.map +1 -1
- package/dist/ensure-package-service.d.ts +9 -0
- package/dist/ensure-package-service.d.ts.map +1 -0
- package/dist/ensure-package-service.js +146 -0
- package/dist/ensure-package-service.js.map +1 -0
- package/dist/ensure-pkg.js +4 -4
- package/dist/ensure-pkg.js.map +1 -1
- package/dist/ensure.d.ts.map +1 -1
- package/dist/ensure.js +15 -144
- package/dist/ensure.js.map +1 -1
- package/dist/fs-sftp.js +1 -1
- package/dist/fs-sftp.js.map +1 -1
- package/dist/fs-stat.d.ts +10 -0
- package/dist/fs-stat.d.ts.map +1 -0
- package/dist/fs-stat.js +62 -0
- package/dist/fs-stat.js.map +1 -0
- package/dist/fs-tools.d.ts.map +1 -1
- package/dist/fs-tools.js +6 -58
- package/dist/fs-tools.js.map +1 -1
- package/dist/http-security.d.ts.map +1 -1
- package/dist/http-security.js +6 -6
- package/dist/http-security.js.map +1 -1
- package/dist/http-server-runtime.d.ts.map +1 -1
- package/dist/http-server-runtime.js +41 -7
- package/dist/http-server-runtime.js.map +1 -1
- package/dist/index.js +6 -23
- package/dist/index.js.map +1 -1
- package/dist/mcp-http-web.d.ts +8 -0
- package/dist/mcp-http-web.d.ts.map +1 -0
- package/dist/mcp-http-web.js +35 -0
- package/dist/mcp-http-web.js.map +1 -0
- package/dist/mcp.d.ts +6 -2
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +22 -14
- package/dist/mcp.js.map +1 -1
- package/dist/policy.d.ts +8 -0
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +147 -105
- package/dist/policy.js.map +1 -1
- package/dist/process.d.ts.map +1 -1
- package/dist/process.js +11 -7
- package/dist/process.js.map +1 -1
- package/dist/prompts.d.ts +2 -11
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js.map +1 -1
- package/dist/remote/agent-activity-log.d.ts +26 -0
- package/dist/remote/agent-activity-log.d.ts.map +1 -0
- package/dist/remote/agent-activity-log.js +211 -0
- package/dist/remote/agent-activity-log.js.map +1 -0
- package/dist/remote/agent-cli.d.ts.map +1 -1
- package/dist/remote/agent-cli.js +92 -25
- package/dist/remote/agent-cli.js.map +1 -1
- package/dist/remote/agent-executor.d.ts.map +1 -1
- package/dist/remote/agent-executor.js +25 -16
- package/dist/remote/agent-executor.js.map +1 -1
- package/dist/remote/agent-handler.d.ts +2 -0
- package/dist/remote/agent-handler.d.ts.map +1 -1
- package/dist/remote/agent-handler.js +4 -0
- package/dist/remote/agent-handler.js.map +1 -1
- package/dist/remote/config.d.ts.map +1 -1
- package/dist/remote/config.js +12 -1
- package/dist/remote/config.js.map +1 -1
- package/dist/remote/control-plane.d.ts +12 -0
- package/dist/remote/control-plane.d.ts.map +1 -1
- package/dist/remote/control-plane.js +174 -53
- package/dist/remote/control-plane.js.map +1 -1
- package/dist/remote/crypto.d.ts +9 -4
- package/dist/remote/crypto.d.ts.map +1 -1
- package/dist/remote/crypto.js +41 -9
- package/dist/remote/crypto.js.map +1 -1
- package/dist/remote/http-util.d.ts.map +1 -1
- package/dist/remote/http-util.js +14 -7
- package/dist/remote/http-util.js.map +1 -1
- package/dist/remote/mcp-tools.d.ts +7 -0
- package/dist/remote/mcp-tools.d.ts.map +1 -1
- package/dist/remote/mcp-tools.js +28 -0
- package/dist/remote/mcp-tools.js.map +1 -1
- package/dist/remote/oauth-handler.d.ts +36 -3
- package/dist/remote/oauth-handler.d.ts.map +1 -1
- package/dist/remote/oauth-handler.js +287 -13
- package/dist/remote/oauth-handler.js.map +1 -1
- package/dist/remote/policy.js +2 -2
- package/dist/remote/policy.js.map +1 -1
- package/dist/remote/safe-file.d.ts +2 -1
- package/dist/remote/safe-file.d.ts.map +1 -1
- package/dist/remote/safe-file.js +51 -53
- package/dist/remote/safe-file.js.map +1 -1
- package/dist/remote/schemas.d.ts +9 -9
- package/dist/remote/schemas.js +6 -6
- package/dist/remote/schemas.js.map +1 -1
- package/dist/remote/store.d.ts +38 -1
- package/dist/remote/store.d.ts.map +1 -1
- package/dist/remote/store.js +149 -11
- package/dist/remote/store.js.map +1 -1
- package/dist/remote/types.d.ts +14 -0
- package/dist/remote/types.d.ts.map +1 -1
- package/dist/remote/types.js.map +1 -1
- package/dist/remote/web-dashboard-client-config.d.ts +77 -0
- package/dist/remote/web-dashboard-client-config.d.ts.map +1 -0
- package/dist/remote/web-dashboard-client-config.js +81 -0
- package/dist/remote/web-dashboard-client-config.js.map +1 -0
- package/dist/remote/web-dashboard-html.d.ts +2 -0
- package/dist/remote/web-dashboard-html.d.ts.map +1 -0
- package/dist/remote/web-dashboard-html.js +433 -0
- package/dist/remote/web-dashboard-html.js.map +1 -0
- package/dist/remote/web-dashboard-oauth-users.d.ts +4 -0
- package/dist/remote/web-dashboard-oauth-users.d.ts.map +1 -0
- package/dist/remote/web-dashboard-oauth-users.js +78 -0
- package/dist/remote/web-dashboard-oauth-users.js.map +1 -0
- package/dist/remote/web-dashboard-static.d.ts +4 -0
- package/dist/remote/web-dashboard-static.d.ts.map +1 -0
- package/dist/remote/web-dashboard-static.js +19 -0
- package/dist/remote/web-dashboard-static.js.map +1 -0
- package/dist/remote/web-dashboard-styles.d.ts +2 -0
- package/dist/remote/web-dashboard-styles.d.ts.map +1 -0
- package/dist/remote/web-dashboard-styles.js +187 -0
- package/dist/remote/web-dashboard-styles.js.map +1 -0
- package/dist/remote/web-dashboard.d.ts +62 -0
- package/dist/remote/web-dashboard.d.ts.map +1 -0
- package/dist/remote/web-dashboard.js +467 -0
- package/dist/remote/web-dashboard.js.map +1 -0
- package/dist/resources.d.ts +2 -7
- package/dist/resources.d.ts.map +1 -1
- package/dist/resources.js.map +1 -1
- package/dist/retry.d.ts.map +1 -1
- package/dist/retry.js +6 -3
- package/dist/retry.js.map +1 -1
- package/dist/safety.d.ts.map +1 -1
- package/dist/safety.js +56 -6
- package/dist/safety.js.map +1 -1
- package/dist/session-auth.js +7 -7
- package/dist/session-auth.js.map +1 -1
- package/dist/session.d.ts +5 -0
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +81 -54
- package/dist/session.js.map +1 -1
- package/dist/shell.d.ts.map +1 -1
- package/dist/shell.js +5 -4
- package/dist/shell.js.map +1 -1
- package/dist/ssh-config.d.ts +2 -2
- package/dist/ssh-config.d.ts.map +1 -1
- package/dist/ssh-config.js +24 -20
- package/dist/ssh-config.js.map +1 -1
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +9 -2
- package/dist/telemetry.js.map +1 -1
- package/dist/tools/connector.provider.d.ts +1 -1
- package/dist/tools/connector.provider.d.ts.map +1 -1
- package/dist/tools/ensure.provider.d.ts +1 -1
- package/dist/tools/ensure.provider.d.ts.map +1 -1
- package/dist/tools/fs.provider.d.ts +1 -1
- package/dist/tools/fs.provider.d.ts.map +1 -1
- package/dist/tools/metadata.d.ts +1 -1
- package/dist/tools/metadata.d.ts.map +1 -1
- package/dist/tools/output-schemas.d.ts +27 -135
- package/dist/tools/output-schemas.d.ts.map +1 -1
- package/dist/tools/process.provider.d.ts +1 -1
- package/dist/tools/process.provider.d.ts.map +1 -1
- package/dist/tools/registry.d.ts +1 -1
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +16 -13
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/session.provider.d.ts +1 -1
- package/dist/tools/session.provider.d.ts.map +1 -1
- package/dist/tools/system.provider.d.ts +1 -1
- package/dist/tools/system.provider.d.ts.map +1 -1
- package/dist/tools/transfer.provider.d.ts +1 -1
- package/dist/tools/transfer.provider.d.ts.map +1 -1
- package/dist/tools/tunnel.provider.d.ts +1 -1
- package/dist/tools/tunnel.provider.d.ts.map +1 -1
- package/dist/tools/types.d.ts +1 -1
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/transfer.js +2 -2
- package/dist/transfer.js.map +1 -1
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/docs/adding-a-device.md +39 -17
- package/docs/agent-activity-monitor.md +34 -0
- package/docs/coolify.md +29 -0
- package/docs/development/coding-standards.md +8 -2
- package/docs/development/dependency-management.md +1 -1
- package/docs/development/mcp-protocol-2026.md +33 -0
- package/docs/development/release-process.md +29 -55
- package/docs/doppler-guide.md +34 -0
- package/docs/reference/compatibility.md +1 -1
- package/docs/remote-mcp-hardening.md +17 -0
- package/docs/security/dependency-audit-exceptions.md +3 -7
- package/docs/security/hosted-data-inventory.md +81 -0
- package/docs/sonarcloud-analysis.md +9 -0
- package/mcp.json +1 -1
- package/package.json +31 -24
- package/registry/ssh-mcp-pro/mcp.json +1 -1
- package/server.json +3 -3
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { URL } from "node:url";
|
|
2
|
+
import { createMcpHandler, isLegacyRequest, McpServer } from "@modelcontextprotocol/server";
|
|
3
|
+
import { toMcpWebRequest, sendMcpWebResponse } from "../mcp-http-web.js";
|
|
2
4
|
import { ensurePemKeyPair, hashSecret, id, keyId, loadJwtKeyPair, nowIso, randomToken, signEnvelope, verifyRemoteAccessToken, } from "./crypto.js";
|
|
3
5
|
import { loadRemoteConfig } from "./config.js";
|
|
4
6
|
import { isRecord, asString, negotiateMcpProtocolVersion, quotePosixArg, quotePowerShellArg, addNoStore, safeError, isValidEd25519PublicKey, readJson, sanitizeAgent, } from "./http-util.js";
|
|
@@ -8,6 +10,7 @@ import { parseAgentHostMetadata } from "./schemas.js";
|
|
|
8
10
|
import { hasCapability } from "./scopes.js";
|
|
9
11
|
import { RemoteStore } from "./store.js";
|
|
10
12
|
import { OAuthHandler } from "./oauth-handler.js";
|
|
13
|
+
import { WebDashboardHandler } from "./web-dashboard.js";
|
|
11
14
|
import { AgentWebSocketHandler, } from "./agent-handler.js";
|
|
12
15
|
import { TOOL_CAPABILITY_MAP } from "./types.js";
|
|
13
16
|
import { jsonResponse } from "./util.js";
|
|
@@ -24,12 +27,25 @@ export class RemoteControlPlane {
|
|
|
24
27
|
controlPlaneKeyPair;
|
|
25
28
|
oauth;
|
|
26
29
|
agentHandler;
|
|
30
|
+
dashboard;
|
|
27
31
|
constructor(config = loadRemoteConfig()) {
|
|
28
32
|
this.config = config;
|
|
29
33
|
this.store = new RemoteStore(config.databaseUrl);
|
|
30
34
|
this.controlPlaneKeyPair = ensurePemKeyPair(config.controlPlaneSigningKeyPath);
|
|
31
35
|
this.oauth = new OAuthHandler(config, this.store, this.authorizeTransactions, () => this.requireJwtKeyPair(), (event) => this.audit(event));
|
|
32
36
|
this.agentHandler = new AgentWebSocketHandler(config, this.store, this.agentConnections, this.agentHelloNonces, this.pendingActions, (event) => this.audit(event));
|
|
37
|
+
this.dashboard = new WebDashboardHandler({
|
|
38
|
+
config: this.config,
|
|
39
|
+
store: this.store,
|
|
40
|
+
oauth: this.oauth,
|
|
41
|
+
agentHandler: this.agentHandler,
|
|
42
|
+
getJwtKeyPair: () => this.requireJwtKeyPair(),
|
|
43
|
+
audit: (event) => this.audit(event),
|
|
44
|
+
createEnrollmentToken: (principal, args) => this.createEnrollmentToken(principal, args),
|
|
45
|
+
updateAgentPolicy: (principal, agent, policy) => this.updateAgentPolicy(principal, agent, policy),
|
|
46
|
+
revokeAgent: (principal, agent) => this.revokeAgent(principal, agent),
|
|
47
|
+
resolveAgent: (userId, value) => this.resolveAgent(userId, value),
|
|
48
|
+
});
|
|
33
49
|
this.cleanupInterval = setInterval(() => this.cleanupEphemeralState(), 60_000);
|
|
34
50
|
this.cleanupInterval.unref?.();
|
|
35
51
|
}
|
|
@@ -55,16 +71,23 @@ export class RemoteControlPlane {
|
|
|
55
71
|
cleanupEphemeralState(now = Date.now()) {
|
|
56
72
|
this.oauth.cleanupExpired(now);
|
|
57
73
|
this.agentHandler.cleanupEphemeralState(now);
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
jsonResponse(res, 200, this.oauth.protectedResourceMetadata(), addNoStore());
|
|
62
|
-
return true;
|
|
74
|
+
try {
|
|
75
|
+
// Reuse the existing minute timer, avoiding another background worker.
|
|
76
|
+
this.store.pruneExpiredTransientRecords(new Date(now).toISOString());
|
|
63
77
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
78
|
+
catch {
|
|
79
|
+
// A storage maintenance failure must not terminate the live MCP server.
|
|
80
|
+
// The following cleanup tick retries without logging sensitive data.
|
|
81
|
+
console.error("Remote transient credential cleanup failed; will retry");
|
|
67
82
|
}
|
|
83
|
+
}
|
|
84
|
+
async handleGoogleOAuthCallback(req, res) {
|
|
85
|
+
// Both OAuth flows use the registered Google URI, but isolated state/cookies.
|
|
86
|
+
if (await this.dashboard.handleSharedGoogleCallback(req, res))
|
|
87
|
+
return;
|
|
88
|
+
await this.oauth.handleGoogleCallback(req, res);
|
|
89
|
+
}
|
|
90
|
+
async handleOAuthRequest(req, res, pathname) {
|
|
68
91
|
if (pathname === "/oauth/register" && req.method === "POST") {
|
|
69
92
|
await this.oauth.handleRegister(req, res);
|
|
70
93
|
return true;
|
|
@@ -73,10 +96,18 @@ export class RemoteControlPlane {
|
|
|
73
96
|
await this.oauth.handleAuthorize(req, res);
|
|
74
97
|
return true;
|
|
75
98
|
}
|
|
99
|
+
if (pathname === "/oauth/approve" && req.method === "POST") {
|
|
100
|
+
await this.oauth.handleApprove(req, res);
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
76
103
|
if (pathname === "/oauth/callback/github" && req.method === "GET") {
|
|
77
104
|
await this.oauth.handleGitHubCallback(req, res);
|
|
78
105
|
return true;
|
|
79
106
|
}
|
|
107
|
+
if (pathname === "/oauth/callback/google" && req.method === "GET") {
|
|
108
|
+
await this.handleGoogleOAuthCallback(req, res);
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
80
111
|
if (pathname === "/oauth/token" && req.method === "POST") {
|
|
81
112
|
await this.oauth.handleToken(req, res);
|
|
82
113
|
return true;
|
|
@@ -85,6 +116,25 @@ export class RemoteControlPlane {
|
|
|
85
116
|
await this.oauth.handleJwks(res);
|
|
86
117
|
return true;
|
|
87
118
|
}
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
async handleHttp(req, res, pathname) {
|
|
122
|
+
// Browsers only honor HSTS on authenticated HTTPS responses. Do not
|
|
123
|
+
// impose HTTPS on intentionally HTTP-only localhost development servers.
|
|
124
|
+
if (new URL(this.config.publicBaseUrl).protocol === "https:") {
|
|
125
|
+
res.setHeader("Strict-Transport-Security", "max-age=31536000");
|
|
126
|
+
}
|
|
127
|
+
if (pathname === "/.well-known/oauth-protected-resource" && req.method === "GET") {
|
|
128
|
+
jsonResponse(res, 200, this.oauth.protectedResourceMetadata(), addNoStore());
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
if (pathname === "/.well-known/oauth-authorization-server" && req.method === "GET") {
|
|
132
|
+
jsonResponse(res, 200, this.oauth.authorizationServerMetadata(), addNoStore());
|
|
133
|
+
return true;
|
|
134
|
+
}
|
|
135
|
+
if (await this.handleOAuthRequest(req, res, pathname)) {
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
88
138
|
if (pathname === "/readyz" && req.method === "GET") {
|
|
89
139
|
jsonResponse(res, 200, {
|
|
90
140
|
ok: true,
|
|
@@ -108,6 +158,9 @@ export class RemoteControlPlane {
|
|
|
108
158
|
await this.handleApi(req, res, pathname);
|
|
109
159
|
return true;
|
|
110
160
|
}
|
|
161
|
+
if (await this.dashboard.handleHttpRequest(req, res, pathname)) {
|
|
162
|
+
return true;
|
|
163
|
+
}
|
|
111
164
|
return false;
|
|
112
165
|
}
|
|
113
166
|
handleUpgrade(req, socket, head, pathname) {
|
|
@@ -132,6 +185,22 @@ export class RemoteControlPlane {
|
|
|
132
185
|
return;
|
|
133
186
|
}
|
|
134
187
|
const body = await readJson(req);
|
|
188
|
+
const request = toMcpWebRequest(req, body);
|
|
189
|
+
// The official SDK validates the modern request envelope, mirrored HTTP
|
|
190
|
+
// headers, protocol version and output shape. Legacy clients retain their
|
|
191
|
+
// existing authenticated 2025-era behavior.
|
|
192
|
+
// Preserve the previous error response for an unclaimed 2025-era
|
|
193
|
+
// tools/call with malformed params. The SDK rightly classifies this
|
|
194
|
+
// malformed message as invalid; no modern version/header may downgrade.
|
|
195
|
+
const malformedLegacyCall = body.method === "tools/call" &&
|
|
196
|
+
!isRecord(body.params) &&
|
|
197
|
+
req.headers["mcp-protocol-version"] === undefined &&
|
|
198
|
+
req.headers["mcp-method"] === undefined &&
|
|
199
|
+
!("_meta" in body);
|
|
200
|
+
if (!malformedLegacyCall && !(await isLegacyRequest(request, body))) {
|
|
201
|
+
await this.handleModernMcp(request, res, principal);
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
135
204
|
const method = asString(body.method) ?? "";
|
|
136
205
|
const rpcId = body.id ?? null;
|
|
137
206
|
if (method === "initialize") {
|
|
@@ -155,50 +224,87 @@ export class RemoteControlPlane {
|
|
|
155
224
|
return;
|
|
156
225
|
}
|
|
157
226
|
if (method === "tools/call") {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
|
|
227
|
+
await this.handleMcpToolCall(principal, body, rpcId, res);
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
jsonResponse(res, 200, {
|
|
231
|
+
jsonrpc: "2.0",
|
|
232
|
+
id: rpcId,
|
|
233
|
+
error: { code: -32601, message: "Method not found" },
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Instantiate the SDK handler only after validating this request's bearer
|
|
238
|
+
* token. No session-wide principal or global tool registry is shared between
|
|
239
|
+
* callers, so concurrent requests cannot inherit one another's scopes.
|
|
240
|
+
*/
|
|
241
|
+
async handleModernMcp(request, response, principal) {
|
|
242
|
+
const handler = createMcpHandler(() => {
|
|
243
|
+
const server = new McpServer({ name: "sshautomator-remote-agent", version: SERVER_VERSION }, { capabilities: { tools: {} } });
|
|
244
|
+
server.server.setRequestHandler("tools/list", () => ({
|
|
245
|
+
tools: listRemoteToolDescriptors(principal.capabilities).map(({ capability: _capability, ...tool }) => ({
|
|
246
|
+
...tool,
|
|
247
|
+
inputSchema: { ...tool.inputSchema, type: "object" },
|
|
248
|
+
})),
|
|
249
|
+
}));
|
|
250
|
+
server.server.setRequestHandler("tools/call", async (rpc) => {
|
|
251
|
+
const name = rpc.params.name;
|
|
252
|
+
if (!Object.hasOwn(TOOL_CAPABILITY_MAP, name)) {
|
|
253
|
+
throw safeError("INVALID_SCOPE", "Unknown tool", 400);
|
|
254
|
+
}
|
|
255
|
+
const result = await this.callRemoteTool(principal, name, rpc.params.arguments ?? {});
|
|
256
|
+
return {
|
|
257
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
258
|
+
structuredContent: result,
|
|
259
|
+
};
|
|
260
|
+
});
|
|
261
|
+
return server;
|
|
262
|
+
}, { legacy: "reject" });
|
|
263
|
+
try {
|
|
264
|
+
await sendMcpWebResponse(response, await handler.fetch(request));
|
|
265
|
+
}
|
|
266
|
+
finally {
|
|
267
|
+
await handler.close();
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
async handleMcpToolCall(principal, body, rpcId, res) {
|
|
271
|
+
const params = isRecord(body.params) ? body.params : {};
|
|
272
|
+
const name = asString(params.name);
|
|
273
|
+
const args = isRecord(params.arguments) ? params.arguments : {};
|
|
274
|
+
if (!name || !(name in TOOL_CAPABILITY_MAP)) {
|
|
188
275
|
jsonResponse(res, 200, {
|
|
189
276
|
jsonrpc: "2.0",
|
|
190
277
|
id: rpcId,
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
278
|
+
error: { code: -32602, message: "Unknown tool" },
|
|
279
|
+
});
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
282
|
+
let callResult;
|
|
283
|
+
try {
|
|
284
|
+
callResult = await this.callRemoteTool(principal, name, args);
|
|
285
|
+
}
|
|
286
|
+
catch (error) {
|
|
287
|
+
const isStructured = error !== null && typeof error === "object" && "message" in error;
|
|
288
|
+
const message = isStructured
|
|
289
|
+
? String(error.message)
|
|
290
|
+
: "Tool call failed";
|
|
291
|
+
const errorCode = isStructured && "code" in error
|
|
292
|
+
? String(error.code)
|
|
293
|
+
: "TOOL_CALL_FAILED";
|
|
294
|
+
jsonResponse(res, 200, {
|
|
295
|
+
jsonrpc: "2.0",
|
|
296
|
+
id: rpcId,
|
|
297
|
+
error: { code: -32000, message, data: { code: errorCode } },
|
|
195
298
|
});
|
|
196
299
|
return;
|
|
197
300
|
}
|
|
198
301
|
jsonResponse(res, 200, {
|
|
199
302
|
jsonrpc: "2.0",
|
|
200
303
|
id: rpcId,
|
|
201
|
-
|
|
304
|
+
result: {
|
|
305
|
+
content: [{ type: "text", text: JSON.stringify(callResult, null, 2) }],
|
|
306
|
+
structuredContent: callResult,
|
|
307
|
+
},
|
|
202
308
|
});
|
|
203
309
|
}
|
|
204
310
|
async handleApi(req, res, pathname) {
|
|
@@ -214,11 +320,29 @@ export class RemoteControlPlane {
|
|
|
214
320
|
return;
|
|
215
321
|
}
|
|
216
322
|
if (pathname === "/api/agents" && req.method === "GET") {
|
|
323
|
+
if (!hasCapability(principal.capabilities, "agents.read")) {
|
|
324
|
+
throw safeError("INVALID_SCOPE", "agents:read scope is required", 403);
|
|
325
|
+
}
|
|
217
326
|
jsonResponse(res, 200, {
|
|
218
327
|
agents: this.store.listAgents(principal.userId).map(sanitizeAgent),
|
|
219
328
|
});
|
|
220
329
|
return;
|
|
221
330
|
}
|
|
331
|
+
if (await this.handleAgentApiRoute(req, res, pathname, principal)) {
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
334
|
+
if (pathname === "/api/audit" && req.method === "GET") {
|
|
335
|
+
if (!hasCapability(principal.capabilities, "agents.admin")) {
|
|
336
|
+
throw safeError("INVALID_SCOPE", "agents:admin scope is required", 403);
|
|
337
|
+
}
|
|
338
|
+
const url = new URL(req.url ?? "/api/audit", this.config.publicBaseUrl);
|
|
339
|
+
const limit = Number(url.searchParams.get("limit") ?? 50);
|
|
340
|
+
jsonResponse(res, 200, { events: this.store.listAudit(principal.userId, undefined, limit) });
|
|
341
|
+
return;
|
|
342
|
+
}
|
|
343
|
+
jsonResponse(res, 404, { error: "Not found" });
|
|
344
|
+
}
|
|
345
|
+
async handleAgentApiRoute(req, res, pathname, principal) {
|
|
222
346
|
const agentMatch = /^\/api\/agents\/([^/]+)(?:\/(policy|revoke))?$/u.exec(pathname);
|
|
223
347
|
if (agentMatch) {
|
|
224
348
|
const agent = this.resolveAgent(principal.userId, agentMatch[1] ?? "");
|
|
@@ -226,28 +350,25 @@ export class RemoteControlPlane {
|
|
|
226
350
|
throw safeError("AGENT_NOT_FOUND", "Agent not found", 404);
|
|
227
351
|
}
|
|
228
352
|
if (!agentMatch[2] && req.method === "GET") {
|
|
353
|
+
if (!hasCapability(principal.capabilities, "agents.read")) {
|
|
354
|
+
throw safeError("INVALID_SCOPE", "agents:read scope is required", 403);
|
|
355
|
+
}
|
|
229
356
|
jsonResponse(res, 200, { agent: sanitizeAgent(agent) });
|
|
230
|
-
return;
|
|
357
|
+
return true;
|
|
231
358
|
}
|
|
232
359
|
if ((!agentMatch[2] || agentMatch[2] === "policy") && req.method === "PATCH") {
|
|
233
360
|
const body = await readJson(req);
|
|
234
361
|
jsonResponse(res, 200, {
|
|
235
362
|
agent: sanitizeAgent(this.updateAgentPolicy(principal, agent, body.policy)),
|
|
236
363
|
});
|
|
237
|
-
return;
|
|
364
|
+
return true;
|
|
238
365
|
}
|
|
239
366
|
if (agentMatch[2] === "revoke" && req.method === "POST") {
|
|
240
367
|
jsonResponse(res, 200, { agent: sanitizeAgent(this.revokeAgent(principal, agent)) });
|
|
241
|
-
return;
|
|
368
|
+
return true;
|
|
242
369
|
}
|
|
243
370
|
}
|
|
244
|
-
|
|
245
|
-
const url = new URL(req.url ?? "/api/audit", this.config.publicBaseUrl);
|
|
246
|
-
const limit = Number(url.searchParams.get("limit") ?? 50);
|
|
247
|
-
jsonResponse(res, 200, { events: this.store.listAudit(principal.userId, undefined, limit) });
|
|
248
|
-
return;
|
|
249
|
-
}
|
|
250
|
-
jsonResponse(res, 404, { error: "Not found" });
|
|
371
|
+
return false;
|
|
251
372
|
}
|
|
252
373
|
async handleAgentEnroll(req, res) {
|
|
253
374
|
const body = await readJson(req);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control-plane.js","sourceRoot":"","sources":["../../src/remote/control-plane.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"control-plane.js","sourceRoot":"","sources":["../../src/remote/control-plane.ts"],"names":[],"mappings":"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"}
|
package/dist/remote/crypto.d.ts
CHANGED
|
@@ -25,11 +25,16 @@ export declare function keyId(publicKeyPem: string): string;
|
|
|
25
25
|
export declare function canonicalJson(value: unknown): string;
|
|
26
26
|
export declare function signEnvelope<T extends Record<string, unknown>>(envelope: T, privateKey: KeyObject | string): string;
|
|
27
27
|
export declare function verifyEnvelope(envelope: Record<string, unknown>, publicKey: KeyObject | string): boolean;
|
|
28
|
-
export
|
|
28
|
+
export interface TokenUserIdentity {
|
|
29
29
|
id: string;
|
|
30
|
-
githubId
|
|
31
|
-
githubLogin
|
|
32
|
-
|
|
30
|
+
githubId?: string | undefined;
|
|
31
|
+
githubLogin?: string | undefined;
|
|
32
|
+
googleId?: string | undefined;
|
|
33
|
+
email?: string | undefined;
|
|
34
|
+
displayName?: string | undefined;
|
|
35
|
+
provider?: "github" | "google" | undefined;
|
|
36
|
+
}
|
|
37
|
+
export declare function issueAccessToken(config: RemoteConfig, keyPair: JwtKeyPair, user: TokenUserIdentity, scopes: RemoteScope[]): Promise<{
|
|
33
38
|
token: string;
|
|
34
39
|
tokenId: string;
|
|
35
40
|
expiresAt: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/remote/crypto.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAa,WAAW,EAAE,UAAU,EAAuC,MAAM,MAAM,CAAC;AAE/F,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG7E,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC;IAClD,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC;IACpD,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,MAAM,IAAI,MAAM,CAE/B;AAED,wBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED,wBAAgB,WAAW,CAAC,KAAK,SAAK,GAAG,MAAM,CAE9C;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAQ/E;AAED,wBAAgB,yBAAyB,IAAI,UAAU,CAMtD;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAY7D;AAED,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAO1E;AAED,wBAAsB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAI7F;AAED,wBAAgB,KAAK,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/remote/crypto.ts"],"names":[],"mappings":"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"}
|
package/dist/remote/crypto.js
CHANGED
|
@@ -8,7 +8,7 @@ export function nowIso() {
|
|
|
8
8
|
return new Date().toISOString();
|
|
9
9
|
}
|
|
10
10
|
export function id(prefix) {
|
|
11
|
-
return `${prefix}_${randomUUID().
|
|
11
|
+
return `${prefix}_${randomUUID().replaceAll("-", "")}`;
|
|
12
12
|
}
|
|
13
13
|
export function randomToken(bytes = 32) {
|
|
14
14
|
return randomBytes(bytes).toString("base64url");
|
|
@@ -74,8 +74,15 @@ export function canonicalJson(value) {
|
|
|
74
74
|
}
|
|
75
75
|
const entries = Object.entries(value)
|
|
76
76
|
.filter(([, entryValue]) => entryValue !== undefined)
|
|
77
|
-
.sort(([left], [right]) =>
|
|
78
|
-
|
|
77
|
+
.sort(([left], [right]) => {
|
|
78
|
+
if (left < right)
|
|
79
|
+
return -1;
|
|
80
|
+
if (left > right)
|
|
81
|
+
return 1;
|
|
82
|
+
return 0;
|
|
83
|
+
});
|
|
84
|
+
const properties = entries.map(([key, entryValue]) => JSON.stringify(key) + ":" + canonicalJson(entryValue));
|
|
85
|
+
return `{${properties.join(",")}}`;
|
|
79
86
|
}
|
|
80
87
|
export function signEnvelope(envelope, privateKey) {
|
|
81
88
|
const unsigned = { ...envelope };
|
|
@@ -95,11 +102,26 @@ export async function issueAccessToken(config, keyPair, user, scopes) {
|
|
|
95
102
|
const issuedAt = Math.floor(Date.now() / 1000);
|
|
96
103
|
const expiresAtSeconds = issuedAt + config.accessTokenTtlSeconds;
|
|
97
104
|
const tokenId = id("tok");
|
|
98
|
-
const
|
|
105
|
+
const githubLogin = user.githubLogin ?? user.displayName ?? user.email ?? user.id;
|
|
106
|
+
const githubId = user.githubId ?? user.googleId ?? user.id;
|
|
107
|
+
const claims = {
|
|
99
108
|
scope: scopes.join(" "),
|
|
100
|
-
github_login:
|
|
101
|
-
github_id:
|
|
102
|
-
}
|
|
109
|
+
github_login: githubLogin,
|
|
110
|
+
github_id: githubId,
|
|
111
|
+
};
|
|
112
|
+
if (user.googleId) {
|
|
113
|
+
claims.google_id = user.googleId;
|
|
114
|
+
}
|
|
115
|
+
if (user.email) {
|
|
116
|
+
claims.email = user.email;
|
|
117
|
+
}
|
|
118
|
+
if (user.displayName) {
|
|
119
|
+
claims.display_name = user.displayName;
|
|
120
|
+
}
|
|
121
|
+
if (user.provider) {
|
|
122
|
+
claims.provider = user.provider;
|
|
123
|
+
}
|
|
124
|
+
const token = await new SignJWT(claims)
|
|
103
125
|
.setProtectedHeader({ alg: "EdDSA", kid: keyId(keyPair.publicKeyPem) })
|
|
104
126
|
.setIssuer(config.publicBaseUrl)
|
|
105
127
|
.setSubject(user.id)
|
|
@@ -129,12 +151,22 @@ export async function verifyRemoteAccessToken(authorization, config, keyPair) {
|
|
|
129
151
|
}
|
|
130
152
|
function principalFromPayload(payload) {
|
|
131
153
|
const scopes = typeof payload.scope === "string" ? payload.scope.split(/\s+/u).filter(Boolean) : [];
|
|
132
|
-
|
|
133
|
-
|
|
154
|
+
if (("github_id" in payload && typeof payload.github_id !== "string") ||
|
|
155
|
+
("github_login" in payload && typeof payload.github_login !== "string")) {
|
|
156
|
+
throw new TypeError("Invalid GitHub identity claims");
|
|
157
|
+
}
|
|
158
|
+
const githubId = typeof payload.github_id === "string" ? payload.github_id : "";
|
|
159
|
+
const githubLogin = typeof payload.github_login === "string" ? payload.github_login : "";
|
|
160
|
+
const email = typeof payload.email === "string" ? payload.email : undefined;
|
|
161
|
+
const displayName = typeof payload.display_name === "string" ? payload.display_name : undefined;
|
|
162
|
+
const provider = payload.provider === "google" || payload.provider === "github" ? payload.provider : undefined;
|
|
134
163
|
return {
|
|
135
164
|
userId: String(payload.sub),
|
|
136
165
|
githubId,
|
|
137
166
|
githubLogin,
|
|
167
|
+
email,
|
|
168
|
+
displayName,
|
|
169
|
+
provider,
|
|
138
170
|
scopes: scopes,
|
|
139
171
|
capabilities: capabilitiesFromScopes(scopes),
|
|
140
172
|
tokenId: String(payload.jti),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/remote/crypto.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,WAAW,EACX,UAAU,EACV,IAAI,IAAI,QAAQ,EAChB,eAAe,EACf,MAAM,IAAI,UAAU,GAErB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAmB,MAAM,MAAM,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAcrD,MAAM,UAAU,MAAM;IACpB,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,EAAE,CAAC,MAAc;IAC/B,OAAO,GAAG,MAAM,IAAI,UAAU,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/remote/crypto.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-util.d.ts","sourceRoot":"","sources":["../../src/remote/http-util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"http-util.d.ts","sourceRoot":"","sources":["../../src/remote/http-util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAKjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAIlF,eAAO,MAAM,kBAAkB,SAAU,CAAC;AAC1C,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAEhD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE3D;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAKnE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAKtD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,SAAa,GAAG,IAAI,CAMpF;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,KAAK,EAAE,MAAM,EACb,GAAG,SAAa,GACf,OAAO,CAGT;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,IAAI,CAUhG;AAED,wBAAgB,UAAU,CAAC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMvF;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAGpE;AAED,wBAAgB,SAAS,CACvB,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,MAAM,EACf,MAAM,SAAM,GACX;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAE5D;AAED,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAMrE;AAED,wBAAsB,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,QAAQ,SAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAY1F;AAED,wBAAsB,QAAQ,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAUrF;AAYD,wBAAsB,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAiB1F;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAYtD;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CAQtD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAY/E"}
|