@zackbart/connecta 0.29.0 → 0.31.0

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 (116) hide show
  1. package/CHANGELOG.md +99 -0
  2. package/README.md +126 -134
  3. package/bin/connecta.mjs +13 -2
  4. package/bin/version.mjs +1 -1
  5. package/dist/argument-redaction.js +230 -0
  6. package/dist/auth-elicitation.js +14 -9
  7. package/dist/authorization-handoff.js +111 -0
  8. package/dist/call-recovery.js +25 -0
  9. package/dist/catalog-cache.js +2 -2
  10. package/dist/catalog-service.js +103 -63
  11. package/dist/config-schema.d.ts +14 -7
  12. package/dist/config-schema.js +29 -10
  13. package/dist/config.d.ts +2 -0
  14. package/dist/config.js +12 -7
  15. package/dist/connectors/guarded-fetch.d.ts +9 -1
  16. package/dist/connectors/guarded-fetch.js +17 -5
  17. package/dist/connectors/negotiation-cache.js +1 -1
  18. package/dist/downstream-input-context.js +9 -0
  19. package/dist/downstream-input.js +13 -11
  20. package/dist/errors.d.ts +38 -12
  21. package/dist/errors.js +19 -9
  22. package/dist/execute.js +375 -43
  23. package/dist/executor-result.js +11 -9
  24. package/dist/executors/quickjs-child.js +12 -5
  25. package/dist/executors/quickjs-protocol.js +5 -6
  26. package/dist/executors/quickjs-runtime.js +6 -1
  27. package/dist/executors/quickjs.js +20 -4
  28. package/dist/guest-runtime.js +52 -2
  29. package/dist/guest-types.d.ts +47 -5
  30. package/dist/index.d.ts +1 -1
  31. package/dist/invocation.js +72 -14
  32. package/dist/meta-output.js +0 -15
  33. package/dist/meta-tools.js +166 -95
  34. package/dist/oauth-handoff.js +88 -11
  35. package/dist/operator-ui/generated.js +2 -2
  36. package/dist/operator-ui/view.d.ts +9 -0
  37. package/dist/operator-ui/view.js +11 -0
  38. package/dist/program-result.js +5 -0
  39. package/dist/program-writes.js +7 -48
  40. package/dist/provider.d.ts +8 -6
  41. package/dist/provider.js +3 -4
  42. package/dist/providers/_shared/google/workspace.d.ts +1 -1
  43. package/dist/providers/_shared/request-token.js +83 -0
  44. package/dist/providers/_shared/rest/dispatch.js +41 -0
  45. package/dist/providers/_shared/rest/operation-index.d.ts +133 -0
  46. package/dist/providers/_shared/rest/operation-index.js +527 -0
  47. package/dist/providers/_shared/rest/tools.d.ts +141 -0
  48. package/dist/providers/_shared/rest/tools.js +569 -0
  49. package/dist/providers/_shared/rest/value-safety.d.ts +151 -0
  50. package/dist/providers/_shared/rest/value-safety.js +580 -0
  51. package/dist/providers/cloudflare/graphql.js +385 -0
  52. package/dist/providers/cloudflare/index.d.ts +47 -51
  53. package/dist/providers/cloudflare/index.js +188 -1997
  54. package/dist/providers/cloudflare/openapi.generated.js +3347 -0
  55. package/dist/providers/cloudflare/rest.d.ts +37 -0
  56. package/dist/providers/cloudflare/rest.js +1056 -0
  57. package/dist/providers/cloudflare/skill.generated.js +7 -4
  58. package/dist/providers/cloudflare/value-safety.js +1247 -0
  59. package/dist/providers/infisical/index.d.ts +7 -0
  60. package/dist/providers/infisical/index.js +713 -0
  61. package/dist/providers/infisical/skill.generated.js +8 -0
  62. package/dist/providers/notion/index.d.ts +35 -31
  63. package/dist/providers/notion/index.js +60 -1499
  64. package/dist/providers/notion/openapi.generated.js +75 -0
  65. package/dist/providers/notion/rest.d.ts +24 -0
  66. package/dist/providers/notion/rest.js +1067 -0
  67. package/dist/providers/notion/skill.generated.js +5 -4
  68. package/dist/providers/notion/value-safety.js +31 -0
  69. package/dist/providers/stripe/index.d.ts +26 -20
  70. package/dist/providers/stripe/index.js +103 -130
  71. package/dist/providers/stripe/openapi.generated.js +649 -0
  72. package/dist/providers/stripe/rest.d.ts +14 -0
  73. package/dist/providers/stripe/rest.js +395 -0
  74. package/dist/providers/stripe/skill.generated.js +7 -5
  75. package/dist/providers/stripe/value-safety.js +705 -0
  76. package/dist/providers/vercel/index.d.ts +31 -22
  77. package/dist/providers/vercel/index.js +96 -853
  78. package/dist/providers/vercel/openapi.generated.js +456 -0
  79. package/dist/providers/vercel/rest.d.ts +20 -0
  80. package/dist/providers/vercel/rest.js +1002 -0
  81. package/dist/providers/vercel/skill.generated.js +4 -5
  82. package/dist/providers/vercel/value-safety.js +328 -0
  83. package/dist/registry.d.ts +8 -6
  84. package/dist/registry.js +134 -61
  85. package/dist/resource-read.js +4 -1
  86. package/dist/routes/mcp.js +11 -2
  87. package/dist/sent-secrets.d.ts +54 -13
  88. package/dist/sent-secrets.js +770 -231
  89. package/dist/skills.js +26 -16
  90. package/dist/sqlite.js +21 -6
  91. package/dist/storage/keys.js +20 -5
  92. package/dist/storage/memory.js +9 -4
  93. package/dist/storage/sql.js +18 -9
  94. package/dist/types.d.ts +17 -3
  95. package/dist/usage-guide.js +49 -40
  96. package/dist/version.d.ts +1 -1
  97. package/dist/version.js +1 -1
  98. package/dist/worker.js +2 -1
  99. package/dist/write-outcome.js +47 -0
  100. package/documentation/README.md +64 -0
  101. package/documentation/architecture.md +241 -97
  102. package/documentation/auth.md +138 -5
  103. package/documentation/code-mode.md +224 -107
  104. package/documentation/deploying.md +146 -0
  105. package/documentation/integrating.md +170 -0
  106. package/documentation/meta-tools.md +142 -30
  107. package/documentation/operating.md +135 -0
  108. package/documentation/operator-tests.md +4 -0
  109. package/documentation/operator-ui.md +132 -0
  110. package/documentation/provider-auth-migration.md +307 -0
  111. package/documentation/provider-migration-0.29.md +22 -5
  112. package/examples/worker/README.md +9 -2
  113. package/package.json +9 -2
  114. package/templates/node/README.md +9 -2
  115. package/templates/node/package.json +1 -1
  116. package/dist/providers/vercel/mcp-ownership.js +0 -212
@@ -1,5 +1,12 @@
1
1
  # connecta — Cloudflare Worker example
2
2
 
3
+ Agent setup guide for the Worker deployment.
4
+ For deployment choices and upgrades, use [Deploying Connecta](https://github.com/zackbart/connecta/blob/main/documentation/deploying.md).
5
+ For connector changes, use [Integrating services](https://github.com/zackbart/connecta/blob/main/documentation/integrating.md).
6
+ The [agent index](https://github.com/zackbart/connecta/blob/main/documentation/README.md) routes endpoint use and package
7
+ maintenance. This README and [local agent instructions](./AGENTS.md) own the
8
+ runnable Worker steps.
9
+
3
10
  A deployable Worker that aggregates a downstream remote MCP and an in-code HTTP
4
11
  API connector, guarded by Cloudflare Access. It uses three Cloudflare resources
5
12
  and nothing else: one D1 database (`CONNECTA_DB`) for every piece of state, the
@@ -309,8 +316,8 @@ Rolling back to 0.24.x then requires reauthorizing those OAuth connectors.
309
316
 
310
317
  The shipped Notion connector uses a deployment-owned static header and echo
311
318
  needs no secret. To exercise vault controls, declare a `credential` slot on an
312
- `api()` connector or use Notion's explicit `surface: "api"` integration
313
- interface, which declares its own slot.
319
+ `api()` connector or use a Notion connector with `auth: { type: "token" }`,
320
+ which declares its own slot.
314
321
  Authorized users manage that slot inside the connection. Configuring a vault
315
322
  does not create credentials or permissions by itself.
316
323
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zackbart/connecta",
3
- "version": "0.29.0",
3
+ "version": "0.31.0",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "description": "One MCP to rule them all — a single MCP endpoint aggregating many downstream connectors behind a code-first surface of six meta-tools.",
@@ -109,6 +109,10 @@
109
109
  "types": "./dist/providers/gmail/index.d.ts",
110
110
  "import": "./dist/providers/gmail/index.js"
111
111
  },
112
+ "./providers/infisical": {
113
+ "types": "./dist/providers/infisical/index.d.ts",
114
+ "import": "./dist/providers/infisical/index.js"
115
+ },
112
116
  "./providers/linear": {
113
117
  "types": "./dist/providers/linear/index.d.ts",
114
118
  "import": "./dist/providers/linear/index.js"
@@ -221,8 +225,10 @@
221
225
  "precheck:bundle": "npm run build:operator-ui",
222
226
  "precheck:fast": "npm run check:operator-ui",
223
227
  "eval:regrade": "tsx eval/regrade.ts",
228
+ "eval:compare": "tsx eval/compare.ts",
224
229
  "format": "oxfmt --write .",
225
- "format:check": "oxfmt --check ."
230
+ "format:check": "oxfmt --check .",
231
+ "providers:spec": "tsx scripts/generate-openapi.mjs"
226
232
  },
227
233
  "dependencies": {
228
234
  "@cfworker/json-schema": "^4.1.1",
@@ -267,6 +273,7 @@
267
273
  "@types/react": "^19.3.0",
268
274
  "@types/react-dom": "^19.3.0",
269
275
  "cmdk": "^1.1.1",
276
+ "commonmark": "^0.31.2",
270
277
  "esbuild": "^0.28.0",
271
278
  "knip": "^6.29.0",
272
279
  "oxfmt": "0.72.0",
@@ -1,5 +1,12 @@
1
1
  # Connecta deployment
2
2
 
3
+ Agent setup guide for the Node deployment and its Docker packaging.
4
+ For cross-platform setup and upgrades, use [Deploying Connecta](https://github.com/zackbart/connecta/blob/main/documentation/deploying.md).
5
+ For connector changes, use [Integrating services](https://github.com/zackbart/connecta/blob/main/documentation/integrating.md).
6
+ The [agent index](https://github.com/zackbart/connecta/blob/main/documentation/README.md) routes endpoint use and package
7
+ maintenance. This README and [local agent instructions](./AGENTS.md) own the
8
+ runnable steps for a copied Node deployment.
9
+
3
10
  This is the prescribed Node deployment. It runs locally from source and as
4
11
  a container. Install, provision a machine token, then start it:
5
12
 
@@ -181,8 +188,8 @@ node -e "console.log(crypto.randomBytes(32).toString('base64'))"
181
188
  Keep this key outside the database. Losing it makes saved values unreadable;
182
189
  upgrades must reuse it. The shipped `time` connector declares no credential
183
190
  slot. Add `credential: { label: "API token" }` to an `api()` connector and read
184
- it through `await ctx.credential?.get()`, or use Notion's explicit
185
- `surface: "api"` integration interface, which declares its own slot. Authorized humans manage the slot inside that
191
+ it through `await ctx.credential?.get()`, or use a Notion
192
+ connector with `auth: { type: "token" }`, which declares its own slot. Authorized humans manage the slot inside that
186
193
  connection on `/`; there is no separate Credentials tab.
187
194
 
188
195
  In 0.25.0, this vault also seals downstream OAuth tokens on their first read.
@@ -17,7 +17,7 @@
17
17
  },
18
18
  "dependencies": {
19
19
  "@clerk/backend": "^3.12.0",
20
- "@zackbart/connecta": "0.29.0",
20
+ "@zackbart/connecta": "0.31.0",
21
21
  "quickjs-emscripten": "0.32.0"
22
22
  },
23
23
  "devDependencies": {
@@ -1,212 +0,0 @@
1
- // Reviewed 2026-10-08 against the 28 published MCP categories (213 names)
2
- // linked from https://vercel.com/docs/agent-resources/vercel-mcp/tools and
3
- // https://openapi.vercel.sh/ (SHA-256: 2d5dd6a91e9df8280bb1c4ef2b1ec045498e28667b7e9a164bedd01a92093028).
4
- // These are routing ownership facts, not schemas or annotation baselines.
5
- // Exact operationId matches plus reviewed list/get aliases establish the
6
- // published hosted counterpart. The four value-unsafe project-env MCP tools
7
- // are excluded: the authored API owns those operations. Tools outside the
8
- // reviewed classifier still receive the registry's fail-closed classification.
9
- export const HOSTED_REST_OPERATIONS = [
10
- ["GET", "/v1/query/web-analytics/events/aggregate", "aggregate_events"],
11
- ["GET", "/v1/query/web-analytics/visits/aggregate", "aggregate_pageviews"],
12
- ["POST", "/v1/edge-cache/invalidate-by-src-images", "invalidate_by_src_images"],
13
- ["GET", "/v1/query/web-analytics/events/count", "count_events"],
14
- ["GET", "/v1/query/web-analytics/visits/count", "count_pageviews"],
15
- ["GET", "/v1/security/firewall/attack-status", "get_active_attack_status"],
16
- ["POST", "/v1/registrar/domains/availability", "get_bulk_availability"],
17
- ["GET", "/ai-gateway/virtual-model-configs", "get_ai_gateway_virtual_model_config"],
18
- ["POST", "/v1/edge-cache/invalidate-by-tags", "invalidate_by_tags"],
19
- ["GET", "/v1/billing/contract-commitments", "list_contract_commitments"],
20
- ["GET", "/v1/integrations/configurations", "list_integration_configurations"],
21
- ["GET", "/v1/integrations/search-repo", "search_repo"],
22
- ["GET", "/v1/registrar/tlds/supported", "list_supported_tlds"],
23
- ["GET", "/v1/security/firewall/bypass", "get_bypass_ip"],
24
- ["PATCH", "/v1/security/firewall/config", "update_firewall_config"],
25
- ["PUT", "/v1/security/firewall/config", "put_firewall_config"],
26
- ["GET", "/v1/bulk-redirects/versions", "list_bulk_redirect_versions"],
27
- ["POST", "/v1/bulk-redirects/versions", "update_version"],
28
- ["POST", "/v1/integrations/sso/token", "exchange_sso_token"],
29
- ["POST", "/v1/registrar/domains/buy", "buy_domains"],
30
- ["GET", "/v2/observability/schema", "get_observability_schema"],
31
- ["POST", "/v1/security/attack-mode", "update_attack_challenge_mode"],
32
- ["GET", "/v2/sandboxes/snapshots", "list_session_snapshots"],
33
- ["POST", "/v2/observability/query", "create_observability_query"],
34
- ["GET", "/v2/sandboxes/sessions", "list_sessions"],
35
- ["POST", "/v1/connect/connectors", "create_connector"],
36
- ["GET", "/v8/artifacts/status", "status"],
37
- ["POST", "/storage/stores/blob", "create_storage_stores_blob"],
38
- ["POST", "/v8/artifacts/events", "record_events"],
39
- ["GET", "/v1/billing/charges", "list_billing_charges"],
40
- ["GET", "/v1/projects/traces", "get_project_trace"],
41
- ["GET", "/v1/bulk-redirects", "list_bulk_redirects"],
42
- ["PUT", "/v1/bulk-redirects", "stage_redirects"],
43
- ["GET", "/v1/events/types", "list_event_types"],
44
- ["POST", "/v13/deployments", "create_deployment"],
45
- ["GET", "/v7/deployments", "list_deployments"],
46
- ["POST", "/v1/billing/buy", "buy_credits"],
47
- ["POST", "/v1/drains/test", "test_drain"],
48
- ["GET", "/v10/projects", "list_projects"],
49
- ["GET", "/v2/sandboxes", "list_sandboxes"],
50
- ["POST", "/v11/projects", "create_project"],
51
- ["POST", "/v2/sandboxes", "create_sandboxes_v2"],
52
- ["POST", "/v3/sandboxes", "create_sandboxes_v3"],
53
- ["POST", "/v4/sandboxes", "create_sandboxes_v4"],
54
- ["POST", "/v8/artifacts", "artifact_query"],
55
- ["GET", "/v4/aliases", "list_aliases"],
56
- ["GET", "/v5/domains", "list_domains"],
57
- ["POST", "/v7/domains", "create_or_transfer_domain"],
58
- ["GET", "/v1/drains", "list_drains"],
59
- ["GET", "/v3/events", "list_user_events"],
60
- ["POST", "/v1/drains", "create_drain"],
61
- ["GET", "/v2/teams", "list_teams"],
62
- ["GET", "/v8/certs", "list_certs"],
63
- ["POST", "/api-keys", "create_api_keys"],
64
- ["POST", "/v2/files", "upload_file"],
65
- ["POST", "/v8/certs", "issue_cert"],
66
- ["PUT", "/v8/certs", "upload_cert"],
67
- ["GET", "/v2/user", "get_auth_user"],
68
- ["PATCH", "/v1/env", "update_shared_env_variable"],
69
- [
70
- "GET",
71
- "/v1/microfrontends/projects/{projectIdOrName}/production-mfe-config",
72
- "get_microfrontends_config_for_project",
73
- ],
74
- ["GET", "/v1/projects/{projectIdOrName}/feature-flags/sdk-keys", "list_feature_flag_sdk_keys"],
75
- ["GET", "/v1/projects/{projectIdOrName}/feature-flags/settings", "get_flag_settings"],
76
- ["PATCH", "/v1/projects/{projectIdOrName}/feature-flags/settings", "update_flag_settings"],
77
- ["POST", "/v1/projects/{idOrName}/rolling-release/approve-stage", "approve_rolling_release_stage"],
78
- ["PUT", "/v1/projects/{projectIdOrName}/feature-flags/sdk-keys", "create_sdk_key"],
79
- ["GET", "/v1/registrar/domains/{domain}/contact-verification", "get_domain_contact_verification"],
80
- ["GET", "/v1/projects/{projectIdOrName}/feature-flags/flags", "list_flags"],
81
- ["GET", "/v1/registrar/domains/{domain}/contact-info/schema", "get_contact_info_schema"],
82
- ["GET", "/v2/projects/{projectIdOrName}/feature-flags/flags", "list_flags_v2"],
83
- ["PUT", "/v1/projects/{projectIdOrName}/feature-flags/flags", "create_flag"],
84
- ["POST", "/v2/sandboxes/sessions/{sessionId}/extend-timeout", "extend_session_timeout"],
85
- ["POST", "/v2/sandboxes/sessions/{sessionId}/network-policy", "update_session_network_policy"],
86
- ["POST", "/v1/projects/{idOrName}/rolling-release/complete", "complete_rolling_release"],
87
- ["GET", "/v1/projects/{idOrName}/rolling-release/billing", "get_rolling_release_billing_status"],
88
- ["GET", "/v1/projects/{idOrName}/rolling-release/config", "get_rolling_release_config"],
89
- ["PATCH", "/v1/projects/{idOrName}/rolling-release/config", "update_rolling_release_config"],
90
- ["POST", "/v1/projects/{idOrName}/rolling-release/start", "start_rolling_release"],
91
- ["GET", "/v1/integrations/configuration/{id}/products", "list_integration_configuration_products"],
92
- ["GET", "/v1/microfrontends/groups/{groupId}/projects", "list_microfrontends_group_projects"],
93
- ["GET", "/v1/security/firewall/config/{configVersion}", "get_firewall_config"],
94
- ["GET", "/v1/registrar/domains/{domain}/availability", "get_domain_availability"],
95
- ["GET", "/v9/projects/{idOrName}/custom-environments", "list_project_custom_environments"],
96
- ["POST", "/v2/sandboxes/sessions/{sessionId}/fs/mkdir", "create_session_directory"],
97
- ["POST", "/v2/sandboxes/sessions/{sessionId}/fs/write", "write_session_files"],
98
- ["POST", "/v2/sandboxes/sessions/{sessionId}/snapshot", "create_sandboxes_sessions_by_session_id_snapshot_v2"],
99
- ["POST", "/v3/sandboxes/sessions/{sessionId}/snapshot", "create_sandboxes_sessions_by_session_id_snapshot_v3"],
100
- ["POST", "/v2/sandboxes/sessions/{sessionId}/fs/read", "read_session_file"],
101
- ["PATCH", "/v1/projects/{idOrName}/protection-bypass", "update_project_protection_bypass"],
102
- ["POST", "/v2/deployments/{deploymentId}/check-runs", "create_deployment_check_run"],
103
- ["GET", "/v1/microfrontends/{deploymentId}/config", "get_microfrontends_config"],
104
- ["GET", "/v1/projects/{projectId}/promote/aliases", "list_promote_aliases"],
105
- ["GET", "/v1/projects/{projectId}/routes/versions", "list_project_route_versions"],
106
- ["POST", "/v1/projects/{projectId}/routes/generate", "generate_route"],
107
- ["POST", "/v1/projects/{projectId}/routes/versions", "update_route_versions"],
108
- ["GET", "/v1/projects/{idOrName}/rolling-release", "get_rolling_release"],
109
- ["POST", "/v1/global-config/{edgeConfigId}/schema", "patch_edge_config_schema"],
110
- ["POST", "/v1/kms/issuers/{issuerId}/sign/message", "sign_kms_message"],
111
- ["POST", "/v2/sandboxes/sessions/{sessionId}/stop", "stop_session"],
112
- ["GET", "/v2/sandboxes/sessions/{sessionId}/cmd", "list_session_commands"],
113
- ["PATCH", "/v1/global-config/{edgeConfigId}/items", "patch_edge_config_items"],
114
- ["POST", "/v1/global-config/{edgeConfigId}/token", "create_edge_config_token"],
115
- ["POST", "/v2/sandboxes/sessions/{sessionId}/cmd", "run_session_command"],
116
- ["GET", "/v1/access-groups/{idOrName}/projects", "list_access_group_projects"],
117
- ["POST", "/v1/deployments/{deploymentId}/checks", "create_check"],
118
- ["POST", "/v1/kms/issuers/{issuerId}/sign/token", "sign_kms_token"],
119
- ["POST", "/v1/teams/{teamId}/members/teams/join", "join_team"],
120
- ["GET", "/v1/access-groups/{idOrName}/members", "list_access_group_members"],
121
- ["GET", "/v1/registrar/domains/{domain}/price", "get_domain_price"],
122
- ["GET", "/v2/sandboxes/snapshots/{snapshotId}", "get_session_snapshot"],
123
- ["GET", "/v1/integrations/configuration/{id}", "get_configuration"],
124
- ["POST", "/v1/kms/issuers/{issuerId}/policies", "create_kms_issuer_policy"],
125
- ["GET", "/v2/sandboxes/sessions/{sessionId}", "get_session"],
126
- ["POST", "/v1/registrar/domains/{domain}/buy", "buy_single_domain"],
127
- ["PUT", "/projects/transfer-request/{code}", "accept_project_transfer_request"],
128
- ["GET", "/v1/connect/networks/{networkId}", "read_network"],
129
- ["GET", "/v3/deployments/{idOrUrl}/events", "list_deployment_events"],
130
- ["PATCH", "/v1/connect/networks/{networkId}", "update_network"],
131
- ["POST", "/v1/projects/{projectId}/unpause", "unpause_project"],
132
- ["POST", "/v10/projects/{idOrName}/domains", "add_project_domain"],
133
- ["PUT", "/v1/global-config/{edgeConfigId}", "update_edge_config"],
134
- ["GET", "/v1/projects/{projectId}/routes", "list_project_routes"],
135
- ["GET", "/v9/projects/{idOrName}/domains", "list_project_domains"],
136
- ["PATCH", "/aliases/{id}/protection-bypass", "patch_url_protection_bypass"],
137
- ["POST", "/v1/kms/issuers/{issuerId}/keys", "create_kms_signing_key"],
138
- ["POST", "/v1/projects/{projectId}/routes", "add_route"],
139
- ["PUT", "/v1/projects/{projectId}/routes", "stage_routes"],
140
- ["GET", "/v1/registrar/orders/{orderId}", "get_order"],
141
- ["GET", "/v1/registrar/tlds/{tld}/price", "get_tld_price"],
142
- ["PATCH", "/v1/domains/records/{recordId}", "update_record"],
143
- ["POST", "/v1/projects/{projectId}/pause", "pause_project"],
144
- ["POST", "/v1/projects/{idOrName}/token", "get_project_token"],
145
- ["GET", "/v1/access-groups/{idOrName}", "read_access_group"],
146
- ["GET", "/v2/deployments/{id}/aliases", "list_deployment_aliases"],
147
- ["PATCH", "/v12/deployments/{id}/cancel", "cancel_deployment"],
148
- ["POST", "/v2/deployments/{id}/aliases", "assign_alias"],
149
- ["GET", "/domains/records/{recordId}", "get_domains_records_by_record_id"],
150
- ["GET", "/v1/kms/issuers/{issuerId}", "get_kms_issuer"],
151
- ["GET", "/v13/deployments/{idOrUrl}", "get_deployment"],
152
- ["GET", "/v3/teams/{teamId}/members", "list_team_members"],
153
- ["GET", "/v6/deployments/{id}/files", "list_deployment_files"],
154
- ["PATCH", "/v1/kms/issuers/{issuerId}", "update_kms_issuer"],
155
- ["GET", "/v5/user/tokens/{tokenId}", "get_auth_token"],
156
- ["PUT", "/domains/{domain}/records", "replace_domains_by_domain_records"],
157
- ["GET", "/v1/registrar/tlds/{tld}", "get_tld"],
158
- ["GET", "/v9/projects/{idOrName}", "get_project"],
159
- ["PATCH", "/v9/projects/{idOrName}", "update_project"],
160
- ["GET", "/storage/stores/{id}", "get_storage_stores_by_id"],
161
- ["GET", "/v2/sandboxes/{name}", "get_named_sandbox"],
162
- ["PATCH", "/v2/sandboxes/{name}", "update_sandbox"],
163
- ["PUT", "/v8/artifacts/{hash}", "upload_artifact"],
164
- ["GET", "/v2/teams/{teamId}", "get_team"],
165
- ["GET", "/v1/webhooks/{id}", "get_webhook"],
166
- ["GET", "/v1/drains/{id}", "get_drain"],
167
- ["PATCH", "/v1/drains/{id}", "update_drain"],
168
- ["GET", "/v1/env/{id}", "get_shared_env_var"],
169
- [
170
- "GET",
171
- "/v1/integrations/integration/{integrationIdOrSlug}/products/{productIdOrSlug}/plans",
172
- "list_integration_billing_plans",
173
- ],
174
- [
175
- "POST",
176
- "/v1/global-config/{edgeConfigId}/backups/{edgeConfigBackupVersionId}/restore",
177
- "restore_edge_config_backup",
178
- ],
179
- ["GET", "/v1/projects/{projectIdOrName}/feature-flags/segments/{segmentIdOrSlug}", "get_flag_segment"],
180
- ["PATCH", "/v1/projects/{projectIdOrName}/feature-flags/segments/{segmentIdOrSlug}", "update_flag_segment"],
181
- ["GET", "/v1/global-config/{edgeConfigId}/backups/{edgeConfigBackupVersionId}", "get_edge_config_backup"],
182
- ["GET", "/v1/projects/{projectIdOrName}/feature-flags/flags/{flagIdOrSlug}", "get_flag"],
183
- ["GET", "/v9/projects/{idOrName}/custom-environments/{environmentSlugOrId}", "get_custom_environment"],
184
- ["PATCH", "/v1/projects/{projectIdOrName}/feature-flags/flags/{flagIdOrSlug}", "update_flag"],
185
- ["GET", "/v1/projects/{projectId}/deployments/{deploymentId}/runtime-logs", "get_runtime_logs"],
186
- ["GET", "/v1/access-groups/{accessGroupIdOrName}/projects/{projectId}", "read_access_group_project"],
187
- ["POST", "/v1/deployments/{deploymentId}/checks/{checkId}/rerequest", "rerequest_check"],
188
- ["GET", "/v2/deployments/{deploymentId}/check-runs/{checkRunId}", "get_deployment_check_run"],
189
- ["PATCH", "/v2/deployments/{deploymentId}/check-runs/{checkRunId}", "update_deployment_check_run"],
190
- ["GET", "/v2/projects/{projectIdOrName}/checks/{checkId}/runs", "list_check_runs"],
191
- ["GET", "/v2/sandboxes/sessions/{sessionId}/cmd/{cmdId}/logs", "get_session_command_logs"],
192
- ["POST", "/v2/sandboxes/sessions/{sessionId}/cmd/{cmdId}/kill", "kill_session_command"],
193
- ["POST", "/v1/kms/issuers/{issuerId}/keys/{keyId}/activate", "activate_kms_signing_key"],
194
- ["POST", "/v1/projects/{projectId}/rollback/{deploymentId}", "request_rollback"],
195
- ["POST", "/v10/projects/{projectId}/promote/{deploymentId}", "request_promote"],
196
- ["GET", "/v1/deployments/{deploymentId}/checks/{checkId}", "get_check"],
197
- ["GET", "/v2/projects/{projectIdOrName}/checks/{checkId}", "get_project_check"],
198
- ["PATCH", "/v1/deployments/{deploymentId}/checks/{checkId}", "update_check"],
199
- ["PATCH", "/v2/projects/{projectIdOrName}/checks/{checkId}", "update_project_check"],
200
- ["GET", "/v1/global-config/{edgeConfigId}/token/{token}", "get_edge_config_token"],
201
- ["GET", "/v2/sandboxes/sessions/{sessionId}/cmd/{cmdId}", "get_session_command"],
202
- ["POST", "/v1/kms/issuers/{issuerId}/keys/{keyId}/revoke", "revoke_kms_signing_key"],
203
- ["PATCH", "/v1/projects/{projectId}/routes/{routeId}", "edit_route"],
204
- ["GET", "/v1/teams/{teamId}/request/{userId}", "get_team_access_request"],
205
- ["GET", "/v8/deployments/{id}/files/{fileId}", "get_deployment_file_contents"],
206
- ["PATCH", "/v1/kms/issuers/{issuerId}/policies/{kind}/{policyKey}", "update_kms_issuer_policy"],
207
- ];
208
- // OpenAPI listDrives is not in the published MCP categories. This concrete
209
- // route must resolve before get_named_sandbox's wildcard name parameter.
210
- export const UNCOVERED_REST_OPERATIONS = [
211
- ["GET", "/v2/sandboxes/drives"],
212
- ];