@reclaimprotocol/agent 0.1.28 → 0.1.31
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 +28 -9
- package/lib/consts.d.ts +5 -5
- package/lib/consts.js +7 -7
- package/lib/live/tunnel-watchdog.d.ts +1 -0
- package/lib/live/tunnel-watchdog.js +66 -0
- package/lib/live/tunnel.d.ts +30 -7
- package/lib/live/tunnel.js +217 -40
- package/lib/mcp/api/operations.gen.d.ts +12 -0
- package/lib/mcp/api/operations.gen.js +537 -59
- package/lib/mcp/api/tools.js +27 -5
- package/lib/mcp/instructions.js +25 -32
- package/lib/mcp/remap_errors.js +6 -0
- package/lib/mcp/server.js +2 -8
- package/lib/mcp/start.js +3 -5
- package/lib/mcp/success-response.d.ts +5 -0
- package/lib/mcp/success-response.js +21 -0
- package/lib/mcp/tools/agent/attach.js +9 -66
- package/lib/mcp/tools/agent/build.d.ts +0 -3
- package/lib/mcp/tools/agent/build.js +3 -4
- package/lib/mcp/tools/agent/how-it-works.d.ts +5 -15
- package/lib/mcp/tools/agent/how-it-works.js +9 -22
- package/lib/mcp/tools/agent/live-view.d.ts +1 -15
- package/lib/mcp/tools/agent/live-view.js +71 -96
- package/lib/mcp/tools/agent/propose.js +7 -23
- package/lib/mcp/tools/agent/publish.js +80 -18
- package/lib/mcp/tools/agent/session.d.ts +4 -7
- package/lib/mcp/tools/agent/session.js +8 -23
- package/lib/mcp/tools/verification/result.d.ts +2 -1
- package/lib/mcp/tools/verification/result.js +29 -28
- package/lib/old/client.d.ts +2 -2
- package/lib/old/flag.d.ts +2 -5
- package/lib/old/flag.js +2 -5
- package/lib/old/instructions.d.ts +1 -1
- package/lib/old/instructions.js +1 -1
- package/lib/old/to-register.d.ts +4 -3
- package/lib/old/tools/publish.js +11 -14
- package/lib/proof/attestor-auth.d.ts +9 -1
- package/lib/proof/attestor-auth.js +15 -2
- package/lib/proof/attestor.d.ts +2 -2
- package/lib/proof/attestor.js +20 -2
- package/lib/proof/pod-prover.js +1 -1
- package/lib/proof/proof-core.d.ts +4 -0
- package/lib/proof/proof-core.js +20 -0
- package/lib/provider/injection-doc.d.ts +3 -2
- package/lib/provider/injection-doc.js +12 -10
- package/lib/provider/matcher.js +19 -15
- package/lib/provider/to-version.d.ts +3 -0
- package/lib/provider/to-version.js +2 -1
- package/package.json +3 -3
- package/skill/SKILL.builder.md +32 -85
- package/skill/SKILL.common.md +38 -22
- package/skill/SKILL.old.md +17 -3
- package/skill/builder-mode.md +37 -4
- package/skill/community-contributions.md +12 -3
- package/skill/hash-validation.md +9 -9
- package/skill/interception.md +39 -46
- package/skill/old-mode.md +13 -0
- package/skill/user-script.md +24 -8
- package/skill/verification-client-integration.md +130 -0
- package/src/consts.ts +9 -7
- package/src/mcp/api/operations.gen.ts +539 -59
- package/src/mcp/api/tools.ts +38 -7
- package/src/mcp/instructions.ts +35 -32
- package/src/mcp/remap_errors.ts +6 -0
- package/src/mcp/server.ts +2 -8
- package/src/mcp/start.ts +3 -5
- package/src/mcp/success-response.ts +26 -0
- package/src/mcp/tools/agent/attach.ts +9 -71
- package/src/mcp/tools/agent/build.ts +4 -7
- package/src/mcp/tools/agent/how-it-works.ts +9 -22
- package/src/mcp/tools/agent/live-view.ts +76 -116
- package/src/mcp/tools/agent/propose.ts +7 -23
- package/src/mcp/tools/agent/publish.ts +89 -18
- package/src/mcp/tools/agent/session.ts +6 -23
- package/src/mcp/tools/verification/result.ts +30 -29
- package/src/old/client.ts +2 -2
- package/src/old/flag.ts +2 -5
- package/src/old/instructions.ts +1 -1
- package/src/old/to-register.ts +4 -3
- package/src/old/tools/publish.ts +16 -14
- package/src/proof/attestor-auth.ts +18 -1
- package/src/proof/attestor.ts +24 -3
- package/src/proof/pod-prover.ts +1 -1
- package/src/proof/proof-core.ts +28 -0
- package/src/provider/injection-doc.ts +12 -10
- package/src/provider/matcher.ts +25 -17
- package/src/provider/to-version.ts +7 -1
- package/src/live/cloudflared.ts +0 -348
- package/src/live/tunnel.ts +0 -254
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// AUTO-GENERATED by packages/app/scripts/mcp-tools-gen.ts
|
|
2
|
-
// from packages/app/openapi.yaml.
|
|
3
|
-
//
|
|
4
|
-
//
|
|
2
|
+
// from packages/app/openapi.yaml (spec v0.1.0, source sha256:9ba46b5cbd7c).
|
|
3
|
+
// The hash catches drift the version misses (a spec can change without a
|
|
4
|
+
// version bump) — do not remove it as "redundant" with the version.
|
|
5
|
+
// Run `npm run openapi:gen --workspace=packages/app` to regenerate. Do not edit by hand.
|
|
5
6
|
// @ts-nocheck
|
|
6
7
|
|
|
7
8
|
import { toZod } from './to-zod.ts'
|
|
@@ -66,6 +67,77 @@ export const MCP_TOOLS = {
|
|
|
66
67
|
"additionalProperties": false
|
|
67
68
|
}),
|
|
68
69
|
},
|
|
70
|
+
"AdminAnalytics": {
|
|
71
|
+
description: "Usage, session, and revenue analytics (admin-only)\n\nAdmin only. Aggregates across every organization over a date window: session outcomes by UTC day, device category, and claimant country; demand per provider, money in by month, and per-org consumption against the plan allowance (including closed periods, which the org-scoped usage endpoint never returns). Defaults to the last 30 days; narrow to one org with `orgId`.",
|
|
72
|
+
inputSchema: toZod({
|
|
73
|
+
"type": "object",
|
|
74
|
+
"properties": {
|
|
75
|
+
"params": {
|
|
76
|
+
"type": "object",
|
|
77
|
+
"properties": {
|
|
78
|
+
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
"query": {
|
|
82
|
+
"type": "object",
|
|
83
|
+
"properties": {
|
|
84
|
+
"orgId": {
|
|
85
|
+
"type": "string",
|
|
86
|
+
"minLength": 1,
|
|
87
|
+
"maxLength": 64,
|
|
88
|
+
"pattern": "^[0-9a-fA-F-]+$",
|
|
89
|
+
"description": "An organization id used as a filter. Hyphens are ignored, so it matches with or without them; an id that matches no organization returns nothing."
|
|
90
|
+
},
|
|
91
|
+
"providerSearch": {
|
|
92
|
+
"type": "string",
|
|
93
|
+
"maxLength": 100
|
|
94
|
+
},
|
|
95
|
+
"verificationClientId": {
|
|
96
|
+
"type": "string",
|
|
97
|
+
"minLength": 1,
|
|
98
|
+
"maxLength": 64,
|
|
99
|
+
"pattern": "^[0-9a-fA-F-]+$",
|
|
100
|
+
"description": "A verification client id used as a filter. Hyphens are ignored."
|
|
101
|
+
},
|
|
102
|
+
"from": {
|
|
103
|
+
"type": "string",
|
|
104
|
+
"maxLength": 40,
|
|
105
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
|
|
106
|
+
"description": "One end of a date window: either a calendar date (`2026-09-01`, read as UTC midnight) or a full ISO date-time. The date-only form is what a native `<input type=\"date\">` submits, so `format: date-time` alone would reject every filter the dashboard's own form sends."
|
|
107
|
+
},
|
|
108
|
+
"to": {
|
|
109
|
+
"type": "string",
|
|
110
|
+
"maxLength": 40,
|
|
111
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
|
|
112
|
+
"description": "One end of a date window: either a calendar date (`2026-09-01`, read as UTC midnight) or a full ISO date-time. The date-only form is what a native `<input type=\"date\">` submits, so `format: date-time` alone would reject every filter the dashboard's own form sends."
|
|
113
|
+
},
|
|
114
|
+
"format": {
|
|
115
|
+
"type": "string",
|
|
116
|
+
"enum": [
|
|
117
|
+
"csv"
|
|
118
|
+
]
|
|
119
|
+
},
|
|
120
|
+
"section": {
|
|
121
|
+
"type": "string",
|
|
122
|
+
"enum": [
|
|
123
|
+
"providers",
|
|
124
|
+
"revenue",
|
|
125
|
+
"usage"
|
|
126
|
+
]
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
"body": {
|
|
131
|
+
"type": "object"
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
"required": [
|
|
135
|
+
"params",
|
|
136
|
+
"query"
|
|
137
|
+
],
|
|
138
|
+
"additionalProperties": false
|
|
139
|
+
}),
|
|
140
|
+
},
|
|
69
141
|
"AdminOrgs": {
|
|
70
142
|
description: "All workspaces (admin-only)\n\nAdmin only. Lists all organizations. Search matches workspace name or any member's email address.",
|
|
71
143
|
inputSchema: toZod({
|
|
@@ -83,6 +155,10 @@ export const MCP_TOOLS = {
|
|
|
83
155
|
"q": {
|
|
84
156
|
"type": "string",
|
|
85
157
|
"maxLength": 200
|
|
158
|
+
},
|
|
159
|
+
"cursor": {
|
|
160
|
+
"type": "string",
|
|
161
|
+
"maxLength": 500
|
|
86
162
|
}
|
|
87
163
|
}
|
|
88
164
|
},
|
|
@@ -145,7 +221,7 @@ export const MCP_TOOLS = {
|
|
|
145
221
|
}),
|
|
146
222
|
},
|
|
147
223
|
"AdminReviews": {
|
|
148
|
-
description: "Pending review queue (admin-only)\n\nAdmin only. Lists all provider versions currently awaiting review (branch = 'in_review'). Use
|
|
224
|
+
description: "Pending review queue (admin-only)\n\nAdmin only. Lists all provider versions currently awaiting review (branch = 'in_review'). Use decide_provider_version_review to approve or reject each version.",
|
|
149
225
|
inputSchema: toZod({
|
|
150
226
|
"type": "object",
|
|
151
227
|
"properties": {
|
|
@@ -173,7 +249,7 @@ export const MCP_TOOLS = {
|
|
|
173
249
|
}),
|
|
174
250
|
},
|
|
175
251
|
"AdminSessions": {
|
|
176
|
-
description: "Explore verification sessions (admin-only)\n\nAdmin only. Search verification sessions across all organizations — filter by `sessionId` (prefix match, at least 5 characters), `providerId
|
|
252
|
+
description: "Explore verification sessions (admin-only)\n\nAdmin only. Search verification sessions across all organizations — filter by `sessionId` (prefix match, at least 5 characters), `providerId` (id or slug), `claimantClientId`, `orgId` (all exact match), `status`, and a `createdAfter`/`createdBefore` time range. Rows link to the org-scoped session detail page (admins can open any org's pages). Newest first, 50 per page, with opaque cursor pagination.",
|
|
177
253
|
inputSchema: toZod({
|
|
178
254
|
"type": "object",
|
|
179
255
|
"properties": {
|
|
@@ -194,6 +270,17 @@ export const MCP_TOOLS = {
|
|
|
194
270
|
"type": "string",
|
|
195
271
|
"maxLength": 100
|
|
196
272
|
},
|
|
273
|
+
"verificationClientId": {
|
|
274
|
+
"type": "string",
|
|
275
|
+
"minLength": 1,
|
|
276
|
+
"maxLength": 64,
|
|
277
|
+
"pattern": "^[0-9a-fA-F-]+$",
|
|
278
|
+
"description": "A verification client id used as a filter. Hyphens are ignored."
|
|
279
|
+
},
|
|
280
|
+
"providerSearch": {
|
|
281
|
+
"type": "string",
|
|
282
|
+
"maxLength": 100
|
|
283
|
+
},
|
|
197
284
|
"claimantClientId": {
|
|
198
285
|
"type": "string",
|
|
199
286
|
"maxLength": 100
|
|
@@ -221,6 +308,10 @@ export const MCP_TOOLS = {
|
|
|
221
308
|
"createdBefore": {
|
|
222
309
|
"type": "string",
|
|
223
310
|
"format": "date-time"
|
|
311
|
+
},
|
|
312
|
+
"cursor": {
|
|
313
|
+
"type": "string",
|
|
314
|
+
"maxLength": 500
|
|
224
315
|
}
|
|
225
316
|
}
|
|
226
317
|
},
|
|
@@ -430,7 +521,7 @@ export const MCP_TOOLS = {
|
|
|
430
521
|
"events": {
|
|
431
522
|
"type": "array",
|
|
432
523
|
"minItems": 1,
|
|
433
|
-
"maxItems":
|
|
524
|
+
"maxItems": 51,
|
|
434
525
|
"items": {
|
|
435
526
|
"type": "string",
|
|
436
527
|
"description": "Canonical Builder lifecycle event. Names use lower snake case; metadata uses camel case. Provider events include providerId, resolvedVersion, and ordinal. Request events also include requestId. New values are additive, so clients must tolerate unknown response values. For field requirements and funnel semantics, see docs/verification-analytics-events.md.",
|
|
@@ -583,7 +674,7 @@ export const MCP_TOOLS = {
|
|
|
583
674
|
"events": {
|
|
584
675
|
"type": "array",
|
|
585
676
|
"minItems": 1,
|
|
586
|
-
"maxItems":
|
|
677
|
+
"maxItems": 51,
|
|
587
678
|
"items": {
|
|
588
679
|
"type": "string",
|
|
589
680
|
"description": "Canonical Builder lifecycle event. Names use lower snake case; metadata uses camel case. Provider events include providerId, resolvedVersion, and ordinal. Request events also include requestId. New values are additive, so clients must tolerate unknown response values. For field requirements and funnel semantics, see docs/verification-analytics-events.md.",
|
|
@@ -654,7 +745,7 @@ export const MCP_TOOLS = {
|
|
|
654
745
|
}),
|
|
655
746
|
},
|
|
656
747
|
"CreateProvider": {
|
|
657
|
-
description: "Create a provider\n\
|
|
748
|
+
description: "Create a provider\n\nCreates a provider in an organization. Call providers first and only create when nothing existing covers the domain. Requires active membership of the target organization. A provider starts empty — add its recipe with create_provider_version.",
|
|
658
749
|
inputSchema: toZod({
|
|
659
750
|
"type": "object",
|
|
660
751
|
"properties": {
|
|
@@ -787,7 +878,7 @@ export const MCP_TOOLS = {
|
|
|
787
878
|
}),
|
|
788
879
|
},
|
|
789
880
|
"CreateProviderVersion": {
|
|
790
|
-
description: "Create a new provider version\n\nCreates a new immutable semantic version of
|
|
881
|
+
description: "Create a new provider version\n\nCreates a new immutable semantic version of a provider. Every recipe change needs its own version; existing versions are never edited in place. Defaults to a patch bump. Publish it with publish_provider_version, or submit it for review with submit_provider_version_for_review.",
|
|
791
882
|
inputSchema: toZod({
|
|
792
883
|
"type": "object",
|
|
793
884
|
"properties": {
|
|
@@ -1326,6 +1417,144 @@ export const MCP_TOOLS = {
|
|
|
1326
1417
|
"type": "string",
|
|
1327
1418
|
"description": "JavaScript snippets injected into the page which runs before every page load. `window.Reclaim.` APIs are available to these scripts to request actions to the client like claim creation.",
|
|
1328
1419
|
"maxLength": 1000000
|
|
1420
|
+
},
|
|
1421
|
+
"browserRequestActions": {
|
|
1422
|
+
"type": "array",
|
|
1423
|
+
"description": "Portal-only authenticated browser actions available to `jsUserScripts` through `window.Reclaim.browserRequest`.",
|
|
1424
|
+
"maxItems": 50,
|
|
1425
|
+
"items": {
|
|
1426
|
+
"type": "object",
|
|
1427
|
+
"additionalProperties": false,
|
|
1428
|
+
"description": "A portal-only, provider-declared HTTP action for `window.Reclaim.browserRequest`. The claimant page supplies only the action id and declared primitive inputs; the recipe controls the HTTPS origin, request template, and returned fields. Other Verification Clients currently ignore this field.",
|
|
1429
|
+
"required": [
|
|
1430
|
+
"id",
|
|
1431
|
+
"origin",
|
|
1432
|
+
"path",
|
|
1433
|
+
"method"
|
|
1434
|
+
],
|
|
1435
|
+
"properties": {
|
|
1436
|
+
"id": {
|
|
1437
|
+
"type": "string",
|
|
1438
|
+
"pattern": "^[A-Za-z][A-Za-z0-9_-]{0,99}$",
|
|
1439
|
+
"minLength": 1,
|
|
1440
|
+
"maxLength": 100
|
|
1441
|
+
},
|
|
1442
|
+
"origin": {
|
|
1443
|
+
"type": "string",
|
|
1444
|
+
"format": "uri",
|
|
1445
|
+
"pattern": "^https://[^/?#]+$",
|
|
1446
|
+
"maxLength": 2000
|
|
1447
|
+
},
|
|
1448
|
+
"path": {
|
|
1449
|
+
"type": "string",
|
|
1450
|
+
"description": "Origin-relative fallback path.",
|
|
1451
|
+
"pattern": "^/(?:$|[^/\\\\][^\\\\]*)$",
|
|
1452
|
+
"maxLength": 4000
|
|
1453
|
+
},
|
|
1454
|
+
"pathTemplate": {
|
|
1455
|
+
"type": "string",
|
|
1456
|
+
"description": "Optional origin-relative path/query template. Declared inputs use `{{name}}` and are URL-encoded.",
|
|
1457
|
+
"pattern": "^/(?:$|[^/\\\\][^\\\\]*)$",
|
|
1458
|
+
"maxLength": 4000
|
|
1459
|
+
},
|
|
1460
|
+
"method": {
|
|
1461
|
+
"type": "string",
|
|
1462
|
+
"enum": [
|
|
1463
|
+
"GET",
|
|
1464
|
+
"POST",
|
|
1465
|
+
"PUT",
|
|
1466
|
+
"PATCH",
|
|
1467
|
+
"DELETE"
|
|
1468
|
+
]
|
|
1469
|
+
},
|
|
1470
|
+
"transport": {
|
|
1471
|
+
"type": "string",
|
|
1472
|
+
"description": "`fetch` is the default. `navigate` supports GET only and performs a top-level navigation in the action's isolated browser page.",
|
|
1473
|
+
"enum": [
|
|
1474
|
+
"fetch",
|
|
1475
|
+
"navigate"
|
|
1476
|
+
]
|
|
1477
|
+
},
|
|
1478
|
+
"userAgent": {
|
|
1479
|
+
"type": "string",
|
|
1480
|
+
"description": "Browser User-Agent applied to the isolated action page before its first navigation. Use only when the target origin requires a specific browser identity.",
|
|
1481
|
+
"minLength": 1,
|
|
1482
|
+
"maxLength": 300,
|
|
1483
|
+
"pattern": "^[^\\r\\n]+$"
|
|
1484
|
+
},
|
|
1485
|
+
"omitOriginHeader": {
|
|
1486
|
+
"type": "boolean",
|
|
1487
|
+
"description": "Remove Chromium's automatic Origin header from a fetch action. Unsupported for navigate actions."
|
|
1488
|
+
},
|
|
1489
|
+
"headers": {
|
|
1490
|
+
"type": "object",
|
|
1491
|
+
"maxProperties": 50,
|
|
1492
|
+
"additionalProperties": {
|
|
1493
|
+
"type": "string",
|
|
1494
|
+
"maxLength": 8192
|
|
1495
|
+
}
|
|
1496
|
+
},
|
|
1497
|
+
"headersTemplate": {
|
|
1498
|
+
"type": "object",
|
|
1499
|
+
"description": "Header values may interpolate declared `{{name}}` inputs.",
|
|
1500
|
+
"maxProperties": 50,
|
|
1501
|
+
"additionalProperties": {
|
|
1502
|
+
"type": "string",
|
|
1503
|
+
"maxLength": 8192
|
|
1504
|
+
}
|
|
1505
|
+
},
|
|
1506
|
+
"bodyTemplate": {
|
|
1507
|
+
"type": "string",
|
|
1508
|
+
"description": "JSON template whose `{{name}}` inputs are inserted as JSON literals. The rendered body is limited again at execution time.",
|
|
1509
|
+
"maxLength": 65536
|
|
1510
|
+
},
|
|
1511
|
+
"cookieValueHeader": {
|
|
1512
|
+
"type": "object",
|
|
1513
|
+
"additionalProperties": false,
|
|
1514
|
+
"description": "Copies one same-origin, script-readable cookie into a request header. The cookie value stays inside the verification client's browser.",
|
|
1515
|
+
"required": [
|
|
1516
|
+
"name",
|
|
1517
|
+
"cookieName"
|
|
1518
|
+
],
|
|
1519
|
+
"properties": {
|
|
1520
|
+
"name": {
|
|
1521
|
+
"type": "string",
|
|
1522
|
+
"minLength": 1,
|
|
1523
|
+
"maxLength": 256
|
|
1524
|
+
},
|
|
1525
|
+
"cookieName": {
|
|
1526
|
+
"type": "string",
|
|
1527
|
+
"minLength": 1,
|
|
1528
|
+
"maxLength": 256
|
|
1529
|
+
}
|
|
1530
|
+
}
|
|
1531
|
+
},
|
|
1532
|
+
"includeBody": {
|
|
1533
|
+
"type": "boolean",
|
|
1534
|
+
"description": "Return the bounded raw response body."
|
|
1535
|
+
},
|
|
1536
|
+
"inputKeys": {
|
|
1537
|
+
"type": "array",
|
|
1538
|
+
"maxItems": 50,
|
|
1539
|
+
"uniqueItems": true,
|
|
1540
|
+
"items": {
|
|
1541
|
+
"type": "string",
|
|
1542
|
+
"pattern": "^[A-Za-z][A-Za-z0-9_]{0,99}$",
|
|
1543
|
+
"maxLength": 100
|
|
1544
|
+
}
|
|
1545
|
+
},
|
|
1546
|
+
"responseFields": {
|
|
1547
|
+
"type": "array",
|
|
1548
|
+
"maxItems": 50,
|
|
1549
|
+
"uniqueItems": true,
|
|
1550
|
+
"items": {
|
|
1551
|
+
"type": "string",
|
|
1552
|
+
"pattern": "^[A-Za-z][A-Za-z0-9_]{0,99}$",
|
|
1553
|
+
"maxLength": 100
|
|
1554
|
+
}
|
|
1555
|
+
}
|
|
1556
|
+
}
|
|
1557
|
+
}
|
|
1329
1558
|
}
|
|
1330
1559
|
}
|
|
1331
1560
|
},
|
|
@@ -1351,7 +1580,7 @@ export const MCP_TOOLS = {
|
|
|
1351
1580
|
}),
|
|
1352
1581
|
},
|
|
1353
1582
|
"CreateVerificationSession": {
|
|
1354
|
-
description: "Create a verification session\n\nCreates an end-user verification session. Requires an OrgToken and a callback subscription; pass providers, context, and an optional registered verificationClientUrl. Billing refusal returns 402 or 429 with event billing_required and a terminal sessionId.",
|
|
1583
|
+
description: "Create a verification session\n\nCreates an end-user verification session. Requires an OrgToken and a callback subscription; pass providers, context, and an optional registered verificationClientUrl (omitted: the Portal). Billing refusal returns 402 or 429 with event billing_required and a terminal sessionId.",
|
|
1355
1584
|
inputSchema: toZod({
|
|
1356
1585
|
"type": "object",
|
|
1357
1586
|
"properties": {
|
|
@@ -1379,7 +1608,9 @@ export const MCP_TOOLS = {
|
|
|
1379
1608
|
"providers": {
|
|
1380
1609
|
"type": "array",
|
|
1381
1610
|
"minItems": 1,
|
|
1382
|
-
"
|
|
1611
|
+
"maxItems": 20,
|
|
1612
|
+
"uniqueItems": true,
|
|
1613
|
+
"description": "Providers to verify, in run order. The Verification Client runs each sequentially in one browser session and submits one combined result; all are required. Provider version constraints are resolved only while this request is created; clients receive the exact immutable resolved versions and never resolve them again.",
|
|
1383
1614
|
"items": {
|
|
1384
1615
|
"type": "object",
|
|
1385
1616
|
"additionalProperties": false,
|
|
@@ -1403,11 +1634,11 @@ export const MCP_TOOLS = {
|
|
|
1403
1634
|
"context": {
|
|
1404
1635
|
"type": "object",
|
|
1405
1636
|
"additionalProperties": true,
|
|
1406
|
-
"description": "Consumer context, shared by all providers. Validated against EACH resolved provider version's `requiredContext` JSON Schema (a 400 is returned on mismatch); extra fields are always allowed. Recipe requests
|
|
1637
|
+
"description": "Consumer context, shared by all providers. Validated against EACH resolved provider version's `requiredContext` JSON Schema (a 400 is returned on mismatch); extra fields are always allowed. Recipe requests resolve scalar values as `{{context.key}}`, then `{{context_key}}`, then `{{key}}`. A lower-priority alias is used only when the recipe doesn't use a higher-priority spelling; an explicit parameter takes precedence. Echoed back (plus `reclaimSessionId`) in the result. Builder-owned `reclaimSessionId` and `attestationNonce` remain context-only."
|
|
1407
1638
|
},
|
|
1408
1639
|
"verificationClientUrl": {
|
|
1409
1640
|
"type": "string",
|
|
1410
|
-
"description": "Optional. Must exactly equal the base URL of a registered verification client (see the `verification_clients` registry / `/admin/verification-clients`). Omit to use the default (`
|
|
1641
|
+
"description": "Optional. Must exactly equal the base URL of a registered verification client (see the `verification_clients` registry / `/admin/verification-clients`). Omit to use the default (`portals`) client. The Builder resolves and stores the registered client UUID, then returns the ready-to-share `verificationUrl` with the session id and `api=2`. A URL that is not a registered client's base is rejected with 400. Consumers append any client-owned redirect parameters after receiving the URL; Builder does not manage them.",
|
|
1411
1642
|
"maxLength": 2000,
|
|
1412
1643
|
"pattern": "^https?://"
|
|
1413
1644
|
},
|
|
@@ -1425,6 +1656,103 @@ export const MCP_TOOLS = {
|
|
|
1425
1656
|
"preferAiAgent": {
|
|
1426
1657
|
"type": "boolean",
|
|
1427
1658
|
"description": "Legacy-only preference. Builder mode runs the structured recipe and does not enable AI or manual verification. Omit this field for Builder-mode sessions; dual-mode clients may continue to interpret it only on their legacy path."
|
|
1659
|
+
},
|
|
1660
|
+
"diagnostics": {
|
|
1661
|
+
"type": "boolean",
|
|
1662
|
+
"description": "Optional; omit or send false for a normal session. Opts this session into diagnostic mode. A diagnostic session records more event detail, including personal data such as the claimant's IP addresses (see ClaimantDetails.network). Builder appends `diag=1` to the returned `verificationUrl` for a diagnostic session and strips any `diag` value the Consumer's own `verificationClientUrl` carries, so this field — not the URL — is the only way to turn diagnostics on. Treat a diagnostic verification URL as sensitive, and don't hand it to a claimant by default."
|
|
1663
|
+
},
|
|
1664
|
+
"launchOptions": {
|
|
1665
|
+
"type": "object",
|
|
1666
|
+
"additionalProperties": false,
|
|
1667
|
+
"description": "Where a Verification Client sends the claimant's browser at the end of a flow. Builder stores these on the session and returns them unchanged (see VerificationSession.launchOptions / BootstrapVerificationClient) — it never reads them itself, never redirects a claimant to them, and never executes them; only the Verification Client that renders the flow does. Vocabulary matches `reclaim-js-sdk`'s `VerificationRequest` and `reclaim-portal`'s `parseVerificationLaunch`: `redirectUrl`/`redirectUrlOptions` on success, `cancelRedirectUrl`/`cancelRedirectUrlOptions` on cancellation. `https:` only — `javascript:`, `data:`, and any other scheme are rejected with 400 at session creation.",
|
|
1668
|
+
"properties": {
|
|
1669
|
+
"redirectUrl": {
|
|
1670
|
+
"type": "string",
|
|
1671
|
+
"format": "uri",
|
|
1672
|
+
"description": "Where to send the claimant after a successful verification.",
|
|
1673
|
+
"maxLength": 2000,
|
|
1674
|
+
"pattern": "^https://"
|
|
1675
|
+
},
|
|
1676
|
+
"redirectUrlOptions": {
|
|
1677
|
+
"type": "object",
|
|
1678
|
+
"additionalProperties": false,
|
|
1679
|
+
"description": "How a Verification Client performs a launch-options redirect — a plain GET (default) or a form POST/GET carrying extra fields. Matches `reclaim-portal`'s `HttpRedirectionOptions`.",
|
|
1680
|
+
"properties": {
|
|
1681
|
+
"method": {
|
|
1682
|
+
"type": "string",
|
|
1683
|
+
"enum": [
|
|
1684
|
+
"GET",
|
|
1685
|
+
"POST"
|
|
1686
|
+
]
|
|
1687
|
+
},
|
|
1688
|
+
"body": {
|
|
1689
|
+
"type": "array",
|
|
1690
|
+
"maxItems": 50,
|
|
1691
|
+
"items": {
|
|
1692
|
+
"type": "object",
|
|
1693
|
+
"additionalProperties": false,
|
|
1694
|
+
"required": [
|
|
1695
|
+
"name",
|
|
1696
|
+
"value"
|
|
1697
|
+
],
|
|
1698
|
+
"properties": {
|
|
1699
|
+
"name": {
|
|
1700
|
+
"type": "string",
|
|
1701
|
+
"maxLength": 256
|
|
1702
|
+
},
|
|
1703
|
+
"value": {
|
|
1704
|
+
"type": "string",
|
|
1705
|
+
"maxLength": 2000
|
|
1706
|
+
}
|
|
1707
|
+
}
|
|
1708
|
+
}
|
|
1709
|
+
}
|
|
1710
|
+
}
|
|
1711
|
+
},
|
|
1712
|
+
"cancelRedirectUrl": {
|
|
1713
|
+
"type": "string",
|
|
1714
|
+
"format": "uri",
|
|
1715
|
+
"description": "Where to send the claimant after a cancelled verification.",
|
|
1716
|
+
"maxLength": 2000,
|
|
1717
|
+
"pattern": "^https://"
|
|
1718
|
+
},
|
|
1719
|
+
"cancelRedirectUrlOptions": {
|
|
1720
|
+
"type": "object",
|
|
1721
|
+
"additionalProperties": false,
|
|
1722
|
+
"description": "How a Verification Client performs a launch-options redirect — a plain GET (default) or a form POST/GET carrying extra fields. Matches `reclaim-portal`'s `HttpRedirectionOptions`.",
|
|
1723
|
+
"properties": {
|
|
1724
|
+
"method": {
|
|
1725
|
+
"type": "string",
|
|
1726
|
+
"enum": [
|
|
1727
|
+
"GET",
|
|
1728
|
+
"POST"
|
|
1729
|
+
]
|
|
1730
|
+
},
|
|
1731
|
+
"body": {
|
|
1732
|
+
"type": "array",
|
|
1733
|
+
"maxItems": 50,
|
|
1734
|
+
"items": {
|
|
1735
|
+
"type": "object",
|
|
1736
|
+
"additionalProperties": false,
|
|
1737
|
+
"required": [
|
|
1738
|
+
"name",
|
|
1739
|
+
"value"
|
|
1740
|
+
],
|
|
1741
|
+
"properties": {
|
|
1742
|
+
"name": {
|
|
1743
|
+
"type": "string",
|
|
1744
|
+
"maxLength": 256
|
|
1745
|
+
},
|
|
1746
|
+
"value": {
|
|
1747
|
+
"type": "string",
|
|
1748
|
+
"maxLength": 2000
|
|
1749
|
+
}
|
|
1750
|
+
}
|
|
1751
|
+
}
|
|
1752
|
+
}
|
|
1753
|
+
}
|
|
1754
|
+
}
|
|
1755
|
+
}
|
|
1428
1756
|
}
|
|
1429
1757
|
}
|
|
1430
1758
|
}
|
|
@@ -1438,7 +1766,7 @@ export const MCP_TOOLS = {
|
|
|
1438
1766
|
}),
|
|
1439
1767
|
},
|
|
1440
1768
|
"DecideProviderVersionReview": {
|
|
1441
|
-
description: "Record a decision on a provider version review\n\
|
|
1769
|
+
description: "Record a decision on a provider version review\n\nApproves or rejects a provider version awaiting review. Admin only. Approval promotes the version to the live channel; rejection moves it to the rejected branch with a reason. Use admin_reviews to find versions waiting on a decision.",
|
|
1442
1770
|
inputSchema: toZod({
|
|
1443
1771
|
"type": "object",
|
|
1444
1772
|
"properties": {
|
|
@@ -1656,7 +1984,7 @@ export const MCP_TOOLS = {
|
|
|
1656
1984
|
}),
|
|
1657
1985
|
},
|
|
1658
1986
|
"DiscoverDataPoints": {
|
|
1659
|
-
description: "List the verifiable data points on a website\n\nThe data points existing providers can prove on a website — the menu to pick from before
|
|
1987
|
+
description: "List the verifiable data points on a website\n\nThe data points existing providers can prove on a website — the menu to pick from before discover_resolve. Optionally filter by `q`.",
|
|
1660
1988
|
inputSchema: toZod({
|
|
1661
1989
|
"type": "object",
|
|
1662
1990
|
"properties": {
|
|
@@ -1697,7 +2025,7 @@ export const MCP_TOOLS = {
|
|
|
1697
2025
|
}),
|
|
1698
2026
|
},
|
|
1699
2027
|
"DiscoverResolve": {
|
|
1700
|
-
description: "Resolve a website + data points to providers\n\
|
|
2028
|
+
description: "Resolve a website + data points to providers\n\nResolves a website plus the data points to prove into the smallest set of existing providers that covers them, with the context inputs each needs. Use after discover_data_points, and before deciding whether to build anything new.",
|
|
1701
2029
|
inputSchema: toZod({
|
|
1702
2030
|
"type": "object",
|
|
1703
2031
|
"properties": {
|
|
@@ -1754,7 +2082,7 @@ export const MCP_TOOLS = {
|
|
|
1754
2082
|
}),
|
|
1755
2083
|
},
|
|
1756
2084
|
"GetMe": {
|
|
1757
|
-
description: "Get the authenticated user",
|
|
2085
|
+
description: "Get the authenticated user\n\nGets the authenticated caller's own profile: id, email, and name. Requires a signed-in user session, not an OrgToken. Use it to confirm who the current credentials belong to.",
|
|
1758
2086
|
inputSchema: toZod({
|
|
1759
2087
|
"type": "object",
|
|
1760
2088
|
"properties": {
|
|
@@ -1782,7 +2110,7 @@ export const MCP_TOOLS = {
|
|
|
1782
2110
|
}),
|
|
1783
2111
|
},
|
|
1784
2112
|
"GetOrg": {
|
|
1785
|
-
description: "Get an organization",
|
|
2113
|
+
description: "Get an organization\n\nGets one organization: name, kind, status, and members. Requires membership or staff access. Use list_orgs when the id is unknown.",
|
|
1786
2114
|
inputSchema: toZod({
|
|
1787
2115
|
"type": "object",
|
|
1788
2116
|
"properties": {
|
|
@@ -1805,14 +2133,73 @@ export const MCP_TOOLS = {
|
|
|
1805
2133
|
"tab": {
|
|
1806
2134
|
"type": "string",
|
|
1807
2135
|
"enum": [
|
|
2136
|
+
"overview",
|
|
1808
2137
|
"connect",
|
|
2138
|
+
"integrate",
|
|
1809
2139
|
"providers",
|
|
1810
2140
|
"members",
|
|
1811
2141
|
"themes",
|
|
2142
|
+
"settings",
|
|
1812
2143
|
"sessions",
|
|
1813
2144
|
"billing"
|
|
1814
2145
|
]
|
|
1815
2146
|
},
|
|
2147
|
+
"track": {
|
|
2148
|
+
"type": "string",
|
|
2149
|
+
"enum": [
|
|
2150
|
+
"agent",
|
|
2151
|
+
"sdk",
|
|
2152
|
+
"http"
|
|
2153
|
+
]
|
|
2154
|
+
},
|
|
2155
|
+
"agent": {
|
|
2156
|
+
"type": "string",
|
|
2157
|
+
"enum": [
|
|
2158
|
+
"claude",
|
|
2159
|
+
"cursor",
|
|
2160
|
+
"opencode",
|
|
2161
|
+
"codex",
|
|
2162
|
+
"others"
|
|
2163
|
+
]
|
|
2164
|
+
},
|
|
2165
|
+
"from": {
|
|
2166
|
+
"type": "string",
|
|
2167
|
+
"maxLength": 40,
|
|
2168
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
|
|
2169
|
+
"description": "One end of a date window: either a calendar date (`2026-09-01`, read as UTC midnight) or a full ISO date-time. The date-only form is what a native `<input type=\"date\">` submits, so `format: date-time` alone would reject every filter the dashboard's own form sends."
|
|
2170
|
+
},
|
|
2171
|
+
"to": {
|
|
2172
|
+
"type": "string",
|
|
2173
|
+
"maxLength": 40,
|
|
2174
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
|
|
2175
|
+
"description": "One end of a date window: either a calendar date (`2026-09-01`, read as UTC midnight) or a full ISO date-time. The date-only form is what a native `<input type=\"date\">` submits, so `format: date-time` alone would reject every filter the dashboard's own form sends."
|
|
2176
|
+
},
|
|
2177
|
+
"providerId": {
|
|
2178
|
+
"type": "string",
|
|
2179
|
+
"format": "uuid"
|
|
2180
|
+
},
|
|
2181
|
+
"verificationClientId": {
|
|
2182
|
+
"type": "string",
|
|
2183
|
+
"minLength": 1,
|
|
2184
|
+
"maxLength": 64,
|
|
2185
|
+
"pattern": "^[0-9a-fA-F-]+$",
|
|
2186
|
+
"description": "A verification client id used as a filter. Hyphens are ignored."
|
|
2187
|
+
},
|
|
2188
|
+
"q": {
|
|
2189
|
+
"type": "string",
|
|
2190
|
+
"minLength": 1,
|
|
2191
|
+
"maxLength": 200
|
|
2192
|
+
},
|
|
2193
|
+
"visibility": {
|
|
2194
|
+
"type": "string",
|
|
2195
|
+
"enum": [
|
|
2196
|
+
"PUBLIC",
|
|
2197
|
+
"PRIVATE"
|
|
2198
|
+
]
|
|
2199
|
+
},
|
|
2200
|
+
"newProvider": {
|
|
2201
|
+
"type": "boolean"
|
|
2202
|
+
},
|
|
1816
2203
|
"billing": {
|
|
1817
2204
|
"type": "string",
|
|
1818
2205
|
"enum": [
|
|
@@ -1905,8 +2292,65 @@ export const MCP_TOOLS = {
|
|
|
1905
2292
|
"additionalProperties": false
|
|
1906
2293
|
}),
|
|
1907
2294
|
},
|
|
2295
|
+
"GetOrgVerificationAnalytics": {
|
|
2296
|
+
description: "Verification outcomes by day, device, and country\n\nShow an organization's verification counts and outcomes by UTC day, claimant device category, and claimant country. Missing telemetry appears in unknown buckets; filter with from and to.",
|
|
2297
|
+
inputSchema: toZod({
|
|
2298
|
+
"type": "object",
|
|
2299
|
+
"properties": {
|
|
2300
|
+
"params": {
|
|
2301
|
+
"type": "object",
|
|
2302
|
+
"properties": {
|
|
2303
|
+
"orgId": {
|
|
2304
|
+
"type": "string",
|
|
2305
|
+
"format": "uuid"
|
|
2306
|
+
}
|
|
2307
|
+
},
|
|
2308
|
+
"required": [
|
|
2309
|
+
"orgId"
|
|
2310
|
+
],
|
|
2311
|
+
"additionalProperties": false
|
|
2312
|
+
},
|
|
2313
|
+
"query": {
|
|
2314
|
+
"type": "object",
|
|
2315
|
+
"properties": {
|
|
2316
|
+
"from": {
|
|
2317
|
+
"type": "string",
|
|
2318
|
+
"maxLength": 40,
|
|
2319
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
|
|
2320
|
+
"description": "One end of a date window: either a calendar date (`2026-09-01`, read as UTC midnight) or a full ISO date-time. The date-only form is what a native `<input type=\"date\">` submits, so `format: date-time` alone would reject every filter the dashboard's own form sends."
|
|
2321
|
+
},
|
|
2322
|
+
"to": {
|
|
2323
|
+
"type": "string",
|
|
2324
|
+
"maxLength": 40,
|
|
2325
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
|
|
2326
|
+
"description": "One end of a date window: either a calendar date (`2026-09-01`, read as UTC midnight) or a full ISO date-time. The date-only form is what a native `<input type=\"date\">` submits, so `format: date-time` alone would reject every filter the dashboard's own form sends."
|
|
2327
|
+
},
|
|
2328
|
+
"providerId": {
|
|
2329
|
+
"type": "string",
|
|
2330
|
+
"format": "uuid"
|
|
2331
|
+
},
|
|
2332
|
+
"verificationClientId": {
|
|
2333
|
+
"type": "string",
|
|
2334
|
+
"minLength": 1,
|
|
2335
|
+
"maxLength": 64,
|
|
2336
|
+
"pattern": "^[0-9a-fA-F-]+$",
|
|
2337
|
+
"description": "A verification client id used as a filter. Hyphens are ignored."
|
|
2338
|
+
}
|
|
2339
|
+
}
|
|
2340
|
+
},
|
|
2341
|
+
"body": {
|
|
2342
|
+
"type": "object"
|
|
2343
|
+
}
|
|
2344
|
+
},
|
|
2345
|
+
"required": [
|
|
2346
|
+
"params",
|
|
2347
|
+
"query"
|
|
2348
|
+
],
|
|
2349
|
+
"additionalProperties": false
|
|
2350
|
+
}),
|
|
2351
|
+
},
|
|
1908
2352
|
"GetProvider": {
|
|
1909
|
-
description: "Get a provider\n\
|
|
2353
|
+
description: "Get a provider\n\nGets one provider by id: its domain, live version (initialUrl and requests), and the data points it can prove. Use providers first when only a domain or search term is known.",
|
|
1910
2354
|
inputSchema: toZod({
|
|
1911
2355
|
"type": "object",
|
|
1912
2356
|
"properties": {
|
|
@@ -2090,7 +2534,7 @@ export const MCP_TOOLS = {
|
|
|
2090
2534
|
}),
|
|
2091
2535
|
},
|
|
2092
2536
|
"GetVerificationSession": {
|
|
2093
|
-
description: "Get a verification session\n\nGets one verification session. Use it to inspect status, resolved providers, context, Verification Client identity, and expiry.
|
|
2537
|
+
description: "Get a verification session\n\nGets one verification session. Use it to inspect status, resolved providers, context, Verification Client identity, and expiry. Requires the owning organization token.",
|
|
2094
2538
|
inputSchema: toZod({
|
|
2095
2539
|
"type": "object",
|
|
2096
2540
|
"properties": {
|
|
@@ -2114,15 +2558,6 @@ export const MCP_TOOLS = {
|
|
|
2114
2558
|
|
|
2115
2559
|
}
|
|
2116
2560
|
},
|
|
2117
|
-
"headers": {
|
|
2118
|
-
"type": "object",
|
|
2119
|
-
"properties": {
|
|
2120
|
-
"x-reclaim-vc-id": {
|
|
2121
|
-
"type": "string",
|
|
2122
|
-
"description": "UUID of the registered Verification Client selected when the session was created. The Builder binds it to the session's immutable verificationClientId. This header identifies the client; it is not a general bearer credential. Client-reported metadata remains untrusted, and Consumers must verify every signed result with verifyResultFull."
|
|
2123
|
-
}
|
|
2124
|
-
}
|
|
2125
|
-
},
|
|
2126
2561
|
"body": {
|
|
2127
2562
|
"type": "object"
|
|
2128
2563
|
}
|
|
@@ -2305,7 +2740,7 @@ export const MCP_TOOLS = {
|
|
|
2305
2740
|
}),
|
|
2306
2741
|
},
|
|
2307
2742
|
"ListOrgs": {
|
|
2308
|
-
description: "List organizations the caller belongs to",
|
|
2743
|
+
description: "List organizations the caller belongs to\n\nLists the organizations the caller belongs to, personal and shared. Use it first to find an organization id — most other tools take one.",
|
|
2309
2744
|
inputSchema: toZod({
|
|
2310
2745
|
"type": "object",
|
|
2311
2746
|
"properties": {
|
|
@@ -2318,9 +2753,17 @@ export const MCP_TOOLS = {
|
|
|
2318
2753
|
"query": {
|
|
2319
2754
|
"type": "object",
|
|
2320
2755
|
"properties": {
|
|
2756
|
+
"q": {
|
|
2757
|
+
"type": "string",
|
|
2758
|
+
"minLength": 1,
|
|
2759
|
+
"maxLength": 200
|
|
2760
|
+
},
|
|
2321
2761
|
"cursor": {
|
|
2322
2762
|
"type": "string",
|
|
2323
2763
|
"maxLength": 500
|
|
2764
|
+
},
|
|
2765
|
+
"newOrg": {
|
|
2766
|
+
"type": "boolean"
|
|
2324
2767
|
}
|
|
2325
2768
|
}
|
|
2326
2769
|
},
|
|
@@ -2370,8 +2813,56 @@ export const MCP_TOOLS = {
|
|
|
2370
2813
|
"additionalProperties": false
|
|
2371
2814
|
}),
|
|
2372
2815
|
},
|
|
2816
|
+
"ListOrgUsedProviders": {
|
|
2817
|
+
description: "List the providers an organization uses\n\nLists the providers that have verification sessions in an organization, busiest first, with session count and last use. Use it to find a provider id to filter sessions or analytics.",
|
|
2818
|
+
inputSchema: toZod({
|
|
2819
|
+
"type": "object",
|
|
2820
|
+
"properties": {
|
|
2821
|
+
"params": {
|
|
2822
|
+
"type": "object",
|
|
2823
|
+
"properties": {
|
|
2824
|
+
"orgId": {
|
|
2825
|
+
"type": "string",
|
|
2826
|
+
"format": "uuid"
|
|
2827
|
+
}
|
|
2828
|
+
},
|
|
2829
|
+
"required": [
|
|
2830
|
+
"orgId"
|
|
2831
|
+
],
|
|
2832
|
+
"additionalProperties": false
|
|
2833
|
+
},
|
|
2834
|
+
"query": {
|
|
2835
|
+
"type": "object",
|
|
2836
|
+
"properties": {
|
|
2837
|
+
"q": {
|
|
2838
|
+
"type": "string",
|
|
2839
|
+
"minLength": 1,
|
|
2840
|
+
"maxLength": 200
|
|
2841
|
+
},
|
|
2842
|
+
"cursor": {
|
|
2843
|
+
"type": "string",
|
|
2844
|
+
"maxLength": 500
|
|
2845
|
+
},
|
|
2846
|
+
"limit": {
|
|
2847
|
+
"type": "integer",
|
|
2848
|
+
"minimum": 1,
|
|
2849
|
+
"maximum": 1000
|
|
2850
|
+
}
|
|
2851
|
+
}
|
|
2852
|
+
},
|
|
2853
|
+
"body": {
|
|
2854
|
+
"type": "object"
|
|
2855
|
+
}
|
|
2856
|
+
},
|
|
2857
|
+
"required": [
|
|
2858
|
+
"params",
|
|
2859
|
+
"query"
|
|
2860
|
+
],
|
|
2861
|
+
"additionalProperties": false
|
|
2862
|
+
}),
|
|
2863
|
+
},
|
|
2373
2864
|
"ListOrgVerificationSessions": {
|
|
2374
|
-
description: "List an organization's verification sessions\n\
|
|
2865
|
+
description: "List an organization's verification sessions\n\nLists an organization's verification sessions, newest first, filterable by session id prefix, provider, status, resolved version, claimant, and a created-at range. Use it to find a session id; use get_verification_session for one session in full.",
|
|
2375
2866
|
inputSchema: toZod({
|
|
2376
2867
|
"type": "object",
|
|
2377
2868
|
"properties": {
|
|
@@ -2399,6 +2890,13 @@ export const MCP_TOOLS = {
|
|
|
2399
2890
|
"type": "string",
|
|
2400
2891
|
"maxLength": 100
|
|
2401
2892
|
},
|
|
2893
|
+
"verificationClientId": {
|
|
2894
|
+
"type": "string",
|
|
2895
|
+
"minLength": 1,
|
|
2896
|
+
"maxLength": 64,
|
|
2897
|
+
"pattern": "^[0-9a-fA-F-]+$",
|
|
2898
|
+
"description": "A verification client id used as a filter. Hyphens are ignored."
|
|
2899
|
+
},
|
|
2402
2900
|
"status": {
|
|
2403
2901
|
"type": "string",
|
|
2404
2902
|
"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- `cancelled`: Terminal — `verification_cancelled` recorded.\n\n- `expired`: `expiresAt` passed before a terminal event; the end-user\n can no longer complete it.",
|
|
@@ -2483,7 +2981,7 @@ export const MCP_TOOLS = {
|
|
|
2483
2981
|
}),
|
|
2484
2982
|
},
|
|
2485
2983
|
"ListVerificationDeliveries": {
|
|
2486
|
-
description: "Get the callback delivery status for a session\n\nLists callback delivery attempts for a session. Requires
|
|
2984
|
+
description: "Get the callback delivery status for a session\n\nLists callback delivery attempts for a session. Requires the owning organization's token. Use after terminal status to diagnose pending, failed, or dead-lettered callbacks; retry failures with retry_verification_callback.",
|
|
2487
2985
|
inputSchema: toZod({
|
|
2488
2986
|
"type": "object",
|
|
2489
2987
|
"properties": {
|
|
@@ -2507,15 +3005,6 @@ export const MCP_TOOLS = {
|
|
|
2507
3005
|
|
|
2508
3006
|
}
|
|
2509
3007
|
},
|
|
2510
|
-
"headers": {
|
|
2511
|
-
"type": "object",
|
|
2512
|
-
"properties": {
|
|
2513
|
-
"x-reclaim-vc-id": {
|
|
2514
|
-
"type": "string",
|
|
2515
|
-
"description": "UUID of the registered Verification Client selected when the session was created. The Builder binds it to the session's immutable verificationClientId. This header identifies the client; it is not a general bearer credential. Client-reported metadata remains untrusted, and Consumers must verify every signed result with verifyResultFull."
|
|
2516
|
-
}
|
|
2517
|
-
}
|
|
2518
|
-
},
|
|
2519
3008
|
"body": {
|
|
2520
3009
|
"type": "object"
|
|
2521
3010
|
}
|
|
@@ -2528,7 +3017,7 @@ export const MCP_TOOLS = {
|
|
|
2528
3017
|
}),
|
|
2529
3018
|
},
|
|
2530
3019
|
"ListVerificationEvents": {
|
|
2531
|
-
description: "Get the event log for a session\n\nLists append-only lifecycle events for a session. Requires
|
|
3020
|
+
description: "Get the event log for a session\n\nLists append-only lifecycle events for a session. Requires the owning organization's token. Use after get_verification_session to find the first missing or failed milestone; inspect eventData for failure details.",
|
|
2532
3021
|
inputSchema: toZod({
|
|
2533
3022
|
"type": "object",
|
|
2534
3023
|
"properties": {
|
|
@@ -2552,15 +3041,6 @@ export const MCP_TOOLS = {
|
|
|
2552
3041
|
|
|
2553
3042
|
}
|
|
2554
3043
|
},
|
|
2555
|
-
"headers": {
|
|
2556
|
-
"type": "object",
|
|
2557
|
-
"properties": {
|
|
2558
|
-
"x-reclaim-vc-id": {
|
|
2559
|
-
"type": "string",
|
|
2560
|
-
"description": "UUID of the registered Verification Client selected when the session was created. The Builder binds it to the session's immutable verificationClientId. This header identifies the client; it is not a general bearer credential. Client-reported metadata remains untrusted, and Consumers must verify every signed result with verifyResultFull."
|
|
2561
|
-
}
|
|
2562
|
-
}
|
|
2563
|
-
},
|
|
2564
3044
|
"body": {
|
|
2565
3045
|
"type": "object"
|
|
2566
3046
|
}
|
|
@@ -2618,7 +3098,7 @@ export const MCP_TOOLS = {
|
|
|
2618
3098
|
}),
|
|
2619
3099
|
},
|
|
2620
3100
|
"Providers": {
|
|
2621
|
-
description: "Search providers\n\
|
|
3101
|
+
description: "Search providers\n\nSearches existing Reclaim providers by domain or data point. A provider is the recipe an end-user follows to prove something about themselves, such as a follower count or an order history. Call this before create_provider — most popular domains already have one.",
|
|
2622
3102
|
inputSchema: toZod({
|
|
2623
3103
|
"type": "object",
|
|
2624
3104
|
"properties": {
|
|
@@ -2664,7 +3144,7 @@ export const MCP_TOOLS = {
|
|
|
2664
3144
|
}),
|
|
2665
3145
|
},
|
|
2666
3146
|
"PublishProviderVersion": {
|
|
2667
|
-
description: "Publish a draft version directly (PRIVATE providers only)\n\nPublishes a
|
|
3147
|
+
description: "Publish a draft version directly (PRIVATE providers only)\n\nPublishes a draft version straight to live. PRIVATE providers only — they need no review. For a PUBLIC provider use submit_provider_version_for_review instead.",
|
|
2668
3148
|
inputSchema: toZod({
|
|
2669
3149
|
"type": "object",
|
|
2670
3150
|
"properties": {
|
|
@@ -2715,7 +3195,7 @@ export const MCP_TOOLS = {
|
|
|
2715
3195
|
}),
|
|
2716
3196
|
},
|
|
2717
3197
|
"RequestPublicListing": {
|
|
2718
|
-
description: "Request public listing for a PRIVATE provider\n\
|
|
3198
|
+
description: "Request public listing for a PRIVATE provider\n\nAsks Reclaim staff to list a PRIVATE provider publicly. This changes the PROVIDER's visibility, not one version: once approved, every future version needs review. To ship a single version, use publish_provider_version or submit_provider_version_for_review.",
|
|
2719
3199
|
inputSchema: toZod({
|
|
2720
3200
|
"type": "object",
|
|
2721
3201
|
"properties": {
|
|
@@ -2836,7 +3316,7 @@ export const MCP_TOOLS = {
|
|
|
2836
3316
|
}),
|
|
2837
3317
|
},
|
|
2838
3318
|
"SetOrgKeypair": {
|
|
2839
|
-
description: "Set (or rotate) the organization's encryption keypair\n\
|
|
3319
|
+
description: "Set (or rotate) the organization's encryption keypair\n\nSets or rotates the organization's single secp256k1 encryption keypair from its public key, which turns on encrypted result delivery. The private key stays with the caller and is never sent. Rotating makes results encrypted to the previous key undecryptable.",
|
|
2840
3320
|
inputSchema: toZod({
|
|
2841
3321
|
"type": "object",
|
|
2842
3322
|
"properties": {
|
|
@@ -2953,7 +3433,7 @@ export const MCP_TOOLS = {
|
|
|
2953
3433
|
}),
|
|
2954
3434
|
},
|
|
2955
3435
|
"SubmitProviderVersionForReview": {
|
|
2956
|
-
description: "Submit a provider version for review\n\nSubmits a
|
|
3436
|
+
description: "Submit a provider version for review\n\nSubmits a draft or rejected version for admin review, the way a PUBLIC provider's versions go live. On a PRIVATE provider use publish_provider_version instead — those need no review.",
|
|
2957
3437
|
inputSchema: toZod({
|
|
2958
3438
|
"type": "object",
|
|
2959
3439
|
"properties": {
|
|
@@ -3004,7 +3484,7 @@ export const MCP_TOOLS = {
|
|
|
3004
3484
|
}),
|
|
3005
3485
|
},
|
|
3006
3486
|
"TransferProvider": {
|
|
3007
|
-
description: "Transfer a provider to a different workspace\n\nAdmin-only. Moves
|
|
3487
|
+
description: "Transfer a provider to a different workspace\n\nAdmin-only. Moves a provider to a different organization, preserving its slug, versions, and members. Fails if the target organization does not exist.",
|
|
3008
3488
|
inputSchema: toZod({
|
|
3009
3489
|
"type": "object",
|
|
3010
3490
|
"properties": {
|
|
@@ -3050,7 +3530,7 @@ export const MCP_TOOLS = {
|
|
|
3050
3530
|
}),
|
|
3051
3531
|
},
|
|
3052
3532
|
"UpdateOrg": {
|
|
3053
|
-
description: "Update an organization\n\
|
|
3533
|
+
description: "Update an organization\n\nUpdates an organization's name, icon, or status. Owner only, and a partial update — pass only the fields to change. Archiving an organization is a status change, not a delete.",
|
|
3054
3534
|
inputSchema: toZod({
|
|
3055
3535
|
"type": "object",
|
|
3056
3536
|
"properties": {
|
|
@@ -3108,7 +3588,7 @@ export const MCP_TOOLS = {
|
|
|
3108
3588
|
}),
|
|
3109
3589
|
},
|
|
3110
3590
|
"UpdateProvider": {
|
|
3111
|
-
description: "Update a provider\n\
|
|
3591
|
+
description: "Update a provider\n\nUpdates a provider's metadata, such as title, description, or tags. Partial update — pass only the fields to change. Requires active membership. To change the recipe (initialUrl or requests), cut a new version with create_provider_version instead.",
|
|
3112
3592
|
inputSchema: toZod({
|
|
3113
3593
|
"type": "object",
|
|
3114
3594
|
"properties": {
|