From b54427c77cb43b763fedb45ca78a6f1ebce7876f Mon Sep 17 00:00:00 2001 From: syn Date: Fri, 5 Jun 2026 14:38:28 -0500 Subject: [PATCH 1/2] chore(mcp-gateway): use kilosessions gateway hostname --- apps/web/src/lib/mcp-gateway/config.ts | 2 +- apps/web/src/lib/mcp-gateway/oauth-flow.test.ts | 2 +- apps/web/src/lib/user/index.test.ts | 2 +- packages/mcp-gateway/src/index.test.ts | 4 ++-- services/mcp-gateway/src/lib/upstream-proxy.test.ts | 8 ++++---- services/mcp-gateway/src/mcp-gateway.worker.test.ts | 10 +++++----- services/mcp-gateway/worker-configuration.d.ts | 4 ++-- services/mcp-gateway/wrangler.jsonc | 6 +++--- 8 files changed, 19 insertions(+), 19 deletions(-) diff --git a/apps/web/src/lib/mcp-gateway/config.ts b/apps/web/src/lib/mcp-gateway/config.ts index 82319b7f70..16dbac9ed6 100644 --- a/apps/web/src/lib/mcp-gateway/config.ts +++ b/apps/web/src/lib/mcp-gateway/config.ts @@ -97,7 +97,7 @@ export function getGatewayAppConfig(): GatewayAppConfig { return { appBaseUrl: getEnvVariable('MCP_GATEWAY_APP_BASE_URL') || 'https://app.kilo.ai', - gatewayBaseUrl: getEnvVariable('MCP_GATEWAY_BASE_URL') || 'https://mcp.kilo.ai', + gatewayBaseUrl: getEnvVariable('MCP_GATEWAY_BASE_URL') || 'https://mcp.kilosessions.ai', issuer: jwtKeyset.issuer, accessTokenTtlSeconds: Number(getEnvVariable('MCP_GATEWAY_ACCESS_TOKEN_TTL_SECONDS') || '900'), authorizationRequestTtlSeconds: 30 * 60, diff --git a/apps/web/src/lib/mcp-gateway/oauth-flow.test.ts b/apps/web/src/lib/mcp-gateway/oauth-flow.test.ts index 5f0a9484cc..1284b52c06 100644 --- a/apps/web/src/lib/mcp-gateway/oauth-flow.test.ts +++ b/apps/web/src/lib/mcp-gateway/oauth-flow.test.ts @@ -41,7 +41,7 @@ function createTestConfig(): Promise { const publicJwk = createPublicKey(jwtKeys.publicKey).export({ format: 'jwk' }); return Promise.resolve({ appBaseUrl: 'https://app.kilo.ai', - gatewayBaseUrl: 'https://mcp.kilo.ai', + gatewayBaseUrl: 'https://mcp.kilosessions.ai', issuer: 'https://app.kilo.ai', accessTokenTtlSeconds: 900, authorizationRequestTtlSeconds: 1_800, diff --git a/apps/web/src/lib/user/index.test.ts b/apps/web/src/lib/user/index.test.ts index d2bc76525d..e127f671e2 100644 --- a/apps/web/src/lib/user/index.test.ts +++ b/apps/web/src/lib/user/index.test.ts @@ -466,7 +466,7 @@ describe('User', () => { owner_scope: 'personal', owner_id: user.id, route_key: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_', - canonical_url: 'https://mcp.kilo.ai/mcp-connect/user/test/config/key', + canonical_url: 'https://mcp.kilosessions.ai/mcp-connect/user/test/config/key', route_status: 'active', }) .returning(); diff --git a/packages/mcp-gateway/src/index.test.ts b/packages/mcp-gateway/src/index.test.ts index bda765b244..4d8953d22c 100644 --- a/packages/mcp-gateway/src/index.test.ts +++ b/packages/mcp-gateway/src/index.test.ts @@ -41,8 +41,8 @@ describe('scoped routes', () => { expect(buildScopedConnectRootPath(route)).toBe( '/mcp-connect/org/11111111-1111-4111-8111-111111111111/22222222-2222-4222-8222-222222222222/abcdefghijklmnopqrstuvwxyzABCDEF' ); - expect(buildScopedConnectCanonicalUrl('https://mcp.kilo.ai', route)).toBe( - 'https://mcp.kilo.ai/mcp-connect/org/11111111-1111-4111-8111-111111111111/22222222-2222-4222-8222-222222222222/abcdefghijklmnopqrstuvwxyzABCDEF' + expect(buildScopedConnectCanonicalUrl('https://mcp.kilosessions.ai', route)).toBe( + 'https://mcp.kilosessions.ai/mcp-connect/org/11111111-1111-4111-8111-111111111111/22222222-2222-4222-8222-222222222222/abcdefghijklmnopqrstuvwxyzABCDEF' ); expect(buildMCPID(route)).toBe( 'organization:11111111-1111-4111-8111-111111111111:22222222-2222-4222-8222-222222222222:abcdefghijklmnopqrstuvwxyzABCDEF' diff --git a/services/mcp-gateway/src/lib/upstream-proxy.test.ts b/services/mcp-gateway/src/lib/upstream-proxy.test.ts index cf9d406a76..4a7d4e3326 100644 --- a/services/mcp-gateway/src/lib/upstream-proxy.test.ts +++ b/services/mcp-gateway/src/lib/upstream-proxy.test.ts @@ -25,7 +25,7 @@ describe('proxyUpstream', () => { }; const response = await proxyUpstream({ env: {} as Env, - request: new Request('https://mcp.kilo.ai/mcp-connect/user/u/c/r?mode=test', { + request: new Request('https://mcp.kilosessions.ai/mcp-connect/user/u/c/r?mode=test', { method: 'POST', headers: { Accept: 'application/json', @@ -73,7 +73,7 @@ describe('proxyUpstream', () => { }; const response = await proxyUpstream({ env: {} as Env, - request: new Request('https://mcp.kilo.ai/mcp-connect/user/u/c/r'), + request: new Request('https://mcp.kilosessions.ai/mcp-connect/user/u/c/r'), remoteUrl: 'https://remote.example/mcp', descendantPath: null, pathPassthrough: false, @@ -99,7 +99,7 @@ describe('proxyUpstream', () => { await expect( proxyUpstream({ env: {} as Env, - request: new Request('https://mcp.kilo.ai/mcp-connect/user/u/c/r'), + request: new Request('https://mcp.kilosessions.ai/mcp-connect/user/u/c/r'), remoteUrl: 'https://remote.example/base', descendantPath: '/%2e%2e/admin', pathPassthrough: true, @@ -125,7 +125,7 @@ describe('proxyUpstream', () => { await expect( proxyUpstream({ env: {} as Env, - request: new Request('https://mcp.kilo.ai/mcp-connect/user/u/c/r'), + request: new Request('https://mcp.kilosessions.ai/mcp-connect/user/u/c/r'), remoteUrl: 'https://remote.example/mcp', descendantPath: null, pathPassthrough: false, diff --git a/services/mcp-gateway/src/mcp-gateway.worker.test.ts b/services/mcp-gateway/src/mcp-gateway.worker.test.ts index bce7c57346..7856db8558 100644 --- a/services/mcp-gateway/src/mcp-gateway.worker.test.ts +++ b/services/mcp-gateway/src/mcp-gateway.worker.test.ts @@ -26,11 +26,11 @@ const userMetadataRoute = `/.well-known/oauth-protected-resource${userRoute}`; const orgMetadataRoute = `/.well-known/oauth-protected-resource${orgRoute}`; const env = { APP_BASE_URL: 'https://app.kilo.ai', - MCP_GATEWAY_BASE_URL: 'https://mcp.kilo.ai', + MCP_GATEWAY_BASE_URL: 'https://mcp.kilosessions.ai', } as Env; async function request(path: string, method = 'GET') { - return app.request(`https://mcp.kilo.ai${path}`, { method }, env); + return app.request(`https://mcp.kilosessions.ai${path}`, { method }, env); } describe('MCP gateway route surface', () => { @@ -55,7 +55,7 @@ describe('MCP gateway route surface', () => { const challenge = response.headers.get('www-authenticate'); expect(challenge).toContain('authorization_uri='); expect(challenge).toContain( - `resource_metadata="https://mcp.kilo.ai/.well-known/oauth-protected-resource${expectedRoutes[index]}"` + `resource_metadata="https://mcp.kilosessions.ai/.well-known/oauth-protected-resource${expectedRoutes[index]}"` ); expect(challenge).toContain('scope="profile"'); } @@ -83,7 +83,7 @@ describe('MCP gateway route surface', () => { expect(responses[0].status).toBe(200); await expect(responses[0].json()).resolves.toEqual({ - resource: 'https://mcp.kilo.ai/mcp-connect', + resource: 'https://mcp.kilosessions.ai/mcp-connect', authorization_servers: ['https://app.kilo.ai'], scopes_supported: ['profile'], }); @@ -125,7 +125,7 @@ describe('MCP gateway route surface', () => { it('rejects requests with an untrusted Origin before proxying', async () => { const response = await app.request( - `https://mcp.kilo.ai${userRoute}`, + `https://mcp.kilosessions.ai${userRoute}`, { headers: { Origin: 'https://attacker.example' } }, env ); diff --git a/services/mcp-gateway/worker-configuration.d.ts b/services/mcp-gateway/worker-configuration.d.ts index a2515cc0d4..4e95971b78 100644 --- a/services/mcp-gateway/worker-configuration.d.ts +++ b/services/mcp-gateway/worker-configuration.d.ts @@ -1,5 +1,5 @@ /* eslint-disable */ -// Generated by Wrangler by running `wrangler types --include-runtime=false` (hash: ec15bf93073ad0b864ac76ea10d36d36) +// Generated by Wrangler by running `wrangler types --include-runtime=false` (hash: d7dc7446a98d853e7d1ca882ad30d44a) declare namespace Cloudflare { interface GlobalProps { mainModule: typeof import("./src/mcp-gateway.worker"); @@ -26,7 +26,7 @@ declare namespace Cloudflare { MCP_GATEWAY_ANALYTICS: AnalyticsEngineDataset; ENVIRONMENT: "development" | "production"; APP_BASE_URL: "http://localhost:3000" | "https://app.kilo.ai"; - MCP_GATEWAY_BASE_URL: "http://localhost:8806" | "https://mcp.kilo.ai"; + MCP_GATEWAY_BASE_URL: "http://localhost:8806" | "https://mcp.kilosessions.ai"; SUPPORTED_SCOPES: "profile"; GATEWAY_ACCESS_TOKEN_TTL_SECONDS: "900"; AUDIT_RETENTION_DAYS: "60"; diff --git a/services/mcp-gateway/wrangler.jsonc b/services/mcp-gateway/wrangler.jsonc index 34d7598110..fba0175cc4 100644 --- a/services/mcp-gateway/wrangler.jsonc +++ b/services/mcp-gateway/wrangler.jsonc @@ -9,8 +9,8 @@ "preview_urls": false, "routes": [ { - "pattern": "mcp.kilo.ai/*", - "zone_name": "kilo.ai", + "pattern": "mcp.kilosessions.ai/*", + "zone_name": "kilosessions.ai", }, ], "dev": { @@ -57,7 +57,7 @@ "vars": { "ENVIRONMENT": "production", "APP_BASE_URL": "https://app.kilo.ai", - "MCP_GATEWAY_BASE_URL": "https://mcp.kilo.ai", + "MCP_GATEWAY_BASE_URL": "https://mcp.kilosessions.ai", "SUPPORTED_SCOPES": "profile", "GATEWAY_ACCESS_TOKEN_TTL_SECONDS": "900", "AUDIT_RETENTION_DAYS": "60", From 04d1b0527ff48edde52d7f5f54a1a4ae903b6baf Mon Sep 17 00:00:00 2001 From: syn Date: Fri, 5 Jun 2026 15:11:46 -0500 Subject: [PATCH 2/2] fix(mcp-gateway): use custom domain route --- services/mcp-gateway/wrangler.jsonc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/mcp-gateway/wrangler.jsonc b/services/mcp-gateway/wrangler.jsonc index fba0175cc4..c7c7bce3f4 100644 --- a/services/mcp-gateway/wrangler.jsonc +++ b/services/mcp-gateway/wrangler.jsonc @@ -9,8 +9,8 @@ "preview_urls": false, "routes": [ { - "pattern": "mcp.kilosessions.ai/*", - "zone_name": "kilosessions.ai", + "pattern": "mcp.kilosessions.ai", + "custom_domain": true, }, ], "dev": {