Repository navigation
Expand file tree
/
Copy pathwrangler.jsonc
More file actions
59 lines (56 loc) · 2.05 KB
/
Copy pathwrangler.jsonc
File metadata and controls
59 lines (56 loc) · 2.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
{
"$schema": "node_modules/wrangler/config-schema.json",
"name": "github-mcp-gateway",
"main": "src/index.ts",
"compatibility_date": "2025-04-01",
// global_fetch_strictly_public is NECESSARY BUT NOT SUFFICIENT for CIMD
// (Client ID Metadata Documents). workers-oauth-provider gates it on BOTH
// conditions:
//
// client_id_metadata_document_supported:
// !!options.clientIdMetadataDocumentEnabled && hasGlobalFetchStrictlyPublic()
//
// This flag satisfies the second; src/index.ts supplies the first. Both are
// required — dropping either one does NOT merely stop advertising CIMD, it
// makes a URL client_id fall back to a bare KV lookup, so Claude Code
// resolves only while a stale `client:` record happens to survive in KV and
// returns "invalid_request: Invalid client_id" once it doesn't.
//
// That is not hypothetical: the flag sat here for months without the
// provider option, and deploy.yml's smoke test flipped 200 -> 400 across two
// deploys of identical code before it was found. Do not remove either half.
"compatibility_flags": ["nodejs_compat", "global_fetch_strictly_public"],
"observability": {
"enabled": true
},
// Comma-separated GitHub logins permitted to use this server (checked at
// the OAuth callback). Anyone else completing the GitHub consent screen
// gets a 403 at /callback.
"vars": {
"ALLOWED_GITHUB_LOGINS": "mazze93"
},
// Workers KV — stores OAuth state (10 min TTL), approved-client cookies' backing
// data is in the cookie itself, and rotating GitHub refresh tokens (keyed by
// GitHub login, see src/github-client.ts). One namespace, prefixed keys.
"kv_namespaces": [
{
"binding": "OAUTH_KV",
"id": "0773ec3dd785418c984559f47d1623e9"
}
],
// Durable Object — one instance per authenticated MCP session.
"durable_objects": {
"bindings": [
{
"class_name": "GitHubMcpAgent",
"name": "MCP_OBJECT"
}
]
},
"migrations": [
{
"tag": "v1",
"new_sqlite_classes": ["GitHubMcpAgent"]
}
]
}