@@ -4,14 +4,16 @@ import { McpAgent } from 'agents/mcp'
44import { env } from 'cloudflare:workers'
55
66import {
7- CloudflareAuthHandler ,
7+ createAuthHandlers ,
88 handleTokenExchangeCallback ,
99} from '@repo/mcp-common/src/cloudflare-oauth-handler'
10+ import { getEnvironment } from '@repo/mcp-common/src/config'
1011import { registerAccountTools } from '@repo/mcp-common/src/tools/account'
1112import { registerKVTools } from '@repo/mcp-common/src/tools/kv_namespace'
1213import { registerWorkersTools } from '@repo/mcp-common/src/tools/worker'
1314
1415import type { AccountSchema , UserSchema } from '@repo/mcp-common/src/cloudflare-oauth-handler'
16+ import type { Env } from '../worker-configuration'
1517
1618export type WorkersBindingsMCPState = { activeAccountId : string | null }
1719
@@ -66,11 +68,19 @@ export default new OAuthProvider({
6668 // @ts -ignore
6769 apiHandler : WorkersBindingsMCP . mount ( '/workers/bindings/sse' ) ,
6870 // @ts -ignore
69- defaultHandler : CloudflareAuthHandler ,
71+ defaultHandler : createAuthHandlers ( {
72+ serverPath : 'workers/containers' ,
73+ // TOOD: Why do we need to cast as Env for typescript to pick up types?
74+ environment : getEnvironment ( ( env as Env ) . ENVIRONMENT ) ,
75+ } ) ,
7076 authorizeEndpoint : '/oauth/authorize' ,
7177 tokenEndpoint : '/token' ,
7278 tokenExchangeCallback : ( options ) =>
73- handleTokenExchangeCallback ( options , env . CLOUDFLARE_CLIENT_ID , env . CLOUDFLARE_CLIENT_SECRET ) ,
79+ handleTokenExchangeCallback (
80+ options ,
81+ ( env as Env ) . CLOUDFLARE_CLIENT_ID ,
82+ ( env as Env ) . CLOUDFLARE_CLIENT_SECRET
83+ ) ,
7484 // Cloudflare access token TTL
7585 accessTokenTTL : 3600 ,
7686 clientRegistrationEndpoint : '/register' ,
0 commit comments