diff --git a/apps/web/src/lib/mcp-gateway/config.ts b/apps/web/src/lib/mcp-gateway/config.ts index 82319b7f7..16dbac9ed 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 5f0a9484c..1284b52c0 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 d2bc76525..e127f671e 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 bda765b24..4d8953d22 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 cf9d406a7..4a7d4e332 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 bce7c5734..7856db855 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 a2515cc0d..4e95971b7 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 34d759811..c7c7bce3f 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", + "custom_domain": true, }, ], "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",