@reclaimprotocol/agent 0.1.1-dev.1 → 0.1.1
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.
- package/README.md +1 -1
- package/lib/cdp/capture-engine.d.ts +66 -0
- package/lib/cdp/capture-engine.js +153 -0
- package/lib/cdp/capture.d.ts +9 -20
- package/lib/cdp/capture.js +14 -138
- package/lib/cdp/index.d.ts +3 -0
- package/lib/cdp/index.js +6 -0
- package/lib/config/store.d.ts +7 -6
- package/lib/config/store.js +2 -2
- package/lib/index.d.ts +2 -2
- package/lib/index.js +1 -1
- package/lib/mcp/api/operations.gen.d.ts +101 -45
- package/lib/mcp/api/operations.gen.js +996 -126
- package/lib/mcp/api/to-zod.d.ts +24 -0
- package/lib/mcp/api/to-zod.js +94 -0
- package/lib/mcp/api/tools.js +1 -1
- package/lib/mcp/credentials/authenticate.d.ts +3 -0
- package/lib/mcp/{tools/credentials → credentials}/authenticate.js +3 -3
- package/lib/mcp/credentials/build.d.ts +5 -0
- package/lib/mcp/credentials/build.js +18 -0
- package/lib/mcp/{tools/credentials → credentials}/cache.d.ts +9 -9
- package/lib/mcp/{tools/credentials → credentials}/cache.js +36 -19
- package/lib/mcp/credentials/import.d.ts +2 -0
- package/lib/mcp/{tools/credentials → credentials}/import.js +2 -2
- package/lib/mcp/credentials/issue.d.ts +2 -0
- package/lib/mcp/{tools/credentials → credentials}/issue.js +4 -4
- package/lib/mcp/credentials/keypair.d.ts +17 -0
- package/lib/mcp/credentials/keypair.js +48 -0
- package/lib/mcp/credentials/link.d.ts +3 -0
- package/lib/mcp/credentials/link.js +107 -0
- package/lib/mcp/{tools/credentials → credentials}/list-cached.d.ts +1 -1
- package/lib/mcp/{tools/credentials → credentials}/list-cached.js +5 -5
- package/lib/mcp/credentials/owner-key.d.ts +23 -0
- package/lib/mcp/credentials/owner-key.js +58 -0
- package/lib/mcp/credentials/paths.d.ts +12 -0
- package/lib/mcp/credentials/paths.js +35 -0
- package/lib/mcp/credentials/poll.d.ts +27 -0
- package/lib/mcp/credentials/poll.js +61 -0
- package/lib/mcp/{tools/credentials → credentials}/resolve-owner-key.d.ts +1 -1
- package/lib/mcp/{tools/credentials → credentials}/resolve-owner-key.js +2 -2
- package/lib/mcp/credentials/session-cache.d.ts +14 -0
- package/lib/mcp/credentials/session-cache.js +42 -0
- package/lib/mcp/{tools/credentials → credentials}/status.d.ts +1 -1
- package/lib/mcp/credentials/status.js +76 -0
- package/lib/mcp/instructions.d.ts +1 -0
- package/lib/mcp/instructions.js +11 -0
- package/lib/mcp/register.d.ts +38 -0
- package/lib/mcp/register.js +80 -0
- package/lib/mcp/server.d.ts +2 -2
- package/lib/mcp/server.js +3 -3
- package/lib/mcp/start.js +10 -4
- package/lib/mcp/tools/agent/build.js +2 -15
- package/lib/mcp/tools/agent/index.d.ts +2 -0
- package/lib/mcp/tools/agent/index.js +3 -0
- package/lib/mcp/tools/agent/proof.js +1 -6
- package/lib/mcp/tools/agent/propose.js +13 -2
- package/lib/mcp/tools/agent/publish.js +10 -2
- package/lib/mcp/tools/agent/replay.js +0 -5
- package/lib/mcp/tools/analyze.d.ts +3 -0
- package/lib/mcp/tools/analyze.js +26 -0
- package/lib/mcp/tools/attach.d.ts +11 -0
- package/lib/mcp/tools/attach.js +72 -0
- package/lib/mcp/tools/authenticate/authenticate.js +107 -0
- package/lib/mcp/tools/authenticate/build.d.ts +15 -0
- package/lib/mcp/tools/authenticate/build.js +28 -0
- package/lib/mcp/tools/authenticate/decrypt-key.d.ts +32 -0
- package/lib/mcp/tools/authenticate/decrypt-key.js +49 -0
- package/lib/mcp/tools/authenticate/eth-key.d.ts +38 -0
- package/lib/mcp/tools/authenticate/eth-key.js +130 -0
- package/lib/mcp/tools/authenticate/import.js +57 -0
- package/lib/mcp/tools/authenticate/index.d.ts +2 -0
- package/lib/mcp/tools/authenticate/index.js +4 -0
- package/lib/mcp/tools/authenticate/issue.js +42 -0
- package/lib/mcp/tools/authenticate/resolve-owner-key.d.ts +13 -0
- package/lib/mcp/tools/authenticate/resolve-owner-key.js +53 -0
- package/lib/mcp/tools/capture.d.ts +10 -0
- package/lib/mcp/tools/capture.js +142 -0
- package/lib/mcp/tools/eval.d.ts +5 -0
- package/lib/mcp/tools/eval.js +127 -0
- package/lib/mcp/tools/find.d.ts +3 -0
- package/lib/mcp/tools/find.js +60 -0
- package/lib/mcp/tools/index.d.ts +3 -0
- package/lib/mcp/tools/index.js +6 -0
- package/lib/mcp/tools/owner-key.d.ts +2 -0
- package/lib/mcp/tools/owner-key.js +63 -0
- package/lib/mcp/tools/proof.d.ts +3 -0
- package/lib/mcp/tools/proof.js +214 -0
- package/lib/mcp/tools/propose.d.ts +9 -0
- package/lib/mcp/tools/propose.js +75 -0
- package/lib/mcp/tools/publish.d.ts +3 -0
- package/lib/mcp/tools/publish.js +59 -0
- package/lib/mcp/tools/replay.d.ts +3 -0
- package/lib/mcp/tools/replay.js +46 -0
- package/lib/mcp/tools/session.d.ts +10 -0
- package/lib/mcp/tools/session.js +29 -0
- package/lib/mcp/tools/verification/build.d.ts +12 -0
- package/lib/mcp/tools/verification/build.js +14 -0
- package/lib/mcp/tools/verification/diagnose.d.ts +11 -0
- package/lib/mcp/tools/verification/diagnose.js +132 -0
- package/lib/mcp/tools/verification/index.d.ts +1 -0
- package/lib/mcp/tools/verification/index.js +2 -0
- package/lib/mcp/tools/verification/result.d.ts +12 -0
- package/lib/mcp/tools/verification/result.js +126 -0
- package/lib/mcp/verifications/build.d.ts +5 -0
- package/lib/mcp/verifications/build.js +14 -0
- package/lib/mcp/verifications/create.d.ts +3 -0
- package/lib/mcp/verifications/create.js +57 -0
- package/lib/mcp/verifications/find.d.ts +3 -0
- package/lib/mcp/verifications/find.js +37 -0
- package/lib/mcp/verifications/get.d.ts +3 -0
- package/lib/mcp/verifications/get.js +26 -0
- package/lib/mcp/verifications/update.d.ts +3 -0
- package/lib/mcp/verifications/update.js +78 -0
- package/lib/old/client.d.ts +3 -0
- package/lib/old/instructions.d.ts +0 -6
- package/lib/old/instructions.js +6 -24
- package/lib/old/to-register.d.ts +3 -0
- package/lib/old/to-register.js +35 -7
- package/lib/old/tools/publish.js +13 -1
- package/lib/proof/attestor.d.ts +33 -1
- package/lib/proof/attestor.js +65 -63
- package/lib/proof/index.d.ts +5 -0
- package/lib/proof/index.js +6 -0
- package/lib/proof/proof-core.d.ts +35 -0
- package/lib/proof/proof-core.js +73 -0
- package/lib/provider/index.d.ts +5 -0
- package/lib/provider/index.js +9 -0
- package/lib/provider/to-version.d.ts +9 -12
- package/lib/provider/to-version.js +38 -4
- package/lib/provider/verification-checks.d.ts +12 -0
- package/lib/provider/verification-checks.js +30 -0
- package/lib/routes.gen.d.ts +271 -0
- package/lib/routes.gen.js +73 -0
- package/lib/types/openapi.gen.d.ts +3967 -0
- package/lib/types/openapi.gen.js +5 -0
- package/package.json +16 -7
- package/skill/SKILL.md +35 -14
- package/skill/builder-mode.md +9 -0
- package/skill/old-mode.md +13 -0
- package/src/cdp/capture-engine.ts +256 -0
- package/src/cdp/capture.ts +25 -185
- package/src/cdp/index.ts +6 -0
- package/src/config/store.ts +7 -6
- package/src/index.ts +2 -4
- package/src/mcp/api/operations.gen.ts +1023 -121
- package/src/mcp/api/to-zod.ts +115 -0
- package/src/mcp/api/tools.ts +9 -3
- package/src/mcp/instructions.ts +15 -0
- package/src/mcp/server.ts +5 -4
- package/src/mcp/start.ts +14 -4
- package/src/mcp/tools/agent/build.ts +2 -18
- package/src/mcp/tools/agent/index.ts +4 -0
- package/src/mcp/tools/agent/proof.ts +1 -7
- package/src/mcp/tools/agent/propose.ts +13 -2
- package/src/mcp/tools/agent/publish.ts +10 -2
- package/src/mcp/tools/agent/replay.ts +0 -5
- package/src/mcp/tools/{credentials → authenticate}/authenticate.ts +9 -8
- package/src/mcp/tools/authenticate/build.ts +32 -0
- package/src/mcp/tools/authenticate/decrypt-key.ts +64 -0
- package/src/mcp/tools/authenticate/eth-key.ts +182 -0
- package/src/mcp/tools/authenticate/import.ts +73 -0
- package/src/mcp/tools/authenticate/index.ts +4 -0
- package/src/mcp/tools/authenticate/issue.ts +50 -0
- package/src/mcp/tools/authenticate/resolve-owner-key.ts +60 -0
- package/src/mcp/tools/index.ts +6 -0
- package/src/mcp/tools/verification/build.ts +16 -0
- package/src/mcp/tools/verification/index.ts +2 -0
- package/src/mcp/tools/verification/result.ts +155 -0
- package/src/old/client.ts +3 -0
- package/src/old/instructions.ts +10 -25
- package/src/old/to-register.ts +62 -27
- package/src/old/tools/publish.ts +17 -1
- package/src/proof/attestor.ts +112 -71
- package/src/proof/index.ts +21 -0
- package/src/proof/proof-core.ts +109 -0
- package/src/provider/index.ts +20 -0
- package/src/provider/to-version.ts +52 -11
- package/src/provider/verification-checks.ts +36 -0
- package/lib/mcp/tools/credentials/build.d.ts +0 -16
- package/lib/mcp/tools/credentials/build.js +0 -33
- package/lib/mcp/tools/credentials/status.js +0 -62
- package/src/mcp/tools/credentials/build.ts +0 -37
- package/src/mcp/tools/credentials/cache.ts +0 -161
- package/src/mcp/tools/credentials/env-file.ts +0 -101
- package/src/mcp/tools/credentials/import.ts +0 -72
- package/src/mcp/tools/credentials/issue.ts +0 -107
- package/src/mcp/tools/credentials/list-cached.ts +0 -66
- package/src/mcp/tools/credentials/register.ts +0 -49
- package/src/mcp/tools/credentials/resolve-owner-key.ts +0 -78
- package/src/mcp/tools/credentials/status.ts +0 -82
- package/src/types/openapi.ts +0 -7
- /package/lib/mcp/{tools/credentials → credentials}/env-file.d.ts +0 -0
- /package/lib/mcp/{tools/credentials → credentials}/env-file.js +0 -0
- /package/lib/mcp/{tools/credentials → credentials}/register.d.ts +0 -0
- /package/lib/mcp/{tools/credentials → credentials}/register.js +0 -0
- /package/lib/mcp/tools/{credentials → authenticate}/authenticate.d.ts +0 -0
- /package/lib/mcp/tools/{credentials → authenticate}/import.d.ts +0 -0
- /package/lib/mcp/tools/{credentials → authenticate}/issue.d.ts +0 -0
- /package/lib/mcp/tools/{credentials → authenticate}/session-cache.d.ts +0 -0
- /package/lib/mcp/tools/{credentials → authenticate}/session-cache.js +0 -0
- /package/src/mcp/tools/{credentials → authenticate}/session-cache.ts +0 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Run `npm run openapi:typegen --workspace=packages/agent`
|
|
4
4
|
// to regenerate. Do not edit by hand.
|
|
5
5
|
// @ts-nocheck
|
|
6
|
-
import {
|
|
6
|
+
import { toZod } from "./to-zod.js";
|
|
7
7
|
export const MCP_TOOLS = {
|
|
8
8
|
"AddOrgMember": {
|
|
9
9
|
description: "Invite a member to an organization\n\nOwner only. Invites a user to the organization by email. The invitee does **not** need to be a registered user — an invite is created in either case, and an email is dispatched. The new row is returned with `status: PENDING`; it flips to `ACTIVE` on first sign-in by the invited email. `PERSONAL` organizations reject this call (409). In the current milestone the email is not actually dispatched — the invite is auto-claimed when the invitee next signs in.",
|
|
@@ -160,6 +160,46 @@ export const MCP_TOOLS = {
|
|
|
160
160
|
"additionalProperties": false
|
|
161
161
|
}),
|
|
162
162
|
},
|
|
163
|
+
"AdminSessions": {
|
|
164
|
+
description: "Explore verification sessions (admin-only)\n\nAdmin only. Search verification sessions across all organizations — paste a session id, provider id, or consumer ETH address into `q`, optionally filter by `status`. Rows link to the org-scoped session detail page (admins can open any org's pages). Capped at 100, newest first.",
|
|
165
|
+
inputSchema: toZod({
|
|
166
|
+
"type": "object",
|
|
167
|
+
"properties": {
|
|
168
|
+
"params": {
|
|
169
|
+
"type": "object",
|
|
170
|
+
"properties": {}
|
|
171
|
+
},
|
|
172
|
+
"query": {
|
|
173
|
+
"type": "object",
|
|
174
|
+
"properties": {
|
|
175
|
+
"q": {
|
|
176
|
+
"type": "string",
|
|
177
|
+
"maxLength": 100
|
|
178
|
+
},
|
|
179
|
+
"status": {
|
|
180
|
+
"type": "string",
|
|
181
|
+
"description": "Status of a verification session, derived from its events. New values\nmay be added over time; clients MUST tolerate unknown values in\nresponses.\n\n- `pending`: Created, not yet finished; completable until `expiresAt`.\n\n- `success`: Terminal — `verification_success` recorded.\n\n- `rejected`: Terminal — `verification_rejected` recorded.\n\n- `error`: Terminal — `verification_error` recorded.\n\n- `expired`: `expiresAt` passed before a terminal event; the end-user\n can no longer complete it.",
|
|
182
|
+
"enum": [
|
|
183
|
+
"pending",
|
|
184
|
+
"success",
|
|
185
|
+
"rejected",
|
|
186
|
+
"error",
|
|
187
|
+
"expired"
|
|
188
|
+
]
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
},
|
|
192
|
+
"body": {
|
|
193
|
+
"type": "object"
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
"required": [
|
|
197
|
+
"params",
|
|
198
|
+
"query"
|
|
199
|
+
],
|
|
200
|
+
"additionalProperties": false
|
|
201
|
+
}),
|
|
202
|
+
},
|
|
163
203
|
"CancelPublicListingRequest": {
|
|
164
204
|
description: "Cancel a pending public listing review request\n\nCancels a pending public listing request by moving the version from `in_review` back to `draft`. Only org members can cancel their own review requests. This allows users to withdraw a request before admin review if they change their mind.",
|
|
165
205
|
inputSchema: toZod({
|
|
@@ -233,6 +273,67 @@ export const MCP_TOOLS = {
|
|
|
233
273
|
"additionalProperties": false
|
|
234
274
|
}),
|
|
235
275
|
},
|
|
276
|
+
"CreateCallbackSubscription": {
|
|
277
|
+
description: "Register a callback subscription\n\nRegisters a destination for verification results on the organization\nthe presented `OrgToken` resolves to. The body is just `callbackUrl`\nand `events`. At least one subscription must exist for the org before a\nverification session can be created. Delivery is scoped by org: terminal\nresults are encrypted as a compact JWE to the org's encryption\ncredential when set (see `PUT /orgs/{orgId}/credential`), else delivered\nas plaintext.\n",
|
|
278
|
+
inputSchema: toZod({
|
|
279
|
+
"type": "object",
|
|
280
|
+
"properties": {
|
|
281
|
+
"params": {
|
|
282
|
+
"type": "object",
|
|
283
|
+
"properties": {}
|
|
284
|
+
},
|
|
285
|
+
"query": {
|
|
286
|
+
"type": "object",
|
|
287
|
+
"properties": {}
|
|
288
|
+
},
|
|
289
|
+
"body": {
|
|
290
|
+
"type": "object",
|
|
291
|
+
"additionalProperties": false,
|
|
292
|
+
"description": "Body for `POST /verifications/callback-subscriptions`. The owning organization is resolved from the presented `OrgToken`; delivery is scoped to that org and encrypted to its credential when set.",
|
|
293
|
+
"required": [
|
|
294
|
+
"callbackUrl",
|
|
295
|
+
"events"
|
|
296
|
+
],
|
|
297
|
+
"properties": {
|
|
298
|
+
"callbackUrl": {
|
|
299
|
+
"type": "string",
|
|
300
|
+
"format": "uri",
|
|
301
|
+
"maxLength": 2000
|
|
302
|
+
},
|
|
303
|
+
"events": {
|
|
304
|
+
"type": "array",
|
|
305
|
+
"minItems": 1,
|
|
306
|
+
"maxItems": 12,
|
|
307
|
+
"items": {
|
|
308
|
+
"type": "string",
|
|
309
|
+
"description": "Lifecycle event reported for a verification session. A healthy run\nproceeds through these in order; reading the gaps locates where a\nsession stalled. Session-level terminal events trigger callback\ndelivery; request-level events are progress pings carrying a\n`request_id` in their event data. New values may be added over time;\nclients MUST tolerate unknown values in responses.\n\n- `session_pending`: Session created; awaiting the end-user.\n\n- `verification_client_opened`: The end-user opened the link. Absent ⇒\n the link was never opened.\n\n- `verification_client_ready`: The client initialized.\n\n- `request_matched`: The target request was captured on the provider\n site. Absent (after opened) ⇒ the user didn't complete the journey.\n\n- `request_claim_created`: A proof claim was started.\n\n- `request_claim_completed`: A proof claim finished.\n\n- `request_claim_rejected`: A claim was rejected (detail in `eventData`).\n\n- `request_claim_failed`: A claim errored (detail in `eventData`).\n\n- `verification_success`: Terminal — verified. Triggers callback delivery.\n\n- `verification_rejected`: Terminal — rejected (detail in `eventData`).\n\n- `verification_error`: Terminal — errored (detail in `eventData`).\n\n- `session_expired`: `expiresAt` passed before a terminal event.",
|
|
310
|
+
"enum": [
|
|
311
|
+
"session_pending",
|
|
312
|
+
"verification_client_opened",
|
|
313
|
+
"verification_client_ready",
|
|
314
|
+
"request_matched",
|
|
315
|
+
"request_claim_created",
|
|
316
|
+
"request_claim_completed",
|
|
317
|
+
"request_claim_rejected",
|
|
318
|
+
"request_claim_failed",
|
|
319
|
+
"verification_success",
|
|
320
|
+
"verification_rejected",
|
|
321
|
+
"verification_error",
|
|
322
|
+
"session_expired"
|
|
323
|
+
]
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
},
|
|
329
|
+
"required": [
|
|
330
|
+
"params",
|
|
331
|
+
"query",
|
|
332
|
+
"body"
|
|
333
|
+
],
|
|
334
|
+
"additionalProperties": false
|
|
335
|
+
}),
|
|
336
|
+
},
|
|
236
337
|
"CreateOrg": {
|
|
237
338
|
description: "Create an organization\n\nCreates a new `ORG`-kind organization with the caller as its first `OWNER`. The personal org is created automatically at user signup and is not created via this endpoint.",
|
|
238
339
|
inputSchema: toZod({
|
|
@@ -269,6 +370,76 @@ export const MCP_TOOLS = {
|
|
|
269
370
|
"additionalProperties": false
|
|
270
371
|
}),
|
|
271
372
|
},
|
|
373
|
+
"CreateOrgCallbackSubscription": {
|
|
374
|
+
description: "Register a callback subscription on an organization\n\nRegisters a destination for verification results on the organization. Caller must be an active member of the org. The body is just `callbackUrl` and `events`; delivery is scoped to the org and encrypted as a compact JWE to the org's encryption credential when set, else delivered as plaintext.",
|
|
375
|
+
inputSchema: toZod({
|
|
376
|
+
"type": "object",
|
|
377
|
+
"properties": {
|
|
378
|
+
"params": {
|
|
379
|
+
"type": "object",
|
|
380
|
+
"properties": {
|
|
381
|
+
"orgId": {
|
|
382
|
+
"type": "string",
|
|
383
|
+
"format": "uuid"
|
|
384
|
+
}
|
|
385
|
+
},
|
|
386
|
+
"required": [
|
|
387
|
+
"orgId"
|
|
388
|
+
],
|
|
389
|
+
"additionalProperties": false
|
|
390
|
+
},
|
|
391
|
+
"query": {
|
|
392
|
+
"type": "object",
|
|
393
|
+
"properties": {}
|
|
394
|
+
},
|
|
395
|
+
"body": {
|
|
396
|
+
"type": "object",
|
|
397
|
+
"additionalProperties": false,
|
|
398
|
+
"description": "Body for `POST /orgs/{orgId}/callback-subscriptions`. The owning organization comes from the path; bearer-authenticated and gated on org membership. Delivery is scoped to the org and encrypted to its credential when set.",
|
|
399
|
+
"required": [
|
|
400
|
+
"callbackUrl",
|
|
401
|
+
"events"
|
|
402
|
+
],
|
|
403
|
+
"properties": {
|
|
404
|
+
"callbackUrl": {
|
|
405
|
+
"type": "string",
|
|
406
|
+
"format": "uri",
|
|
407
|
+
"maxLength": 2000
|
|
408
|
+
},
|
|
409
|
+
"events": {
|
|
410
|
+
"type": "array",
|
|
411
|
+
"minItems": 1,
|
|
412
|
+
"maxItems": 12,
|
|
413
|
+
"items": {
|
|
414
|
+
"type": "string",
|
|
415
|
+
"description": "Lifecycle event reported for a verification session. A healthy run\nproceeds through these in order; reading the gaps locates where a\nsession stalled. Session-level terminal events trigger callback\ndelivery; request-level events are progress pings carrying a\n`request_id` in their event data. New values may be added over time;\nclients MUST tolerate unknown values in responses.\n\n- `session_pending`: Session created; awaiting the end-user.\n\n- `verification_client_opened`: The end-user opened the link. Absent ⇒\n the link was never opened.\n\n- `verification_client_ready`: The client initialized.\n\n- `request_matched`: The target request was captured on the provider\n site. Absent (after opened) ⇒ the user didn't complete the journey.\n\n- `request_claim_created`: A proof claim was started.\n\n- `request_claim_completed`: A proof claim finished.\n\n- `request_claim_rejected`: A claim was rejected (detail in `eventData`).\n\n- `request_claim_failed`: A claim errored (detail in `eventData`).\n\n- `verification_success`: Terminal — verified. Triggers callback delivery.\n\n- `verification_rejected`: Terminal — rejected (detail in `eventData`).\n\n- `verification_error`: Terminal — errored (detail in `eventData`).\n\n- `session_expired`: `expiresAt` passed before a terminal event.",
|
|
416
|
+
"enum": [
|
|
417
|
+
"session_pending",
|
|
418
|
+
"verification_client_opened",
|
|
419
|
+
"verification_client_ready",
|
|
420
|
+
"request_matched",
|
|
421
|
+
"request_claim_created",
|
|
422
|
+
"request_claim_completed",
|
|
423
|
+
"request_claim_rejected",
|
|
424
|
+
"request_claim_failed",
|
|
425
|
+
"verification_success",
|
|
426
|
+
"verification_rejected",
|
|
427
|
+
"verification_error",
|
|
428
|
+
"session_expired"
|
|
429
|
+
]
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
},
|
|
435
|
+
"required": [
|
|
436
|
+
"params",
|
|
437
|
+
"query",
|
|
438
|
+
"body"
|
|
439
|
+
],
|
|
440
|
+
"additionalProperties": false
|
|
441
|
+
}),
|
|
442
|
+
},
|
|
272
443
|
"CreateProvider": {
|
|
273
444
|
description: "Create a verification\n\nCreate a new Reclaim verification. Use this only after `providers` returned nothing useful for the domain. The caller must be an active member of the target organization.\nCreates a new verification in the specified organization. `visibility` is coerced to `PRIVATE` at creation regardless of what's sent; the author may toggle to `PUBLIC` later via `PATCH /providers/{id}`. While `PRIVATE`, versions go to the go live freely; once `PUBLIC`, non-admin versions need admin review. See `Provider.visibility`.\nThe server also seeds an initial `0.1.0` version on the `draft` branch in the same transaction so the verification is immediately editable. Its `initialUrl` defaults to `https://<domain>`; all other version fields fall back to their schema-declared defaults (structured verification, empty requests, empty web settings). `Provider.latestVersion` stays `null` until the draft is promoted to the live channel.",
|
|
274
445
|
inputSchema: toZod({
|
|
@@ -626,7 +797,143 @@ export const MCP_TOOLS = {
|
|
|
626
797
|
"description": "A template for selecting request",
|
|
627
798
|
"allOf": [
|
|
628
799
|
{
|
|
629
|
-
"
|
|
800
|
+
"type": "object",
|
|
801
|
+
"additionalProperties": false,
|
|
802
|
+
"description": "A matcher for one HTTP request in observed traffic, together with the response constraints that must hold for a Reclaim proof over that request to be valid. Used by interceptors, in-page injections, and LLM agents.",
|
|
803
|
+
"required": [
|
|
804
|
+
"url",
|
|
805
|
+
"method"
|
|
806
|
+
],
|
|
807
|
+
"properties": {
|
|
808
|
+
"url": {
|
|
809
|
+
"type": "string",
|
|
810
|
+
"description": "The URL or generic path of the HTTP request."
|
|
811
|
+
},
|
|
812
|
+
"method": {
|
|
813
|
+
"type": "string",
|
|
814
|
+
"description": "The HTTP method used for the request.",
|
|
815
|
+
"enum": [
|
|
816
|
+
"GET",
|
|
817
|
+
"POST",
|
|
818
|
+
"PUT",
|
|
819
|
+
"PATCH",
|
|
820
|
+
"DELETE"
|
|
821
|
+
]
|
|
822
|
+
},
|
|
823
|
+
"requestBodyTemplate": {
|
|
824
|
+
"type": "string",
|
|
825
|
+
"description": "Template used to match or capture an outgoing request body. Template can use regex templates as placeholders. For example, to match an outgoing request body that contains a request ID, you can use the following template: `(?<requestId>.*)`.",
|
|
826
|
+
"maxLength": 100000
|
|
827
|
+
},
|
|
828
|
+
"credentials": {
|
|
829
|
+
"type": "string",
|
|
830
|
+
"description": "Mirrors the Fetch API `RequestCredentials` value used when issuing the request — controls whether cookies and auth headers are sent.",
|
|
831
|
+
"enum": [
|
|
832
|
+
"omit",
|
|
833
|
+
"same-origin",
|
|
834
|
+
"include"
|
|
835
|
+
]
|
|
836
|
+
},
|
|
837
|
+
"writeRedactionMode": {
|
|
838
|
+
"type": "string",
|
|
839
|
+
"description": "How the matched portion of the response should be redacted before the transcript is handed to the attestor.\n- `zk`: redact using a zero-knowledge proof over the original\n bytes.\n\n- `key-update`: redact by performing a TLS key update so the\n attestor never observes the matched bytes in cleartext.",
|
|
840
|
+
"enum": [
|
|
841
|
+
"zk",
|
|
842
|
+
"key-update"
|
|
843
|
+
]
|
|
844
|
+
},
|
|
845
|
+
"additionalClientOptions": {
|
|
846
|
+
"type": "object",
|
|
847
|
+
"additionalProperties": false,
|
|
848
|
+
"description": "Apply TLS configuration when creating the tunnel to the attestor.",
|
|
849
|
+
"properties": {
|
|
850
|
+
"supportedProtocolVersions": {
|
|
851
|
+
"type": "array",
|
|
852
|
+
"description": "TLS protocol versions the client is allowed to negotiate.",
|
|
853
|
+
"minItems": 1,
|
|
854
|
+
"uniqueItems": true,
|
|
855
|
+
"items": {
|
|
856
|
+
"type": "string",
|
|
857
|
+
"enum": [
|
|
858
|
+
"TLS1_2",
|
|
859
|
+
"TLS1_3"
|
|
860
|
+
]
|
|
861
|
+
}
|
|
862
|
+
}
|
|
863
|
+
}
|
|
864
|
+
},
|
|
865
|
+
"matches": {
|
|
866
|
+
"type": "array",
|
|
867
|
+
"description": "A list of match conditions for the response.",
|
|
868
|
+
"minItems": 1,
|
|
869
|
+
"items": {
|
|
870
|
+
"type": "object",
|
|
871
|
+
"additionalProperties": false,
|
|
872
|
+
"description": "Specifies a rule to match against a string in response to validate proof content.",
|
|
873
|
+
"required": [
|
|
874
|
+
"type",
|
|
875
|
+
"value"
|
|
876
|
+
],
|
|
877
|
+
"properties": {
|
|
878
|
+
"isOptional": {
|
|
879
|
+
"type": "boolean",
|
|
880
|
+
"description": "If true, the match condition is optional and won't fail if absent",
|
|
881
|
+
"default": false
|
|
882
|
+
},
|
|
883
|
+
"description": {
|
|
884
|
+
"type": "string",
|
|
885
|
+
"description": "The description of the field that is extracted using this match rule",
|
|
886
|
+
"minLength": 1,
|
|
887
|
+
"maxLength": 1000
|
|
888
|
+
},
|
|
889
|
+
"order": {
|
|
890
|
+
"type": "integer",
|
|
891
|
+
"description": "The order in which the field should be displayed to user in UI",
|
|
892
|
+
"minimum": 0
|
|
893
|
+
},
|
|
894
|
+
"type": {
|
|
895
|
+
"type": "string",
|
|
896
|
+
"description": "The matching mechanism to use value as against response. Typically regex or simple string containment",
|
|
897
|
+
"enum": [
|
|
898
|
+
"regex",
|
|
899
|
+
"contains"
|
|
900
|
+
]
|
|
901
|
+
},
|
|
902
|
+
"value": {
|
|
903
|
+
"type": "string",
|
|
904
|
+
"description": "The pattern or value to look for in the response. When `type` is 'contains', supports template variable declaration using `{{variable}}` syntax. When `type` is 'regex', can be used to extract variables using regex named groups."
|
|
905
|
+
},
|
|
906
|
+
"extract": {
|
|
907
|
+
"type": "object",
|
|
908
|
+
"description": "Which portions to select from a response. These are selected in order, xpath => jsonPath => regex * These redactions are done client side and only the selected portions are sent to the attestor. The attestor will only be able to see the selected portions alongside the first line of the HTTP response (i.e. \"HTTP/1.1 200 OK\")",
|
|
909
|
+
"properties": {
|
|
910
|
+
"xPath": {
|
|
911
|
+
"type": "string",
|
|
912
|
+
"description": "expect an HTML response, and to contain a certain xpath for eg. \"/html/body/div.a1/div.a2/span.a5\""
|
|
913
|
+
},
|
|
914
|
+
"jsonPath": {
|
|
915
|
+
"type": "string",
|
|
916
|
+
"description": "expect a JSON response, retrieve the item at this path using dot notation for e.g. 'email.addresses.0'"
|
|
917
|
+
},
|
|
918
|
+
"regex": {
|
|
919
|
+
"type": "string",
|
|
920
|
+
"description": "select a regex match from the response"
|
|
921
|
+
},
|
|
922
|
+
"hash": {
|
|
923
|
+
"type": "string",
|
|
924
|
+
"description": "If provided, the value inside will be hashed instead of being redacted. Useful for cases where the data inside is an identifiying piece of information that you don't want to reveal to the attestor, eg. an email address.\nIf the hash function produces more bytes than the original value, the hash will be truncated.\nEg. if hash is enabled, the original value is \"hello\", and hashed is \"a1b2c\", then the attestor will only see \"a1b2c\".\nNote: if a regex with named groups is provided, only the named groups will be hashed.",
|
|
925
|
+
"enum": [
|
|
926
|
+
"oprf",
|
|
927
|
+
"oprf-mpc",
|
|
928
|
+
"oprf-raw"
|
|
929
|
+
]
|
|
930
|
+
}
|
|
931
|
+
}
|
|
932
|
+
}
|
|
933
|
+
}
|
|
934
|
+
}
|
|
935
|
+
}
|
|
936
|
+
}
|
|
630
937
|
},
|
|
631
938
|
{
|
|
632
939
|
"type": "object",
|
|
@@ -658,7 +965,8 @@ export const MCP_TOOLS = {
|
|
|
658
965
|
"geoLocation": {
|
|
659
966
|
"type": "string",
|
|
660
967
|
"description": "Geographic location (e.g. ISO country code or {{DYNAMIC_GEO}} to use user's geo location) the verification should appear to originate from.",
|
|
661
|
-
"maxLength": 15
|
|
968
|
+
"maxLength": 15,
|
|
969
|
+
"default": "{{DYNAMIC_GEO}}"
|
|
662
970
|
},
|
|
663
971
|
"clientOptions": {
|
|
664
972
|
"type": "object",
|
|
@@ -673,7 +981,7 @@ export const MCP_TOOLS = {
|
|
|
673
981
|
"useProxy": {
|
|
674
982
|
"type": "boolean",
|
|
675
983
|
"description": "When true, network traffic from the portal client and attestation is routed through a proxy.",
|
|
676
|
-
"default":
|
|
984
|
+
"default": true
|
|
677
985
|
},
|
|
678
986
|
"userAgent": {
|
|
679
987
|
"type": "string",
|
|
@@ -743,14 +1051,10 @@ export const MCP_TOOLS = {
|
|
|
743
1051
|
}
|
|
744
1052
|
}
|
|
745
1053
|
},
|
|
746
|
-
"
|
|
1054
|
+
"requiredContext": {
|
|
747
1055
|
"type": "object",
|
|
748
|
-
"description": "
|
|
749
|
-
"
|
|
750
|
-
"additionalProperties": {
|
|
751
|
-
"type": "string",
|
|
752
|
-
"maxLength": 500
|
|
753
|
-
}
|
|
1056
|
+
"description": "Optional JSON Schema describing the `context` a Consumer must supply when creating a verification session for this provider version. Only needed when the recipe expects Consumer-supplied values: those are referenced as `{{context.<key>}}` in recipe requests. Bare `{{parameterName}}` placeholders are provider parameters (extracted / not Consumer-supplied) and need no declaration here. The Builder validates `CreateVerificationSessionRequest.context` against this schema and rejects the request (400) on mismatch. Extra context fields are always allowed regardless of the schema (a root-level `additionalProperties: false` is ignored). Empty/absent accepts any context.",
|
|
1057
|
+
"additionalProperties": true
|
|
754
1058
|
},
|
|
755
1059
|
"notes": {
|
|
756
1060
|
"type": "string",
|
|
@@ -768,6 +1072,59 @@ export const MCP_TOOLS = {
|
|
|
768
1072
|
"additionalProperties": false
|
|
769
1073
|
}),
|
|
770
1074
|
},
|
|
1075
|
+
"CreateVerificationSession": {
|
|
1076
|
+
description: "Create a verification session\n\nCreates a verification session for an end-user to complete.\nAuthenticated by the consumer's `OrgToken`; the session is scoped to\nthe resolved organization. The request carries no callback URLs —\nresults are delivered to the org's pre-registered callback\nsubscriptions.\n\n curl -X POST $BASE/verifications/sessions \\\n -H \"Authorization: Bearer $ORG_TOKEN\" \\\n -H 'Content-Type: application/json' \\\n -d '{\"providerId\":\"…\",\"context\":{},\n \"verificationClientUrl\":\"'$BASE'/v/{sessionId}\"}'\n\nFails with `409 Conflict` if the organization has no callback\nsubscription (there would be nowhere to deliver the result).\n",
|
|
1077
|
+
inputSchema: toZod({
|
|
1078
|
+
"type": "object",
|
|
1079
|
+
"properties": {
|
|
1080
|
+
"params": {
|
|
1081
|
+
"type": "object",
|
|
1082
|
+
"properties": {}
|
|
1083
|
+
},
|
|
1084
|
+
"query": {
|
|
1085
|
+
"type": "object",
|
|
1086
|
+
"properties": {}
|
|
1087
|
+
},
|
|
1088
|
+
"body": {
|
|
1089
|
+
"type": "object",
|
|
1090
|
+
"additionalProperties": false,
|
|
1091
|
+
"description": "Body for `POST /verifications/sessions`. Authenticated by the consumer's `OrgToken`. Carries no callback URLs — they come from the org's callback subscriptions.",
|
|
1092
|
+
"required": [
|
|
1093
|
+
"providerId",
|
|
1094
|
+
"context",
|
|
1095
|
+
"verificationClientUrl"
|
|
1096
|
+
],
|
|
1097
|
+
"properties": {
|
|
1098
|
+
"providerId": {
|
|
1099
|
+
"type": "string",
|
|
1100
|
+
"format": "uuid"
|
|
1101
|
+
},
|
|
1102
|
+
"version": {
|
|
1103
|
+
"type": "string",
|
|
1104
|
+
"description": "Semver constraint; empty resolves to the latest trunk version.",
|
|
1105
|
+
"maxLength": 64
|
|
1106
|
+
},
|
|
1107
|
+
"context": {
|
|
1108
|
+
"type": "object",
|
|
1109
|
+
"additionalProperties": true,
|
|
1110
|
+
"description": "Consumer context. Validated against the resolved provider version's `requiredContext` JSON Schema (a 400 is returned on mismatch); extra fields are always allowed. Recipe requests reference these values as `{{context.<key>}}`. Echoed back (plus `reclaimSessionId`) in the result."
|
|
1111
|
+
},
|
|
1112
|
+
"verificationClientUrl": {
|
|
1113
|
+
"type": "string",
|
|
1114
|
+
"description": "Must contain a `{sessionId}` placeholder.",
|
|
1115
|
+
"maxLength": 2000
|
|
1116
|
+
}
|
|
1117
|
+
}
|
|
1118
|
+
}
|
|
1119
|
+
},
|
|
1120
|
+
"required": [
|
|
1121
|
+
"params",
|
|
1122
|
+
"query",
|
|
1123
|
+
"body"
|
|
1124
|
+
],
|
|
1125
|
+
"additionalProperties": false
|
|
1126
|
+
}),
|
|
1127
|
+
},
|
|
771
1128
|
"DecideProviderVersionReview": {
|
|
772
1129
|
description: "Record a decision on a verification version review\n\nAdmin only (Reclaim staff). Approves or rejects a verification version currently on the `in_review` branch. `APPROVED` clears the branch tag and promotes the version to the live channel; `REJECTED` moves it to the `rejected` branch where the author can address feedback and resubmit. A rejected version stays rejected — the author either fixes and resubmits, or abandons it.\nUntil RBAC is designed, \"admin\" is detected via the user's email domain (`@reclaimprotocol.org`). Non-admin callers receive a 403.",
|
|
773
1130
|
inputSchema: toZod({
|
|
@@ -827,6 +1184,112 @@ export const MCP_TOOLS = {
|
|
|
827
1184
|
"additionalProperties": false
|
|
828
1185
|
}),
|
|
829
1186
|
},
|
|
1187
|
+
"DeleteCallbackSubscription": {
|
|
1188
|
+
description: "Delete a callback subscription\n\nRemoves a callback subscription. Authenticated by the org's `OrgToken`; the subscription must belong to that organization.",
|
|
1189
|
+
inputSchema: toZod({
|
|
1190
|
+
"type": "object",
|
|
1191
|
+
"properties": {
|
|
1192
|
+
"params": {
|
|
1193
|
+
"type": "object",
|
|
1194
|
+
"properties": {
|
|
1195
|
+
"subscriptionId": {
|
|
1196
|
+
"type": "string",
|
|
1197
|
+
"format": "uuid",
|
|
1198
|
+
"description": "Stable id for a callback subscription."
|
|
1199
|
+
}
|
|
1200
|
+
},
|
|
1201
|
+
"required": [
|
|
1202
|
+
"subscriptionId"
|
|
1203
|
+
],
|
|
1204
|
+
"additionalProperties": false
|
|
1205
|
+
},
|
|
1206
|
+
"query": {
|
|
1207
|
+
"type": "object",
|
|
1208
|
+
"properties": {}
|
|
1209
|
+
},
|
|
1210
|
+
"body": {
|
|
1211
|
+
"type": "object"
|
|
1212
|
+
}
|
|
1213
|
+
},
|
|
1214
|
+
"required": [
|
|
1215
|
+
"params",
|
|
1216
|
+
"query"
|
|
1217
|
+
],
|
|
1218
|
+
"additionalProperties": false
|
|
1219
|
+
}),
|
|
1220
|
+
},
|
|
1221
|
+
"DeleteOrgCallbackSubscription": {
|
|
1222
|
+
description: "Delete an organization's callback subscription\n\nRemoves a callback subscription. Caller must be an active member of the owning org.",
|
|
1223
|
+
inputSchema: toZod({
|
|
1224
|
+
"type": "object",
|
|
1225
|
+
"properties": {
|
|
1226
|
+
"params": {
|
|
1227
|
+
"type": "object",
|
|
1228
|
+
"properties": {
|
|
1229
|
+
"orgId": {
|
|
1230
|
+
"type": "string",
|
|
1231
|
+
"format": "uuid"
|
|
1232
|
+
},
|
|
1233
|
+
"subscriptionId": {
|
|
1234
|
+
"type": "string",
|
|
1235
|
+
"format": "uuid",
|
|
1236
|
+
"description": "Stable id for a callback subscription."
|
|
1237
|
+
}
|
|
1238
|
+
},
|
|
1239
|
+
"required": [
|
|
1240
|
+
"orgId",
|
|
1241
|
+
"subscriptionId"
|
|
1242
|
+
],
|
|
1243
|
+
"additionalProperties": false
|
|
1244
|
+
},
|
|
1245
|
+
"query": {
|
|
1246
|
+
"type": "object",
|
|
1247
|
+
"properties": {}
|
|
1248
|
+
},
|
|
1249
|
+
"body": {
|
|
1250
|
+
"type": "object"
|
|
1251
|
+
}
|
|
1252
|
+
},
|
|
1253
|
+
"required": [
|
|
1254
|
+
"params",
|
|
1255
|
+
"query"
|
|
1256
|
+
],
|
|
1257
|
+
"additionalProperties": false
|
|
1258
|
+
}),
|
|
1259
|
+
},
|
|
1260
|
+
"DeleteOrgCredential": {
|
|
1261
|
+
description: "Clear the organization's encryption credential\n\nRemoves the organization's encryption credential. After this, terminal results are delivered as plaintext until a new credential is set. Authenticated by the org's `OrgToken` or a human `BearerAuth` session for an active member of the org.",
|
|
1262
|
+
inputSchema: toZod({
|
|
1263
|
+
"type": "object",
|
|
1264
|
+
"properties": {
|
|
1265
|
+
"params": {
|
|
1266
|
+
"type": "object",
|
|
1267
|
+
"properties": {
|
|
1268
|
+
"orgId": {
|
|
1269
|
+
"type": "string",
|
|
1270
|
+
"format": "uuid"
|
|
1271
|
+
}
|
|
1272
|
+
},
|
|
1273
|
+
"required": [
|
|
1274
|
+
"orgId"
|
|
1275
|
+
],
|
|
1276
|
+
"additionalProperties": false
|
|
1277
|
+
},
|
|
1278
|
+
"query": {
|
|
1279
|
+
"type": "object",
|
|
1280
|
+
"properties": {}
|
|
1281
|
+
},
|
|
1282
|
+
"body": {
|
|
1283
|
+
"type": "object"
|
|
1284
|
+
}
|
|
1285
|
+
},
|
|
1286
|
+
"required": [
|
|
1287
|
+
"params",
|
|
1288
|
+
"query"
|
|
1289
|
+
],
|
|
1290
|
+
"additionalProperties": false
|
|
1291
|
+
}),
|
|
1292
|
+
},
|
|
830
1293
|
"DeleteProvider": {
|
|
831
1294
|
description: "Delete a verification\n\nOwner of the verification's organization only. Soft-archives the verification (sets `status` to `ARCHIVED`) so historical references remain resolvable. Supports optimistic concurrency via `If-Match`.",
|
|
832
1295
|
inputSchema: toZod({
|
|
@@ -955,22 +1418,45 @@ export const MCP_TOOLS = {
|
|
|
955
1418
|
"additionalProperties": false
|
|
956
1419
|
}),
|
|
957
1420
|
},
|
|
958
|
-
"
|
|
959
|
-
description: "Get
|
|
1421
|
+
"GetMe": {
|
|
1422
|
+
description: "Get the authenticated user",
|
|
1423
|
+
inputSchema: toZod({
|
|
1424
|
+
"type": "object",
|
|
1425
|
+
"properties": {
|
|
1426
|
+
"params": {
|
|
1427
|
+
"type": "object",
|
|
1428
|
+
"properties": {}
|
|
1429
|
+
},
|
|
1430
|
+
"query": {
|
|
1431
|
+
"type": "object",
|
|
1432
|
+
"properties": {}
|
|
1433
|
+
},
|
|
1434
|
+
"body": {
|
|
1435
|
+
"type": "object"
|
|
1436
|
+
}
|
|
1437
|
+
},
|
|
1438
|
+
"required": [
|
|
1439
|
+
"params",
|
|
1440
|
+
"query"
|
|
1441
|
+
],
|
|
1442
|
+
"additionalProperties": false
|
|
1443
|
+
}),
|
|
1444
|
+
},
|
|
1445
|
+
"GetOrg": {
|
|
1446
|
+
description: "Get an organization",
|
|
960
1447
|
inputSchema: toZod({
|
|
961
1448
|
"type": "object",
|
|
962
1449
|
"properties": {
|
|
963
1450
|
"params": {
|
|
964
1451
|
"type": "object",
|
|
965
1452
|
"properties": {
|
|
966
|
-
"
|
|
1453
|
+
"orgId": {
|
|
967
1454
|
"type": "string",
|
|
968
|
-
"format": "uuid"
|
|
969
|
-
"description": "Stable id for a `Credential` row."
|
|
1455
|
+
"format": "uuid"
|
|
970
1456
|
}
|
|
971
1457
|
},
|
|
972
1458
|
"required": [
|
|
973
|
-
"
|
|
1459
|
+
"orgId"
|
|
974
1460
|
],
|
|
975
1461
|
"additionalProperties": false
|
|
976
1462
|
},
|
|
@@ -989,24 +1475,21 @@ export const MCP_TOOLS = {
|
|
|
989
1475
|
"additionalProperties": false
|
|
990
1476
|
}),
|
|
991
1477
|
},
|
|
992
|
-
"
|
|
993
|
-
description: "
|
|
1478
|
+
"GetOrgBilling": {
|
|
1479
|
+
description: "Get the billing record for an organization\n\nOwner only. Returns `404` when no billing has been set; presence of the row is what promotes the org's credentials out of sandbox mode (see `Credential.mode`).",
|
|
994
1480
|
inputSchema: toZod({
|
|
995
1481
|
"type": "object",
|
|
996
1482
|
"properties": {
|
|
997
1483
|
"params": {
|
|
998
1484
|
"type": "object",
|
|
999
1485
|
"properties": {
|
|
1000
|
-
"
|
|
1486
|
+
"orgId": {
|
|
1001
1487
|
"type": "string",
|
|
1002
|
-
"
|
|
1003
|
-
"pattern": "^0x[0-9a-f]{40}$",
|
|
1004
|
-
"minLength": 42,
|
|
1005
|
-
"maxLength": 42
|
|
1488
|
+
"format": "uuid"
|
|
1006
1489
|
}
|
|
1007
1490
|
},
|
|
1008
1491
|
"required": [
|
|
1009
|
-
"
|
|
1492
|
+
"orgId"
|
|
1010
1493
|
],
|
|
1011
1494
|
"additionalProperties": false
|
|
1012
1495
|
},
|
|
@@ -1025,15 +1508,162 @@ export const MCP_TOOLS = {
|
|
|
1025
1508
|
"additionalProperties": false
|
|
1026
1509
|
}),
|
|
1027
1510
|
},
|
|
1028
|
-
"
|
|
1029
|
-
description: "Get the
|
|
1511
|
+
"GetOrgCredential": {
|
|
1512
|
+
description: "Get the organization's encryption credential\n\nReturns the organization's single X25519 encryption credential — the public JWK the Builder uses to JWE-encrypt delivered results — or `404` when none is set (delivery is plaintext in that case). Authenticated by the org's `OrgToken` or a human `BearerAuth` session for an active member of the org.",
|
|
1513
|
+
inputSchema: toZod({
|
|
1514
|
+
"type": "object",
|
|
1515
|
+
"properties": {
|
|
1516
|
+
"params": {
|
|
1517
|
+
"type": "object",
|
|
1518
|
+
"properties": {
|
|
1519
|
+
"orgId": {
|
|
1520
|
+
"type": "string",
|
|
1521
|
+
"format": "uuid"
|
|
1522
|
+
}
|
|
1523
|
+
},
|
|
1524
|
+
"required": [
|
|
1525
|
+
"orgId"
|
|
1526
|
+
],
|
|
1527
|
+
"additionalProperties": false
|
|
1528
|
+
},
|
|
1529
|
+
"query": {
|
|
1530
|
+
"type": "object",
|
|
1531
|
+
"properties": {}
|
|
1532
|
+
},
|
|
1533
|
+
"body": {
|
|
1534
|
+
"type": "object"
|
|
1535
|
+
}
|
|
1536
|
+
},
|
|
1537
|
+
"required": [
|
|
1538
|
+
"params",
|
|
1539
|
+
"query"
|
|
1540
|
+
],
|
|
1541
|
+
"additionalProperties": false
|
|
1542
|
+
}),
|
|
1543
|
+
},
|
|
1544
|
+
"GetOrgToken": {
|
|
1545
|
+
description: "Get the organization's API token metadata\n\nReturns metadata about the organization's current API token — its last four characters, when it was created, and when it was last used — never the token itself. The caller must be an active **OWNER** of the organization. Returns `404` when no token has been issued.",
|
|
1546
|
+
inputSchema: toZod({
|
|
1547
|
+
"type": "object",
|
|
1548
|
+
"properties": {
|
|
1549
|
+
"params": {
|
|
1550
|
+
"type": "object",
|
|
1551
|
+
"properties": {
|
|
1552
|
+
"orgId": {
|
|
1553
|
+
"type": "string",
|
|
1554
|
+
"format": "uuid"
|
|
1555
|
+
}
|
|
1556
|
+
},
|
|
1557
|
+
"required": [
|
|
1558
|
+
"orgId"
|
|
1559
|
+
],
|
|
1560
|
+
"additionalProperties": false
|
|
1561
|
+
},
|
|
1562
|
+
"query": {
|
|
1563
|
+
"type": "object",
|
|
1564
|
+
"properties": {}
|
|
1565
|
+
},
|
|
1566
|
+
"body": {
|
|
1567
|
+
"type": "object"
|
|
1568
|
+
}
|
|
1569
|
+
},
|
|
1570
|
+
"required": [
|
|
1571
|
+
"params",
|
|
1572
|
+
"query"
|
|
1573
|
+
],
|
|
1574
|
+
"additionalProperties": false
|
|
1575
|
+
}),
|
|
1576
|
+
},
|
|
1577
|
+
"GetProvider": {
|
|
1578
|
+
description: "Get a verification\n\nFetch a single Reclaim verification by id. Returns every field needed\nto integrate it into a flow: domain, the live version (initialUrl + requests),\nand the data points it can prove. Use `providers` first if you only\nhave a query string.\n\nReturns the verification record.\n\n**Canonical URL.** For SEO and stable sharing, the canonical\nHTML URL for a verification is `/providers/{providerId}/{slug}`\n(see `GetProviderBySlug`). HTML callers (`Accept: text/html`)\nthat hit this route — which omits the slug — receive a `301`\nredirect to the slugged URL. JSON callers\n(`Accept: application/json`) receive the body directly without\nredirect; the slug is on the response.\n",
|
|
1030
1579
|
inputSchema: toZod({
|
|
1031
1580
|
"type": "object",
|
|
1032
1581
|
"properties": {
|
|
1033
1582
|
"params": {
|
|
1583
|
+
"type": "object",
|
|
1584
|
+
"properties": {
|
|
1585
|
+
"providerId": {
|
|
1586
|
+
"type": "string",
|
|
1587
|
+
"format": "uuid"
|
|
1588
|
+
}
|
|
1589
|
+
},
|
|
1590
|
+
"required": [
|
|
1591
|
+
"providerId"
|
|
1592
|
+
],
|
|
1593
|
+
"additionalProperties": false
|
|
1594
|
+
},
|
|
1595
|
+
"query": {
|
|
1034
1596
|
"type": "object",
|
|
1035
1597
|
"properties": {}
|
|
1036
1598
|
},
|
|
1599
|
+
"body": {
|
|
1600
|
+
"type": "object"
|
|
1601
|
+
}
|
|
1602
|
+
},
|
|
1603
|
+
"required": [
|
|
1604
|
+
"params",
|
|
1605
|
+
"query"
|
|
1606
|
+
],
|
|
1607
|
+
"additionalProperties": false
|
|
1608
|
+
}),
|
|
1609
|
+
},
|
|
1610
|
+
"GetProviderVersion": {
|
|
1611
|
+
description: "Get a specific verification version",
|
|
1612
|
+
inputSchema: toZod({
|
|
1613
|
+
"type": "object",
|
|
1614
|
+
"properties": {
|
|
1615
|
+
"params": {
|
|
1616
|
+
"type": "object",
|
|
1617
|
+
"properties": {
|
|
1618
|
+
"providerId": {
|
|
1619
|
+
"type": "string",
|
|
1620
|
+
"format": "uuid"
|
|
1621
|
+
},
|
|
1622
|
+
"version": {
|
|
1623
|
+
"type": "string",
|
|
1624
|
+
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+(?:-[a-zA-Z0-9_-]+(?:\\.[0-9]+)?)?$",
|
|
1625
|
+
"maxLength": 32
|
|
1626
|
+
}
|
|
1627
|
+
},
|
|
1628
|
+
"required": [
|
|
1629
|
+
"providerId",
|
|
1630
|
+
"version"
|
|
1631
|
+
],
|
|
1632
|
+
"additionalProperties": false
|
|
1633
|
+
},
|
|
1634
|
+
"query": {
|
|
1635
|
+
"type": "object",
|
|
1636
|
+
"properties": {}
|
|
1637
|
+
},
|
|
1638
|
+
"body": {
|
|
1639
|
+
"type": "object"
|
|
1640
|
+
}
|
|
1641
|
+
},
|
|
1642
|
+
"required": [
|
|
1643
|
+
"params",
|
|
1644
|
+
"query"
|
|
1645
|
+
],
|
|
1646
|
+
"additionalProperties": false
|
|
1647
|
+
}),
|
|
1648
|
+
},
|
|
1649
|
+
"GetUser": {
|
|
1650
|
+
description: "Get a user's profile\n\nReturns a user record. Visible to: the user themselves, or any member of an organization the subject also belongs to.",
|
|
1651
|
+
inputSchema: toZod({
|
|
1652
|
+
"type": "object",
|
|
1653
|
+
"properties": {
|
|
1654
|
+
"params": {
|
|
1655
|
+
"type": "object",
|
|
1656
|
+
"properties": {
|
|
1657
|
+
"userId": {
|
|
1658
|
+
"type": "string",
|
|
1659
|
+
"format": "uuid"
|
|
1660
|
+
}
|
|
1661
|
+
},
|
|
1662
|
+
"required": [
|
|
1663
|
+
"userId"
|
|
1664
|
+
],
|
|
1665
|
+
"additionalProperties": false
|
|
1666
|
+
},
|
|
1037
1667
|
"query": {
|
|
1038
1668
|
"type": "object",
|
|
1039
1669
|
"properties": {}
|
|
@@ -1049,21 +1679,22 @@ export const MCP_TOOLS = {
|
|
|
1049
1679
|
"additionalProperties": false
|
|
1050
1680
|
}),
|
|
1051
1681
|
},
|
|
1052
|
-
"
|
|
1053
|
-
description: "Get
|
|
1682
|
+
"GetVerificationSession": {
|
|
1683
|
+
description: "Get a verification session\n\nReturns the session. Authenticated by the consumer's `OrgToken` (or the\nVC service token); the resolved org must match the session's.\n\nReading `status`:\n- `pending` — created, not yet finished; the end-user can still\n complete it until `expiresAt`.\n- `success` / `rejected` / `error` — terminal outcomes (the matching\n `verification_*` event was recorded). Only after a terminal status is\n a result delivered to callbacks.\n- `expired` — `expiresAt` passed before a terminal event. A `pending`\n session whose `expiresAt` is in the past has effectively expired and\n flips to `expired` on the next sweep; the end-user can no longer\n complete it — issue a fresh session/link.\n\n`callbackDeliveryStatus` aggregates the session's callback deliveries\nand is only meaningful once the session is terminal. To investigate a\nstuck or failed session, pair this with `list_verification_events` (the\nper-stage lifecycle log) and `list_verification_deliveries` (callback\nhealth).\n",
|
|
1054
1684
|
inputSchema: toZod({
|
|
1055
1685
|
"type": "object",
|
|
1056
1686
|
"properties": {
|
|
1057
1687
|
"params": {
|
|
1058
1688
|
"type": "object",
|
|
1059
1689
|
"properties": {
|
|
1060
|
-
"
|
|
1690
|
+
"sessionId": {
|
|
1061
1691
|
"type": "string",
|
|
1062
|
-
"format": "uuid"
|
|
1692
|
+
"format": "uuid",
|
|
1693
|
+
"description": "Verification session id (UUID v7 when supported). Also echoed in the result payload as `reclaimSessionId`."
|
|
1063
1694
|
}
|
|
1064
1695
|
},
|
|
1065
1696
|
"required": [
|
|
1066
|
-
"
|
|
1697
|
+
"sessionId"
|
|
1067
1698
|
],
|
|
1068
1699
|
"additionalProperties": false
|
|
1069
1700
|
},
|
|
@@ -1082,8 +1713,8 @@ export const MCP_TOOLS = {
|
|
|
1082
1713
|
"additionalProperties": false
|
|
1083
1714
|
}),
|
|
1084
1715
|
},
|
|
1085
|
-
"
|
|
1086
|
-
description: "
|
|
1716
|
+
"IssueOrgToken": {
|
|
1717
|
+
description: "Issue (or regenerate) the organization's API token\n\nIssues a fresh per-organization API token (`rorg_…`). The caller must be an active **OWNER** of the organization. A successful call invalidates any previously issued token for the org. The plaintext token is returned **only once** in this response (the server stores only its HMAC); treat it like a password and store it securely.",
|
|
1087
1718
|
inputSchema: toZod({
|
|
1088
1719
|
"type": "object",
|
|
1089
1720
|
"properties": {
|
|
@@ -1115,23 +1746,14 @@ export const MCP_TOOLS = {
|
|
|
1115
1746
|
"additionalProperties": false
|
|
1116
1747
|
}),
|
|
1117
1748
|
},
|
|
1118
|
-
"
|
|
1119
|
-
description: "
|
|
1749
|
+
"ListCallbackDlq": {
|
|
1750
|
+
description: "List dead-lettered callbacks (admin-only)\n\nAdmin only. Lists callback deliveries whose retries were exhausted and moved to the DLQ for manual recovery.",
|
|
1120
1751
|
inputSchema: toZod({
|
|
1121
1752
|
"type": "object",
|
|
1122
1753
|
"properties": {
|
|
1123
1754
|
"params": {
|
|
1124
1755
|
"type": "object",
|
|
1125
|
-
"properties": {
|
|
1126
|
-
"providerId": {
|
|
1127
|
-
"type": "string",
|
|
1128
|
-
"format": "uuid"
|
|
1129
|
-
}
|
|
1130
|
-
},
|
|
1131
|
-
"required": [
|
|
1132
|
-
"providerId"
|
|
1133
|
-
],
|
|
1134
|
-
"additionalProperties": false
|
|
1756
|
+
"properties": {}
|
|
1135
1757
|
},
|
|
1136
1758
|
"query": {
|
|
1137
1759
|
"type": "object",
|
|
@@ -1148,29 +1770,14 @@ export const MCP_TOOLS = {
|
|
|
1148
1770
|
"additionalProperties": false
|
|
1149
1771
|
}),
|
|
1150
1772
|
},
|
|
1151
|
-
"
|
|
1152
|
-
description: "
|
|
1773
|
+
"ListCallbackSubscriptions": {
|
|
1774
|
+
description: "List callback subscriptions for the organization\n\nReturns every callback subscription owned by the organization the presented `OrgToken` resolves to.",
|
|
1153
1775
|
inputSchema: toZod({
|
|
1154
1776
|
"type": "object",
|
|
1155
1777
|
"properties": {
|
|
1156
1778
|
"params": {
|
|
1157
1779
|
"type": "object",
|
|
1158
|
-
"properties": {
|
|
1159
|
-
"providerId": {
|
|
1160
|
-
"type": "string",
|
|
1161
|
-
"format": "uuid"
|
|
1162
|
-
},
|
|
1163
|
-
"version": {
|
|
1164
|
-
"type": "string",
|
|
1165
|
-
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+(?:-[a-zA-Z0-9_-]+(?:\\.[0-9]+)?)?$",
|
|
1166
|
-
"maxLength": 32
|
|
1167
|
-
}
|
|
1168
|
-
},
|
|
1169
|
-
"required": [
|
|
1170
|
-
"providerId",
|
|
1171
|
-
"version"
|
|
1172
|
-
],
|
|
1173
|
-
"additionalProperties": false
|
|
1780
|
+
"properties": {}
|
|
1174
1781
|
},
|
|
1175
1782
|
"query": {
|
|
1176
1783
|
"type": "object",
|
|
@@ -1187,21 +1794,21 @@ export const MCP_TOOLS = {
|
|
|
1187
1794
|
"additionalProperties": false
|
|
1188
1795
|
}),
|
|
1189
1796
|
},
|
|
1190
|
-
"
|
|
1191
|
-
description: "
|
|
1797
|
+
"ListOrgCallbackSubscriptions": {
|
|
1798
|
+
description: "List an organization's callback subscriptions\n\nReturns every callback subscription owned by the organization. Caller must be an active member of the org.",
|
|
1192
1799
|
inputSchema: toZod({
|
|
1193
1800
|
"type": "object",
|
|
1194
1801
|
"properties": {
|
|
1195
1802
|
"params": {
|
|
1196
1803
|
"type": "object",
|
|
1197
1804
|
"properties": {
|
|
1198
|
-
"
|
|
1805
|
+
"orgId": {
|
|
1199
1806
|
"type": "string",
|
|
1200
1807
|
"format": "uuid"
|
|
1201
1808
|
}
|
|
1202
1809
|
},
|
|
1203
1810
|
"required": [
|
|
1204
|
-
"
|
|
1811
|
+
"orgId"
|
|
1205
1812
|
],
|
|
1206
1813
|
"additionalProperties": false
|
|
1207
1814
|
},
|
|
@@ -1220,8 +1827,8 @@ export const MCP_TOOLS = {
|
|
|
1220
1827
|
"additionalProperties": false
|
|
1221
1828
|
}),
|
|
1222
1829
|
},
|
|
1223
|
-
"
|
|
1224
|
-
description: "
|
|
1830
|
+
"ListOrgs": {
|
|
1831
|
+
description: "List organizations the caller belongs to",
|
|
1225
1832
|
inputSchema: toZod({
|
|
1226
1833
|
"type": "object",
|
|
1227
1834
|
"properties": {
|
|
@@ -1231,47 +1838,26 @@ export const MCP_TOOLS = {
|
|
|
1231
1838
|
},
|
|
1232
1839
|
"query": {
|
|
1233
1840
|
"type": "object",
|
|
1234
|
-
"properties": {}
|
|
1235
|
-
},
|
|
1236
|
-
"body": {
|
|
1237
|
-
"type": "object",
|
|
1238
|
-
"additionalProperties": false,
|
|
1239
|
-
"description": "Body for `POST /credentials`. Only the lowercase ETH `address` is sent — the private key MUST NOT leave the client, and the public key is not sent (the client derives the address from the key: keccak-256 of the uncompressed pubkey minus its `0x04` prefix, last 20 bytes, lowercase hex).",
|
|
1240
|
-
"required": [
|
|
1241
|
-
"address",
|
|
1242
|
-
"orgId"
|
|
1243
|
-
],
|
|
1244
1841
|
"properties": {
|
|
1245
|
-
"
|
|
1246
|
-
"type": "string",
|
|
1247
|
-
"description": "Lowercase Ethereum address (no EIP-55 mixed-case checksum). The client derives this from the public key via keccak-256 of the uncompressed pubkey minus the `0x04` prefix, taking the last 20 bytes. The server re-validates the format on insert but does not re-derive from the public key — that match is the client's responsibility.",
|
|
1248
|
-
"pattern": "^0x[0-9a-f]{40}$",
|
|
1249
|
-
"minLength": 42,
|
|
1250
|
-
"maxLength": 42
|
|
1251
|
-
},
|
|
1252
|
-
"orgId": {
|
|
1253
|
-
"type": "string",
|
|
1254
|
-
"format": "uuid"
|
|
1255
|
-
},
|
|
1256
|
-
"label": {
|
|
1842
|
+
"cursor": {
|
|
1257
1843
|
"type": "string",
|
|
1258
|
-
"
|
|
1259
|
-
"minLength": 1,
|
|
1260
|
-
"maxLength": 100
|
|
1844
|
+
"maxLength": 500
|
|
1261
1845
|
}
|
|
1262
1846
|
}
|
|
1847
|
+
},
|
|
1848
|
+
"body": {
|
|
1849
|
+
"type": "object"
|
|
1263
1850
|
}
|
|
1264
1851
|
},
|
|
1265
1852
|
"required": [
|
|
1266
1853
|
"params",
|
|
1267
|
-
"query"
|
|
1268
|
-
"body"
|
|
1854
|
+
"query"
|
|
1269
1855
|
],
|
|
1270
1856
|
"additionalProperties": false
|
|
1271
1857
|
}),
|
|
1272
1858
|
},
|
|
1273
|
-
"
|
|
1274
|
-
description: "List
|
|
1859
|
+
"ListOrgVerificationSessions": {
|
|
1860
|
+
description: "List an organization's verification sessions\n\nReturns verification sessions created under the organization, newest first. Optionally filter by `providerId`, `status`, `resolvedVersion`, `claimantClientId`, and a `createdAfter`/`createdBefore` time range. Caller must be an active member of the org. Opaque cursor pagination.\n\nNote: `status` filters on the stored column. A session that has passed `expiresAt` but has not yet been swept is reported as `expired` in its body while still stored as `pending`, so `status=expired` may not match such sessions until the sweep runs.",
|
|
1275
1861
|
inputSchema: toZod({
|
|
1276
1862
|
"type": "object",
|
|
1277
1863
|
"properties": {
|
|
@@ -1290,7 +1876,43 @@ export const MCP_TOOLS = {
|
|
|
1290
1876
|
},
|
|
1291
1877
|
"query": {
|
|
1292
1878
|
"type": "object",
|
|
1293
|
-
"properties": {
|
|
1879
|
+
"properties": {
|
|
1880
|
+
"providerId": {
|
|
1881
|
+
"type": "string",
|
|
1882
|
+
"format": "uuid"
|
|
1883
|
+
},
|
|
1884
|
+
"status": {
|
|
1885
|
+
"type": "string",
|
|
1886
|
+
"description": "Status of a verification session, derived from its events. New values\nmay be added over time; clients MUST tolerate unknown values in\nresponses.\n\n- `pending`: Created, not yet finished; completable until `expiresAt`.\n\n- `success`: Terminal — `verification_success` recorded.\n\n- `rejected`: Terminal — `verification_rejected` recorded.\n\n- `error`: Terminal — `verification_error` recorded.\n\n- `expired`: `expiresAt` passed before a terminal event; the end-user\n can no longer complete it.",
|
|
1887
|
+
"enum": [
|
|
1888
|
+
"pending",
|
|
1889
|
+
"success",
|
|
1890
|
+
"rejected",
|
|
1891
|
+
"error",
|
|
1892
|
+
"expired"
|
|
1893
|
+
]
|
|
1894
|
+
},
|
|
1895
|
+
"resolvedVersion": {
|
|
1896
|
+
"type": "string",
|
|
1897
|
+
"maxLength": 64
|
|
1898
|
+
},
|
|
1899
|
+
"claimantClientId": {
|
|
1900
|
+
"type": "string",
|
|
1901
|
+
"format": "uuid"
|
|
1902
|
+
},
|
|
1903
|
+
"createdAfter": {
|
|
1904
|
+
"type": "string",
|
|
1905
|
+
"format": "date-time"
|
|
1906
|
+
},
|
|
1907
|
+
"createdBefore": {
|
|
1908
|
+
"type": "string",
|
|
1909
|
+
"format": "date-time"
|
|
1910
|
+
},
|
|
1911
|
+
"cursor": {
|
|
1912
|
+
"type": "string",
|
|
1913
|
+
"maxLength": 500
|
|
1914
|
+
}
|
|
1915
|
+
}
|
|
1294
1916
|
},
|
|
1295
1917
|
"body": {
|
|
1296
1918
|
"type": "object"
|
|
@@ -1303,14 +1925,23 @@ export const MCP_TOOLS = {
|
|
|
1303
1925
|
"additionalProperties": false
|
|
1304
1926
|
}),
|
|
1305
1927
|
},
|
|
1306
|
-
"
|
|
1307
|
-
description: "List
|
|
1928
|
+
"ListProviderVersions": {
|
|
1929
|
+
description: "List a verification's versions\n\nLists versions visible to the caller. Non-public branches (`ai`, `draft`, `in_review`, `rejected`) are only visible to members of the verification's owning organization.",
|
|
1308
1930
|
inputSchema: toZod({
|
|
1309
1931
|
"type": "object",
|
|
1310
1932
|
"properties": {
|
|
1311
1933
|
"params": {
|
|
1312
1934
|
"type": "object",
|
|
1313
|
-
"properties": {
|
|
1935
|
+
"properties": {
|
|
1936
|
+
"providerId": {
|
|
1937
|
+
"type": "string",
|
|
1938
|
+
"format": "uuid"
|
|
1939
|
+
}
|
|
1940
|
+
},
|
|
1941
|
+
"required": [
|
|
1942
|
+
"providerId"
|
|
1943
|
+
],
|
|
1944
|
+
"additionalProperties": false
|
|
1314
1945
|
},
|
|
1315
1946
|
"query": {
|
|
1316
1947
|
"type": "object",
|
|
@@ -1332,32 +1963,62 @@ export const MCP_TOOLS = {
|
|
|
1332
1963
|
"additionalProperties": false
|
|
1333
1964
|
}),
|
|
1334
1965
|
},
|
|
1335
|
-
"
|
|
1336
|
-
description: "
|
|
1966
|
+
"ListVerificationDeliveries": {
|
|
1967
|
+
description: "Get the callback delivery status for a session\n\nDiagnostic view of the session's callback deliveries: one entry per\n(subscription, terminal event) with its delivery state, attempt\ncount, last error, and whether it was dead-lettered. Lets a consumer\n(or the agent) answer \"did my callback arrive, and if not, why?\"\nwithout org-dashboard access. Only meaningful after the session\nreaches a terminal status (no deliveries exist before then). Auth\nmirrors the events GET: the Verification Client service token, or the\nconsumer's `OrgToken` (the resolved org must match the session).\n\nReading `deliveryStatus` per entry:\n- `delivered` — the callback POST succeeded; nothing to do.\n- `pending` — queued, not yet attempted (or between retries).\n- `attempt_failed` — a delivery attempt failed but retries remain;\n `lastError` holds the reason and `attempts` the count so far.\n- `failed` — all retries exhausted. When `deadLettered` is also true\n the delivery sits in the DLQ.\n\nTo recover a failed/dead-lettered delivery: confirm the `callbackUrl`\nis reachable and answers 2xx, then call `retry_verification_callback`\nto re-enqueue it (an org admin can also retry from the Callback DLQ).\n",
|
|
1337
1968
|
inputSchema: toZod({
|
|
1338
1969
|
"type": "object",
|
|
1339
1970
|
"properties": {
|
|
1340
1971
|
"params": {
|
|
1341
1972
|
"type": "object",
|
|
1342
1973
|
"properties": {
|
|
1343
|
-
"
|
|
1974
|
+
"sessionId": {
|
|
1344
1975
|
"type": "string",
|
|
1345
|
-
"format": "uuid"
|
|
1976
|
+
"format": "uuid",
|
|
1977
|
+
"description": "Verification session id (UUID v7 when supported). Also echoed in the result payload as `reclaimSessionId`."
|
|
1346
1978
|
}
|
|
1347
1979
|
},
|
|
1348
1980
|
"required": [
|
|
1349
|
-
"
|
|
1981
|
+
"sessionId"
|
|
1350
1982
|
],
|
|
1351
1983
|
"additionalProperties": false
|
|
1352
1984
|
},
|
|
1353
1985
|
"query": {
|
|
1986
|
+
"type": "object",
|
|
1987
|
+
"properties": {}
|
|
1988
|
+
},
|
|
1989
|
+
"body": {
|
|
1990
|
+
"type": "object"
|
|
1991
|
+
}
|
|
1992
|
+
},
|
|
1993
|
+
"required": [
|
|
1994
|
+
"params",
|
|
1995
|
+
"query"
|
|
1996
|
+
],
|
|
1997
|
+
"additionalProperties": false
|
|
1998
|
+
}),
|
|
1999
|
+
},
|
|
2000
|
+
"ListVerificationEvents": {
|
|
2001
|
+
description: "Get the event log for a session\n\nReturns the append-only event log. Readable by the Verification Client\n(`X-VC-Token`) or the session creator (authenticated by the consumer's\n`OrgToken`; the resolved org must match the session).\n\nThis log is the primary tool for diagnosing a stuck or failed session.\nA healthy run proceeds through this lifecycle (in order):\n\n`session_pending` → `verification_client_opened` →\n`verification_client_ready` → `request_matched` →\n`request_claim_created` → `request_claim_completed` → terminal\n(`verification_success` | `verification_rejected` | `verification_error`),\nor `session_expired` if `expiresAt` passes first.\n\nRead the gaps to locate where the flow stalled:\n- no `verification_client_opened` → the end-user never opened the link.\n- opened but no `request_matched` → the user opened the page but didn't\n complete the login/journey on the provider site, so the target\n request was never captured.\n- `request_matched` but no terminal event → the proof run is still in\n progress (or stalled mid-claim).\n\nFailure detail lives in `eventData` on `request_claim_failed`,\n`request_claim_rejected`, `verification_error`, and\n`verification_rejected` — inspect it for the reason. Request-level\nevents also carry a `request_id` in `eventData`. Pair with\n`get_verification_session` (status/expiry) and\n`list_verification_deliveries` (callback health) for the full picture.\n",
|
|
2002
|
+
inputSchema: toZod({
|
|
2003
|
+
"type": "object",
|
|
2004
|
+
"properties": {
|
|
2005
|
+
"params": {
|
|
1354
2006
|
"type": "object",
|
|
1355
2007
|
"properties": {
|
|
1356
|
-
"
|
|
2008
|
+
"sessionId": {
|
|
1357
2009
|
"type": "string",
|
|
1358
|
-
"
|
|
2010
|
+
"format": "uuid",
|
|
2011
|
+
"description": "Verification session id (UUID v7 when supported). Also echoed in the result payload as `reclaimSessionId`."
|
|
1359
2012
|
}
|
|
1360
|
-
}
|
|
2013
|
+
},
|
|
2014
|
+
"required": [
|
|
2015
|
+
"sessionId"
|
|
2016
|
+
],
|
|
2017
|
+
"additionalProperties": false
|
|
2018
|
+
},
|
|
2019
|
+
"query": {
|
|
2020
|
+
"type": "object",
|
|
2021
|
+
"properties": {}
|
|
1361
2022
|
},
|
|
1362
2023
|
"body": {
|
|
1363
2024
|
"type": "object"
|
|
@@ -1550,22 +2211,22 @@ export const MCP_TOOLS = {
|
|
|
1550
2211
|
"additionalProperties": false
|
|
1551
2212
|
}),
|
|
1552
2213
|
},
|
|
1553
|
-
"
|
|
1554
|
-
description: "
|
|
2214
|
+
"RetryVerificationCallback": {
|
|
2215
|
+
description: "Re-enqueue callback delivery for a session\n\nRe-enqueues delivery of a session's stored result to its callback subscriptions. Use this after `list_verification_deliveries` shows a `failed` or dead-lettered delivery, once the consumer's callback endpoint is reachable again and answers 2xx — it re-attempts every not-yet-delivered callback for the session. Usable by the session creator (authenticated by the consumer's `OrgToken`) to recover from a transient consumer-side outage.",
|
|
1555
2216
|
inputSchema: toZod({
|
|
1556
2217
|
"type": "object",
|
|
1557
2218
|
"properties": {
|
|
1558
2219
|
"params": {
|
|
1559
2220
|
"type": "object",
|
|
1560
2221
|
"properties": {
|
|
1561
|
-
"
|
|
2222
|
+
"sessionId": {
|
|
1562
2223
|
"type": "string",
|
|
1563
2224
|
"format": "uuid",
|
|
1564
|
-
"description": "
|
|
2225
|
+
"description": "Verification session id (UUID v7 when supported). Also echoed in the result payload as `reclaimSessionId`."
|
|
1565
2226
|
}
|
|
1566
2227
|
},
|
|
1567
2228
|
"required": [
|
|
1568
|
-
"
|
|
2229
|
+
"sessionId"
|
|
1569
2230
|
],
|
|
1570
2231
|
"additionalProperties": false
|
|
1571
2232
|
},
|
|
@@ -1584,6 +2245,82 @@ export const MCP_TOOLS = {
|
|
|
1584
2245
|
"additionalProperties": false
|
|
1585
2246
|
}),
|
|
1586
2247
|
},
|
|
2248
|
+
"SetOrgCredential": {
|
|
2249
|
+
description: "Set (or replace) the organization's encryption credential\n\nUpserts the organization's single X25519 encryption credential. The body carries the org's **encryption public JWK** (`{kty:'OKP', crv:'X25519', x}`); the matching private key never leaves the consumer. Replacing overwrites the single row. Once set, terminal results are delivered as a compact JWE encrypted to this key; clear it to revert to plaintext delivery. Authenticated by the org's `OrgToken` or a human `BearerAuth` session for an active member of the org.",
|
|
2250
|
+
inputSchema: toZod({
|
|
2251
|
+
"type": "object",
|
|
2252
|
+
"properties": {
|
|
2253
|
+
"params": {
|
|
2254
|
+
"type": "object",
|
|
2255
|
+
"properties": {
|
|
2256
|
+
"orgId": {
|
|
2257
|
+
"type": "string",
|
|
2258
|
+
"format": "uuid"
|
|
2259
|
+
}
|
|
2260
|
+
},
|
|
2261
|
+
"required": [
|
|
2262
|
+
"orgId"
|
|
2263
|
+
],
|
|
2264
|
+
"additionalProperties": false
|
|
2265
|
+
},
|
|
2266
|
+
"query": {
|
|
2267
|
+
"type": "object",
|
|
2268
|
+
"properties": {}
|
|
2269
|
+
},
|
|
2270
|
+
"body": {
|
|
2271
|
+
"type": "object",
|
|
2272
|
+
"additionalProperties": false,
|
|
2273
|
+
"description": "Body for `PUT /orgs/{orgId}/credential`.",
|
|
2274
|
+
"required": [
|
|
2275
|
+
"publicKeyJwk"
|
|
2276
|
+
],
|
|
2277
|
+
"properties": {
|
|
2278
|
+
"publicKeyJwk": {
|
|
2279
|
+
"type": "object",
|
|
2280
|
+
"additionalProperties": false,
|
|
2281
|
+
"description": "An X25519 public key in JWK form (RFC 8037 OKP), used to JWE-encrypt delivered verification results. The matching private key never leaves the consumer.",
|
|
2282
|
+
"required": [
|
|
2283
|
+
"kty",
|
|
2284
|
+
"crv",
|
|
2285
|
+
"x"
|
|
2286
|
+
],
|
|
2287
|
+
"properties": {
|
|
2288
|
+
"kty": {
|
|
2289
|
+
"type": "string",
|
|
2290
|
+
"enum": [
|
|
2291
|
+
"OKP"
|
|
2292
|
+
]
|
|
2293
|
+
},
|
|
2294
|
+
"crv": {
|
|
2295
|
+
"type": "string",
|
|
2296
|
+
"enum": [
|
|
2297
|
+
"X25519"
|
|
2298
|
+
]
|
|
2299
|
+
},
|
|
2300
|
+
"x": {
|
|
2301
|
+
"type": "string",
|
|
2302
|
+
"description": "base64url-encoded public key bytes.",
|
|
2303
|
+
"minLength": 1,
|
|
2304
|
+
"maxLength": 128
|
|
2305
|
+
}
|
|
2306
|
+
}
|
|
2307
|
+
},
|
|
2308
|
+
"label": {
|
|
2309
|
+
"type": "string",
|
|
2310
|
+
"minLength": 1,
|
|
2311
|
+
"maxLength": 100
|
|
2312
|
+
}
|
|
2313
|
+
}
|
|
2314
|
+
}
|
|
2315
|
+
},
|
|
2316
|
+
"required": [
|
|
2317
|
+
"params",
|
|
2318
|
+
"query",
|
|
2319
|
+
"body"
|
|
2320
|
+
],
|
|
2321
|
+
"additionalProperties": false
|
|
2322
|
+
}),
|
|
2323
|
+
},
|
|
1587
2324
|
"SubmitProviderVersionForReview": {
|
|
1588
2325
|
description: "Submit a verification version for review\n\nSubmits a verification version (currently on the `draft` or `rejected` branch) for admin review. On success the version's branch transitions to `in_review`. Callable by any authenticated member of the verification's owning org. Meaningful only on `PUBLIC` verifications — on `PRIVATE` verifications new versions go to the live channel directly and never need review.",
|
|
1589
2326
|
inputSchema: toZod({
|
|
@@ -2155,7 +2892,143 @@ export const MCP_TOOLS = {
|
|
|
2155
2892
|
"description": "A template for selecting request",
|
|
2156
2893
|
"allOf": [
|
|
2157
2894
|
{
|
|
2158
|
-
"
|
|
2895
|
+
"type": "object",
|
|
2896
|
+
"additionalProperties": false,
|
|
2897
|
+
"description": "A matcher for one HTTP request in observed traffic, together with the response constraints that must hold for a Reclaim proof over that request to be valid. Used by interceptors, in-page injections, and LLM agents.",
|
|
2898
|
+
"required": [
|
|
2899
|
+
"url",
|
|
2900
|
+
"method"
|
|
2901
|
+
],
|
|
2902
|
+
"properties": {
|
|
2903
|
+
"url": {
|
|
2904
|
+
"type": "string",
|
|
2905
|
+
"description": "The URL or generic path of the HTTP request."
|
|
2906
|
+
},
|
|
2907
|
+
"method": {
|
|
2908
|
+
"type": "string",
|
|
2909
|
+
"description": "The HTTP method used for the request.",
|
|
2910
|
+
"enum": [
|
|
2911
|
+
"GET",
|
|
2912
|
+
"POST",
|
|
2913
|
+
"PUT",
|
|
2914
|
+
"PATCH",
|
|
2915
|
+
"DELETE"
|
|
2916
|
+
]
|
|
2917
|
+
},
|
|
2918
|
+
"requestBodyTemplate": {
|
|
2919
|
+
"type": "string",
|
|
2920
|
+
"description": "Template used to match or capture an outgoing request body. Template can use regex templates as placeholders. For example, to match an outgoing request body that contains a request ID, you can use the following template: `(?<requestId>.*)`.",
|
|
2921
|
+
"maxLength": 100000
|
|
2922
|
+
},
|
|
2923
|
+
"credentials": {
|
|
2924
|
+
"type": "string",
|
|
2925
|
+
"description": "Mirrors the Fetch API `RequestCredentials` value used when issuing the request — controls whether cookies and auth headers are sent.",
|
|
2926
|
+
"enum": [
|
|
2927
|
+
"omit",
|
|
2928
|
+
"same-origin",
|
|
2929
|
+
"include"
|
|
2930
|
+
]
|
|
2931
|
+
},
|
|
2932
|
+
"writeRedactionMode": {
|
|
2933
|
+
"type": "string",
|
|
2934
|
+
"description": "How the matched portion of the response should be redacted before the transcript is handed to the attestor.\n- `zk`: redact using a zero-knowledge proof over the original\n bytes.\n\n- `key-update`: redact by performing a TLS key update so the\n attestor never observes the matched bytes in cleartext.",
|
|
2935
|
+
"enum": [
|
|
2936
|
+
"zk",
|
|
2937
|
+
"key-update"
|
|
2938
|
+
]
|
|
2939
|
+
},
|
|
2940
|
+
"additionalClientOptions": {
|
|
2941
|
+
"type": "object",
|
|
2942
|
+
"additionalProperties": false,
|
|
2943
|
+
"description": "Apply TLS configuration when creating the tunnel to the attestor.",
|
|
2944
|
+
"properties": {
|
|
2945
|
+
"supportedProtocolVersions": {
|
|
2946
|
+
"type": "array",
|
|
2947
|
+
"description": "TLS protocol versions the client is allowed to negotiate.",
|
|
2948
|
+
"minItems": 1,
|
|
2949
|
+
"uniqueItems": true,
|
|
2950
|
+
"items": {
|
|
2951
|
+
"type": "string",
|
|
2952
|
+
"enum": [
|
|
2953
|
+
"TLS1_2",
|
|
2954
|
+
"TLS1_3"
|
|
2955
|
+
]
|
|
2956
|
+
}
|
|
2957
|
+
}
|
|
2958
|
+
}
|
|
2959
|
+
},
|
|
2960
|
+
"matches": {
|
|
2961
|
+
"type": "array",
|
|
2962
|
+
"description": "A list of match conditions for the response.",
|
|
2963
|
+
"minItems": 1,
|
|
2964
|
+
"items": {
|
|
2965
|
+
"type": "object",
|
|
2966
|
+
"additionalProperties": false,
|
|
2967
|
+
"description": "Specifies a rule to match against a string in response to validate proof content.",
|
|
2968
|
+
"required": [
|
|
2969
|
+
"type",
|
|
2970
|
+
"value"
|
|
2971
|
+
],
|
|
2972
|
+
"properties": {
|
|
2973
|
+
"isOptional": {
|
|
2974
|
+
"type": "boolean",
|
|
2975
|
+
"description": "If true, the match condition is optional and won't fail if absent",
|
|
2976
|
+
"default": false
|
|
2977
|
+
},
|
|
2978
|
+
"description": {
|
|
2979
|
+
"type": "string",
|
|
2980
|
+
"description": "The description of the field that is extracted using this match rule",
|
|
2981
|
+
"minLength": 1,
|
|
2982
|
+
"maxLength": 1000
|
|
2983
|
+
},
|
|
2984
|
+
"order": {
|
|
2985
|
+
"type": "integer",
|
|
2986
|
+
"description": "The order in which the field should be displayed to user in UI",
|
|
2987
|
+
"minimum": 0
|
|
2988
|
+
},
|
|
2989
|
+
"type": {
|
|
2990
|
+
"type": "string",
|
|
2991
|
+
"description": "The matching mechanism to use value as against response. Typically regex or simple string containment",
|
|
2992
|
+
"enum": [
|
|
2993
|
+
"regex",
|
|
2994
|
+
"contains"
|
|
2995
|
+
]
|
|
2996
|
+
},
|
|
2997
|
+
"value": {
|
|
2998
|
+
"type": "string",
|
|
2999
|
+
"description": "The pattern or value to look for in the response. When `type` is 'contains', supports template variable declaration using `{{variable}}` syntax. When `type` is 'regex', can be used to extract variables using regex named groups."
|
|
3000
|
+
},
|
|
3001
|
+
"extract": {
|
|
3002
|
+
"type": "object",
|
|
3003
|
+
"description": "Which portions to select from a response. These are selected in order, xpath => jsonPath => regex * These redactions are done client side and only the selected portions are sent to the attestor. The attestor will only be able to see the selected portions alongside the first line of the HTTP response (i.e. \"HTTP/1.1 200 OK\")",
|
|
3004
|
+
"properties": {
|
|
3005
|
+
"xPath": {
|
|
3006
|
+
"type": "string",
|
|
3007
|
+
"description": "expect an HTML response, and to contain a certain xpath for eg. \"/html/body/div.a1/div.a2/span.a5\""
|
|
3008
|
+
},
|
|
3009
|
+
"jsonPath": {
|
|
3010
|
+
"type": "string",
|
|
3011
|
+
"description": "expect a JSON response, retrieve the item at this path using dot notation for e.g. 'email.addresses.0'"
|
|
3012
|
+
},
|
|
3013
|
+
"regex": {
|
|
3014
|
+
"type": "string",
|
|
3015
|
+
"description": "select a regex match from the response"
|
|
3016
|
+
},
|
|
3017
|
+
"hash": {
|
|
3018
|
+
"type": "string",
|
|
3019
|
+
"description": "If provided, the value inside will be hashed instead of being redacted. Useful for cases where the data inside is an identifiying piece of information that you don't want to reveal to the attestor, eg. an email address.\nIf the hash function produces more bytes than the original value, the hash will be truncated.\nEg. if hash is enabled, the original value is \"hello\", and hashed is \"a1b2c\", then the attestor will only see \"a1b2c\".\nNote: if a regex with named groups is provided, only the named groups will be hashed.",
|
|
3020
|
+
"enum": [
|
|
3021
|
+
"oprf",
|
|
3022
|
+
"oprf-mpc",
|
|
3023
|
+
"oprf-raw"
|
|
3024
|
+
]
|
|
3025
|
+
}
|
|
3026
|
+
}
|
|
3027
|
+
}
|
|
3028
|
+
}
|
|
3029
|
+
}
|
|
3030
|
+
}
|
|
3031
|
+
}
|
|
2159
3032
|
},
|
|
2160
3033
|
{
|
|
2161
3034
|
"type": "object",
|
|
@@ -2187,7 +3060,8 @@ export const MCP_TOOLS = {
|
|
|
2187
3060
|
"geoLocation": {
|
|
2188
3061
|
"type": "string",
|
|
2189
3062
|
"description": "Geographic location (e.g. ISO country code or {{DYNAMIC_GEO}} to use user's geo location) the verification should appear to originate from.",
|
|
2190
|
-
"maxLength": 15
|
|
3063
|
+
"maxLength": 15,
|
|
3064
|
+
"default": "{{DYNAMIC_GEO}}"
|
|
2191
3065
|
},
|
|
2192
3066
|
"clientOptions": {
|
|
2193
3067
|
"type": "object",
|
|
@@ -2202,7 +3076,7 @@ export const MCP_TOOLS = {
|
|
|
2202
3076
|
"useProxy": {
|
|
2203
3077
|
"type": "boolean",
|
|
2204
3078
|
"description": "When true, network traffic from the portal client and attestation is routed through a proxy.",
|
|
2205
|
-
"default":
|
|
3079
|
+
"default": true
|
|
2206
3080
|
},
|
|
2207
3081
|
"userAgent": {
|
|
2208
3082
|
"type": "string",
|
|
@@ -2272,14 +3146,10 @@ export const MCP_TOOLS = {
|
|
|
2272
3146
|
}
|
|
2273
3147
|
}
|
|
2274
3148
|
},
|
|
2275
|
-
"
|
|
3149
|
+
"requiredContext": {
|
|
2276
3150
|
"type": "object",
|
|
2277
|
-
"description": "
|
|
2278
|
-
"
|
|
2279
|
-
"additionalProperties": {
|
|
2280
|
-
"type": "string",
|
|
2281
|
-
"maxLength": 500
|
|
2282
|
-
}
|
|
3151
|
+
"description": "Optional JSON Schema describing the `context` a Consumer must supply when creating a verification session for this provider version. Only needed when the recipe expects Consumer-supplied values: those are referenced as `{{context.<key>}}` in recipe requests. Bare `{{parameterName}}` placeholders are provider parameters (extracted / not Consumer-supplied) and need no declaration here. The Builder validates `CreateVerificationSessionRequest.context` against this schema and rejects the request (400) on mismatch. Extra context fields are always allowed regardless of the schema (a root-level `additionalProperties: false` is ignored). Empty/absent accepts any context.",
|
|
3152
|
+
"additionalProperties": true
|
|
2283
3153
|
},
|
|
2284
3154
|
"notes": {
|
|
2285
3155
|
"type": "string",
|