@sonoma-security/mcp-gateway 0.1.12 → 0.1.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.
Files changed (51) hide show
  1. package/dist/__tests__/plugin-discovery.test.d.ts +12 -0
  2. package/dist/__tests__/plugin-discovery.test.d.ts.map +1 -0
  3. package/dist/__tests__/plugin-discovery.test.js +367 -0
  4. package/dist/__tests__/plugin-discovery.test.js.map +1 -0
  5. package/dist/__tests__/tool-blocking.test.d.ts +2 -0
  6. package/dist/__tests__/tool-blocking.test.d.ts.map +1 -0
  7. package/dist/__tests__/tool-blocking.test.js +256 -0
  8. package/dist/__tests__/tool-blocking.test.js.map +1 -0
  9. package/dist/auth/keychain.d.ts +34 -0
  10. package/dist/auth/keychain.d.ts.map +1 -0
  11. package/dist/auth/keychain.js +305 -0
  12. package/dist/auth/keychain.js.map +1 -0
  13. package/dist/auth/storage.d.ts +5 -6
  14. package/dist/auth/storage.d.ts.map +1 -1
  15. package/dist/auth/storage.js +72 -21
  16. package/dist/auth/storage.js.map +1 -1
  17. package/dist/auth/upstream-oauth.d.ts.map +1 -1
  18. package/dist/auth/upstream-oauth.js +8 -5
  19. package/dist/auth/upstream-oauth.js.map +1 -1
  20. package/dist/auth/upstream-token-store.d.ts +18 -6
  21. package/dist/auth/upstream-token-store.d.ts.map +1 -1
  22. package/dist/auth/upstream-token-store.js +127 -35
  23. package/dist/auth/upstream-token-store.js.map +1 -1
  24. package/dist/cli.js +16 -0
  25. package/dist/cli.js.map +1 -1
  26. package/dist/config.d.ts.map +1 -1
  27. package/dist/config.js +17 -7
  28. package/dist/config.js.map +1 -1
  29. package/dist/gateway.d.ts +15 -0
  30. package/dist/gateway.d.ts.map +1 -1
  31. package/dist/gateway.js +180 -49
  32. package/dist/gateway.js.map +1 -1
  33. package/dist/http-proxy.d.ts +76 -0
  34. package/dist/http-proxy.d.ts.map +1 -0
  35. package/dist/http-proxy.js +316 -0
  36. package/dist/http-proxy.js.map +1 -0
  37. package/dist/index.d.ts +3 -0
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +2 -0
  40. package/dist/index.js.map +1 -1
  41. package/dist/pattern-matcher.d.ts +25 -0
  42. package/dist/pattern-matcher.d.ts.map +1 -1
  43. package/dist/pattern-matcher.js +65 -0
  44. package/dist/pattern-matcher.js.map +1 -1
  45. package/dist/sonoma-client.d.ts +17 -1
  46. package/dist/sonoma-client.d.ts.map +1 -1
  47. package/dist/sonoma-client.js +67 -43
  48. package/dist/sonoma-client.js.map +1 -1
  49. package/dist/types.d.ts +6 -0
  50. package/dist/types.d.ts.map +1 -1
  51. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAuFjE;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAmB5D;AA2BD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,SAAiB,GAAG,aAAa,CAwEpG;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,iBAAiB,IAAI,iBAAiB,EAAE,CAyDvD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CAwBvD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,UAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAuD5F;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,UAAQ,GAAG,eAAe,EAAE,CAwE1E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAKhD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAuFjE;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAmB5D;AA2BD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,SAAiB,GAAG,aAAa,CAwEpG;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,iBAAiB,IAAI,iBAAiB,EAAE,CAyDvD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CAwBvD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,UAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAuD5F;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,UAAQ,GAAG,eAAe,EAAE,CAoF1E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAKhD"}
package/dist/config.js CHANGED
@@ -363,6 +363,11 @@ export function discoverClaudeCodePlugins(debug = false) {
363
363
  try {
364
364
  const content = readFileSync(mcpJsonPath, "utf-8");
365
365
  const mcpConfig = JSON.parse(content);
366
+ // Check for _sonomaBackup: enforce.sh rewrites plugin URLs to the
367
+ // gateway's HTTP proxy and stores the original config in _sonomaBackup.
368
+ // The gateway needs the ORIGINAL upstream URL (not the proxy URL) to
369
+ // connect to the actual server.
370
+ const sonomaBackup = mcpConfig._sonomaBackup;
366
371
  // Try standard format first: { "mcpServers": { ... } }
367
372
  const mcpServers = mcpConfig.mcpServers;
368
373
  const entries = mcpServers
@@ -374,17 +379,22 @@ export function discoverClaudeCodePlugins(debug = false) {
374
379
  continue;
375
380
  if (!server.command && !server.url)
376
381
  continue;
382
+ // If enforce.sh rewrote this entry to a proxy URL, use the original
383
+ // config from _sonomaBackup so the gateway connects to the real upstream.
384
+ const backup = sonomaBackup?.[name];
385
+ const source = backup?._sonomaGatewayed ? backup : server;
377
386
  servers.push({
378
387
  name,
379
- command: server.command,
380
- args: server.args,
381
- env: server.env,
382
- url: server.url,
383
- headers: server.headers,
384
- oauth: server.oauth,
388
+ command: source.command,
389
+ args: source.args,
390
+ env: source.env,
391
+ url: source.url,
392
+ headers: source.headers,
393
+ oauth: source.oauth,
385
394
  });
386
395
  if (debug) {
387
- console.error(`[config] Plugin ${pluginId}: found server "${name}" (${server.url || server.command})`);
396
+ const label = backup?._sonomaGatewayed ? "backup" : "direct";
397
+ console.error(`[config] Plugin ${pluginId}: found server "${name}" (${source.url || source.command}) [${label}]`);
388
398
  }
389
399
  }
390
400
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/gateway.d.ts CHANGED
@@ -26,6 +26,9 @@ export declare class McpGateway {
26
26
  private upstreamTokenStore;
27
27
  private started;
28
28
  private clientName;
29
+ private httpProxy;
30
+ private pendingAuth;
31
+ private pendingAuthRetryInterval;
29
32
  private upstreamsReady;
30
33
  private resolveUpstreamsReady;
31
34
  constructor(config: GatewayConfig);
@@ -85,6 +88,18 @@ export declare class McpGateway {
85
88
  * Start the gateway
86
89
  */
87
90
  start(): Promise<void>;
91
+ /**
92
+ * Periodically retry connecting servers that are pending OAuth.
93
+ * Uses skipBrowserAuth=true so it won't open new browser tabs;
94
+ * it only succeeds if the user already completed auth elsewhere.
95
+ */
96
+ private startPendingAuthRetry;
97
+ /**
98
+ * Start the HTTP proxy server for transparent per-server proxying.
99
+ * Plugins can connect to http://localhost:{port}/proxy/{serverName}/mcp
100
+ * to use tools through the gateway while keeping skills active.
101
+ */
102
+ private startHttpProxy;
88
103
  /**
89
104
  * Stop the gateway and disconnect from all upstreams
90
105
  */
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAiBH,OAAO,KAAK,EACV,aAAa,EAEb,aAAa,EACd,MAAM,YAAY,CAAC;AA2BpB,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,qBAAqB,CAA+C;IAC5E,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAuB;IAKzC,OAAO,CAAC,cAAc,CAAoC;IAC1D,OAAO,CAAC,qBAAqB,CAA6B;gBAE9C,MAAM,EAAE,aAAa;IA8BjC,OAAO,CAAC,GAAG;IAOX;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,aAAa;IAsErB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;OAEG;IACH,OAAO,CAAC,aAAa;IAsOrB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAyB5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;OAEG;YACW,kBAAkB;IAehC;;;OAGG;YACW,eAAe;IAwJ7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA8CzB;;OAEG;IACH,OAAO,CAAC,WAAW;IAenB;;OAEG;YACW,aAAa;IAW3B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwH5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmC3B;;OAEG;IACH,SAAS,IAAI,aAAa,EAAE;IAI5B;;OAEG;IACH,WAAW,IAAI,IAAI;CAGpB"}
1
+ {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAiBH,OAAO,KAAK,EACV,aAAa,EAEb,aAAa,EACd,MAAM,YAAY,CAAC;AA4BpB,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,qBAAqB,CAA+C;IAC5E,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,SAAS,CAAgC;IAIjD,OAAO,CAAC,WAAW,CAA6E;IAChG,OAAO,CAAC,wBAAwB,CAA+C;IAK/E,OAAO,CAAC,cAAc,CAAoC;IAC1D,OAAO,CAAC,qBAAqB,CAA6B;gBAE9C,MAAM,EAAE,aAAa;IA8BjC,OAAO,CAAC,GAAG;IAOX;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,aAAa;IAsCrB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;OAEG;IACH,OAAO,CAAC,aAAa;IA4QrB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAyB5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;OAEG;YACW,kBAAkB;IAehC;;;OAGG;YACW,eAAe;IAiK7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA8CzB;;OAEG;IACH,OAAO,CAAC,WAAW;IAenB;;OAEG;YACW,aAAa;IAW3B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiJ5B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IA0B7B;;;;OAIG;YACW,cAAc;IAgD5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA+C3B;;OAEG;IACH,SAAS,IAAI,aAAa,EAAE;IAI5B;;OAEG;IACH,WAAW,IAAI,IAAI;CAGpB"}
package/dist/gateway.js CHANGED
@@ -19,8 +19,9 @@ import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
19
19
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
20
20
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
21
21
  import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
22
+ import { HttpProxyServer } from "./http-proxy.js";
22
23
  import { SonomaClient } from "./sonoma-client.js";
23
- import { matchesToolPattern, getPatternSpecificity } from "./pattern-matcher.js";
24
+ import { isToolBlockedByPolicy } from "./pattern-matcher.js";
24
25
  import { evaluatePromptGuards } from "./prompt-guard.js";
25
26
  import { UpstreamTokenStore, authenticateUpstream } from "./auth/index.js";
26
27
  // Timeout configuration
@@ -43,6 +44,11 @@ export class McpGateway {
43
44
  upstreamTokenStore;
44
45
  started = false;
45
46
  clientName = null;
47
+ httpProxy = null;
48
+ // Servers that need OAuth but haven't completed it yet.
49
+ // Keyed by server name, stores config + callback port for retry.
50
+ pendingAuth = new Map();
51
+ pendingAuthRetryInterval = null;
46
52
  // Resolves when initial upstream connections are done (success or fail).
47
53
  // The tools/list handler waits on this so the first call returns actual tools
48
54
  // instead of an empty list (Claude Code doesn't honor tools/list_changed).
@@ -91,58 +97,29 @@ export class McpGateway {
91
97
  */
92
98
  isToolBlocked(serverName, toolName) {
93
99
  if (!this.policy) {
100
+ this.log(`isToolBlocked: no policy loaded, allowing ${serverName}.${toolName}`);
94
101
  return false;
95
102
  }
96
- // Get server identifiers to check
97
103
  const upstream = this.upstreams.get(serverName);
98
104
  const packageName = upstream?.config.packageName;
99
- // Build set of identifiers: packageName (preferred) or server name
100
- const serverIdentifiers = new Set();
101
- if (packageName)
102
- serverIdentifiers.add(packageName);
103
- serverIdentifiers.add(serverName);
104
- // Find all matching rules (server-level and tool-level)
105
- const matchingRules = this.policy.list.filter((rule) => {
106
- // Check if server identifier matches (or rule is global with "*")
107
- const serverMatches = serverIdentifiers.has(rule.identifier) || rule.identifier === "*";
108
- if (!serverMatches)
109
- return false;
110
- // Check tool pattern match
111
- if (!rule.toolPattern) {
112
- // Server-level rule - applies to all tools on this server
113
- return true;
105
+ const url = upstream?.config.url;
106
+ // Resolve additional identifiers from the policy's alias map.
107
+ // e.g. if the server URL is "https://mcp.slack.com/mcp", aliases
108
+ // might include "slack-mcp-server" (the canonical package name).
109
+ const extraIdentifiers = [];
110
+ if (this.policy.identifierAliases) {
111
+ const sources = [serverName, packageName, url].filter(Boolean);
112
+ for (const src of sources) {
113
+ const aliases = this.policy.identifierAliases[src];
114
+ if (aliases)
115
+ extraIdentifiers.push(...aliases);
114
116
  }
115
- // Tool-level rule - check if pattern matches the tool name
116
- return matchesToolPattern(toolName, rule.toolPattern);
117
- });
118
- // No matching rules = not blocked (unlisted servers are allowed)
119
- if (matchingRules.length === 0) {
120
- return false;
121
117
  }
122
- // Sort rules by priority (higher first), then by pattern specificity (more specific first)
123
- const sortedRules = [...matchingRules].sort((a, b) => {
124
- // First sort by explicit priority (higher wins)
125
- if (a.priority !== b.priority)
126
- return b.priority - a.priority;
127
- // Then by pattern specificity (more specific wins)
128
- const specA = getPatternSpecificity(a.toolPattern);
129
- const specB = getPatternSpecificity(b.toolPattern);
130
- return specB - specA;
131
- });
132
- // Get the highest priority rule
133
- const topRule = sortedRules[0];
134
- // Find if there's a deny rule at the same priority level
135
- const topPriority = topRule.priority;
136
- const topSpecificity = getPatternSpecificity(topRule.toolPattern);
137
- const denyAtTopLevel = sortedRules.find((r) => r.status === "blocked" &&
138
- r.priority === topPriority &&
139
- getPatternSpecificity(r.toolPattern) === topSpecificity);
140
- // Block if any matching rule says "blocked" (deny wins at same priority)
141
- if (denyAtTopLevel) {
142
- this.log(`Tool blocked by policy: ${serverName}.${toolName} (pattern: ${denyAtTopLevel.toolPattern ?? "server-level"})`);
143
- return true;
118
+ const blocked = isToolBlockedByPolicy(this.policy.list, serverName, toolName, packageName, url, extraIdentifiers);
119
+ if (blocked) {
120
+ this.log(`Tool blocked by policy: ${serverName}.${toolName}`);
144
121
  }
145
- return false;
122
+ return blocked;
146
123
  }
147
124
  /**
148
125
  * Check if an upstream server's OAuth session has exceeded the org-configured lifetime.
@@ -165,6 +142,13 @@ export class McpGateway {
165
142
  setupHandlers() {
166
143
  // Handle tools/list - aggregate tools from all upstreams
167
144
  this.server.setRequestHandler(ListToolsRequestSchema, async () => {
145
+ // When the HTTP proxy is active, tools are accessed via proxy URLs
146
+ // (e.g., localhost:19880/proxy/slack/mcp) through plugin .mcp.json
147
+ // entries. Don't expose them again via stdio to avoid duplicates.
148
+ if (this.config.httpProxyPort) {
149
+ this.log("tools/list: HTTP proxy active, returning empty list (tools served via proxy)");
150
+ return { tools: [] };
151
+ }
168
152
  // Wait for upstream connections to complete before returning tools.
169
153
  // Claude Code calls tools/list immediately during the handshake (before
170
154
  // upstreams connect) and does NOT call it again when tools/list_changed
@@ -225,6 +209,19 @@ export class McpGateway {
225
209
  const toolName = name.slice(separatorIndex + 2);
226
210
  const upstream = this.upstreams.get(serverName);
227
211
  if (!upstream) {
212
+ // Check if server is pending OAuth authentication
213
+ const pending = this.pendingAuth.get(serverName);
214
+ if (pending) {
215
+ return {
216
+ isError: true,
217
+ content: [
218
+ {
219
+ type: "text",
220
+ text: `Server ${serverName} requires OAuth authentication. The user needs to complete the authorization flow in their browser. The gateway will automatically connect once authentication is complete.`,
221
+ },
222
+ ],
223
+ };
224
+ }
228
225
  return {
229
226
  isError: true,
230
227
  content: [
@@ -338,6 +335,17 @@ export class McpGateway {
338
335
  }
339
336
  catch (error) {
340
337
  const errorMessage = error instanceof Error ? error.message : String(error);
338
+ // Detect stale transport (connection dropped but flag not yet updated)
339
+ const isTransportDead = errorMessage.includes("No active transport") ||
340
+ errorMessage.includes("not connected");
341
+ if (isTransportDead) {
342
+ const up = this.upstreams.get(serverName);
343
+ if (up && up.connected) {
344
+ up.connected = false;
345
+ this.log(`Transport dead for ${serverName}, triggering reconnect`);
346
+ this.scheduleReconnect(serverName);
347
+ }
348
+ }
341
349
  this.recordEvent({
342
350
  serverName,
343
351
  toolName,
@@ -347,12 +355,15 @@ export class McpGateway {
347
355
  errorMessage,
348
356
  argumentKeys: args ? Object.keys(args) : [],
349
357
  });
358
+ const userMessage = isTransportDead
359
+ ? `Server ${serverName} lost connection (reconnecting...)`
360
+ : `Error calling ${serverName}.${toolName}: ${errorMessage}`;
350
361
  return {
351
362
  isError: true,
352
363
  content: [
353
364
  {
354
365
  type: "text",
355
- text: `Error calling ${serverName}.${toolName}: ${errorMessage}`,
366
+ text: userMessage,
356
367
  },
357
368
  ],
358
369
  };
@@ -466,8 +477,10 @@ export class McpGateway {
466
477
  if (!hasAuthHeader) {
467
478
  // Try OAuth pre-auth for HTTP servers (discovers if server needs OAuth)
468
479
  // On reconnects, skip browser auth to avoid opening multiple consent tabs
480
+ // Use a timeout so OAuth doesn't block startup indefinitely (unless explicitly triggered)
481
+ const OAUTH_TIMEOUT_MS = 60_000; // 60 seconds for browser auth
469
482
  try {
470
- authProvider = await authenticateUpstream({
483
+ const authPromise = authenticateUpstream({
471
484
  serverUrl: config.url,
472
485
  serverName: config.name,
473
486
  store: this.upstreamTokenStore,
@@ -476,6 +489,10 @@ export class McpGateway {
476
489
  oauth: config.oauth,
477
490
  ...(callbackPort ? { callbackPort } : {}),
478
491
  });
492
+ const timeoutPromise = new Promise((_, reject) => {
493
+ setTimeout(() => reject(new Error(`OAuth timeout after ${OAUTH_TIMEOUT_MS}ms for ${config.name}`)), OAUTH_TIMEOUT_MS);
494
+ });
495
+ authProvider = await Promise.race([authPromise, timeoutPromise]);
479
496
  this.log(` ${config.name}: OAuth pre-auth succeeded`);
480
497
  }
481
498
  catch (err) {
@@ -617,6 +634,15 @@ export class McpGateway {
617
634
  }
618
635
  this.started = true;
619
636
  this.log("Starting MCP Gateway...");
637
+ // Start HTTP proxy server FIRST so the port is listening before the AI
638
+ // client even finishes the STDIO handshake. Claude Code starts plugins
639
+ // (e.g., Slack via localhost:19880) concurrently with the gateway process.
640
+ // If the proxy port isn't ready, plugins get "connection refused" and are
641
+ // marked as "failed". The proxy's waitForUpstream() handles the case where
642
+ // requests arrive before upstream connections are established.
643
+ if (this.config.httpProxyPort) {
644
+ await this.startHttpProxy(this.config.httpProxyPort);
645
+ }
620
646
  // Fetch initial policy from Sonoma
621
647
  if (this.sonomaClient) {
622
648
  await this.refreshPolicy();
@@ -665,6 +691,8 @@ export class McpGateway {
665
691
  return this.connectUpstream(serverConfig, undefined, callbackPort)
666
692
  .then(async (upstream) => {
667
693
  this.upstreams.set(serverConfig.name, upstream);
694
+ // Clear from pending if it was there from a previous attempt
695
+ this.pendingAuth.delete(serverConfig.name);
668
696
  this.log(` ${serverConfig.name}: connected (${upstream.tools.length} tools)`);
669
697
  try {
670
698
  await this.server.sendToolListChanged();
@@ -675,6 +703,12 @@ export class McpGateway {
675
703
  }
676
704
  })
677
705
  .catch((error) => {
706
+ // Connection failed (likely OAuth timeout or auth error).
707
+ // Track as pending so we can retry and inform users on tool calls.
708
+ if (serverConfig.url && serverConfig.oauth) {
709
+ this.pendingAuth.set(serverConfig.name, { config: serverConfig, callbackPort });
710
+ this.log(` ${serverConfig.name}: pending OAuth authentication`);
711
+ }
678
712
  // Security: serverConfig.name is from config, not user input
679
713
  console.error(`Failed to connect to ${serverConfig.name}:`, error); // nosemgrep: unsafe-formatstring
680
714
  });
@@ -714,13 +748,110 @@ export class McpGateway {
714
748
  this.log(`Failed to report tools: ${err}`);
715
749
  });
716
750
  }
717
- this.log("Gateway ready - all upstreams connected");
751
+ this.log(`Gateway ready - ${this.upstreams.size} connected, ${this.pendingAuth.size} pending auth`);
752
+ // Start background retry for servers pending OAuth authentication.
753
+ // Retries every 30s with skipBrowserAuth=true (only succeeds if user
754
+ // completed OAuth via another path, e.g. standalone --login or manual URL).
755
+ if (this.pendingAuth.size > 0) {
756
+ this.startPendingAuthRetry();
757
+ }
758
+ }
759
+ /**
760
+ * Periodically retry connecting servers that are pending OAuth.
761
+ * Uses skipBrowserAuth=true so it won't open new browser tabs;
762
+ * it only succeeds if the user already completed auth elsewhere.
763
+ */
764
+ startPendingAuthRetry() {
765
+ const RETRY_INTERVAL_MS = 30_000; // 30 seconds
766
+ this.pendingAuthRetryInterval = setInterval(async () => {
767
+ if (this.pendingAuth.size === 0) {
768
+ if (this.pendingAuthRetryInterval) {
769
+ clearInterval(this.pendingAuthRetryInterval);
770
+ this.pendingAuthRetryInterval = null;
771
+ }
772
+ return;
773
+ }
774
+ for (const [name, { config, callbackPort }] of this.pendingAuth) {
775
+ try {
776
+ const upstream = await this.connectUpstream(config, undefined, callbackPort);
777
+ this.upstreams.set(name, upstream);
778
+ this.pendingAuth.delete(name);
779
+ this.log(`Pending auth resolved: ${name} (${upstream.tools.length} tools)`);
780
+ this.server.sendToolListChanged().catch(() => { });
781
+ }
782
+ catch {
783
+ // Still can't connect, will retry next interval
784
+ }
785
+ }
786
+ }, RETRY_INTERVAL_MS);
787
+ }
788
+ /**
789
+ * Start the HTTP proxy server for transparent per-server proxying.
790
+ * Plugins can connect to http://localhost:{port}/proxy/{serverName}/mcp
791
+ * to use tools through the gateway while keeping skills active.
792
+ */
793
+ async startHttpProxy(port) {
794
+ const callbacks = {
795
+ getUpstreams: () => {
796
+ const result = new Map();
797
+ for (const [name, upstream] of this.upstreams) {
798
+ result.set(name, {
799
+ name,
800
+ client: upstream.client,
801
+ connected: upstream.connected,
802
+ });
803
+ }
804
+ return result;
805
+ },
806
+ isToolBlocked: (serverName, toolName) => {
807
+ return this.isToolBlocked(serverName, toolName);
808
+ },
809
+ recordToolCall: (event) => {
810
+ this.recordEvent({
811
+ ...event,
812
+ timestamp: new Date().toISOString(),
813
+ });
814
+ },
815
+ getPendingAuthServers: () => {
816
+ return new Set(this.pendingAuth.keys());
817
+ },
818
+ getUpstreamUrl: (serverName) => {
819
+ const upstream = this.upstreams.get(serverName);
820
+ if (upstream?.config.url)
821
+ return upstream.config.url;
822
+ const pending = this.pendingAuth.get(serverName);
823
+ if (pending?.config.url)
824
+ return pending.config.url;
825
+ // Fall back to the config (available from startup, before connections)
826
+ const serverConfig = this.config.servers.find((s) => s.name === serverName);
827
+ return serverConfig?.url ?? undefined;
828
+ },
829
+ log: (message) => {
830
+ this.log(message);
831
+ },
832
+ };
833
+ this.httpProxy = new HttpProxyServer(port, callbacks);
834
+ await this.httpProxy.start();
835
+ // Log available proxy URLs
836
+ for (const [name] of this.upstreams) {
837
+ this.log(`HTTP proxy: ${this.httpProxy.getProxyUrl(name)}`);
838
+ }
718
839
  }
719
840
  /**
720
841
  * Stop the gateway and disconnect from all upstreams
721
842
  */
722
843
  async stop() {
723
844
  this.log("Stopping gateway...");
845
+ // Stop HTTP proxy server
846
+ if (this.httpProxy) {
847
+ await this.httpProxy.stop();
848
+ this.httpProxy = null;
849
+ }
850
+ // Stop pending auth retry
851
+ if (this.pendingAuthRetryInterval) {
852
+ clearInterval(this.pendingAuthRetryInterval);
853
+ this.pendingAuthRetryInterval = null;
854
+ }
724
855
  // Stop policy refresh
725
856
  if (this.policyRefreshInterval) {
726
857
  clearInterval(this.policyRefreshInterval);
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"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"}