@reclaimprotocol/agent 0.1.1 → 0.1.2
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/lib/cdp/launcher.js +4 -3
- package/lib/consts.d.ts +68 -0
- package/lib/consts.js +134 -0
- package/lib/logger.js +2 -1
- package/lib/mcp/api/operations.gen.d.ts +3 -7
- package/lib/mcp/api/operations.gen.js +264 -199
- package/lib/mcp/server.d.ts +0 -6
- package/lib/mcp/server.js +0 -30
- package/lib/mcp/start.js +7 -7
- package/lib/mcp/tools/agent/build.d.ts +5 -9
- package/lib/mcp/tools/agent/build.js +5 -9
- package/lib/mcp/tools/agent/proof.js +2 -1
- package/lib/mcp/tools/agent/publish.js +166 -77
- package/lib/mcp/tools/authenticate/decrypt-key.d.ts +10 -23
- package/lib/mcp/tools/authenticate/decrypt-key.js +23 -26
- package/lib/mcp/tools/authenticate/eth-key.d.ts +0 -7
- package/lib/mcp/tools/authenticate/eth-key.js +5 -19
- package/lib/mcp/tools/authenticate/issue.js +1 -1
- package/lib/mcp/tools/verification/build.d.ts +1 -1
- package/lib/mcp/tools/verification/build.js +1 -1
- package/lib/mcp/tools/verification/result.d.ts +4 -5
- package/lib/mcp/tools/verification/result.js +17 -17
- package/lib/old/flag.d.ts +4 -1
- package/lib/old/flag.js +4 -3
- package/lib/old/identity.d.ts +0 -10
- package/lib/old/identity.js +8 -7
- package/lib/old/login-cdp.d.ts +0 -3
- package/lib/old/login-cdp.js +2 -4
- package/lib/old/to-register.js +6 -9
- package/lib/old/tools/authenticate.js +2 -1
- package/lib/old/tools/publish.js +58 -9
- package/lib/paths.js +2 -2
- package/lib/proof/attestor.js +2 -1
- package/lib/proof/proof-core.js +13 -2
- package/lib/provider/injection-doc.d.ts +1 -0
- package/lib/provider/injection-doc.js +17 -0
- package/lib/provider/match-redaction-warning.d.ts +25 -0
- package/lib/provider/match-redaction-warning.js +35 -0
- package/lib/provider/schema.d.ts +16 -0
- package/lib/provider/schema.js +11 -1
- package/lib/provider/to-version.d.ts +59 -7
- package/lib/provider/to-version.js +79 -28
- package/package.json +1 -1
- package/skill/builder-mode.md +6 -2
- package/skill/injection-api.md +42 -0
- package/skill/old-mode.md +2 -0
- package/src/cdp/launcher.ts +5 -4
- package/src/consts.ts +164 -0
- package/src/logger.ts +2 -1
- package/src/mcp/api/operations.gen.ts +262 -203
- package/src/mcp/server.ts +0 -46
- package/src/mcp/start.ts +13 -7
- package/src/mcp/tools/agent/build.ts +5 -9
- package/src/mcp/tools/agent/proof.ts +2 -1
- package/src/mcp/tools/agent/publish.ts +212 -94
- package/src/mcp/tools/authenticate/decrypt-key.ts +24 -29
- package/src/mcp/tools/authenticate/eth-key.ts +5 -25
- package/src/mcp/tools/authenticate/issue.ts +1 -1
- package/src/mcp/tools/verification/build.ts +1 -1
- package/src/mcp/tools/verification/result.ts +16 -17
- package/src/old/flag.ts +4 -3
- package/src/old/identity.ts +8 -7
- package/src/old/login-cdp.ts +2 -5
- package/src/old/to-register.ts +7 -10
- package/src/old/tools/authenticate.ts +2 -1
- package/src/old/tools/publish.ts +75 -15
- package/src/paths.ts +2 -2
- package/src/proof/attestor.ts +2 -1
- package/src/proof/proof-core.ts +13 -3
- package/src/provider/injection-doc.ts +21 -0
- package/src/provider/match-redaction-warning.ts +53 -0
- package/src/provider/schema.ts +23 -0
- package/src/provider/to-version.ts +137 -31
|
@@ -294,7 +294,7 @@ export const MCP_TOOLS = {
|
|
|
294
294
|
}),
|
|
295
295
|
},
|
|
296
296
|
"CreateCallbackSubscription": {
|
|
297
|
-
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
|
|
297
|
+
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 ECIES-encrypted to the org's eth public key when its\n`canEncryptResult` is enabled (see `PUT /orgs/{orgId}/keypair`), else\ndelivered as plaintext.\n",
|
|
298
298
|
inputSchema: toZod({
|
|
299
299
|
"type": "object",
|
|
300
300
|
"properties": {
|
|
@@ -330,11 +330,12 @@ export const MCP_TOOLS = {
|
|
|
330
330
|
"maxItems": 12,
|
|
331
331
|
"items": {
|
|
332
332
|
"type": "string",
|
|
333
|
-
"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
|
|
333
|
+
"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; provider-/request-level events are progress pings carrying a\n`provider_id` (and `request_id` for request-level ones) in their event\ndata. New values may be added over time; clients MUST tolerate unknown\nvalues 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- `verification_provider_started`: The client began verifying a provider\n (`provider_id`/`resolved_version`/`ordinal` in `eventData`). One per\n provider, in run order, for multi-provider sessions.\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.",
|
|
334
334
|
"enum": [
|
|
335
335
|
"session_pending",
|
|
336
336
|
"verification_client_opened",
|
|
337
337
|
"verification_client_ready",
|
|
338
|
+
"verification_provider_started",
|
|
338
339
|
"request_matched",
|
|
339
340
|
"request_claim_created",
|
|
340
341
|
"request_claim_completed",
|
|
@@ -378,14 +379,26 @@ export const MCP_TOOLS = {
|
|
|
378
379
|
"body": {
|
|
379
380
|
"type": "object",
|
|
380
381
|
"additionalProperties": false,
|
|
382
|
+
"description": "Body for `POST /orgs`. Explicitly-created orgs must declare their Ethereum (secp256k1) encryption public key — it identifies the org and, when `canEncryptResult` is enabled, encrypts delivered results.",
|
|
381
383
|
"required": [
|
|
382
|
-
"name"
|
|
384
|
+
"name",
|
|
385
|
+
"publicKey"
|
|
383
386
|
],
|
|
384
387
|
"properties": {
|
|
385
388
|
"name": {
|
|
386
389
|
"type": "string",
|
|
387
390
|
"minLength": 1,
|
|
388
391
|
"maxLength": 200
|
|
392
|
+
},
|
|
393
|
+
"publicKey": {
|
|
394
|
+
"type": "string",
|
|
395
|
+
"description": "The org's eth public key, uncompressed hex (`0x04` + 128 hex) — the eth-native form wallets/ethers emit. The matching private key never leaves the consumer.",
|
|
396
|
+
"pattern": "^0x04[0-9a-fA-F]{128}$"
|
|
397
|
+
},
|
|
398
|
+
"canEncryptResult": {
|
|
399
|
+
"type": "boolean",
|
|
400
|
+
"description": "When true, terminal results are ECIES-encrypted to this key; when false (the default), they are delivered as plaintext.",
|
|
401
|
+
"default": false
|
|
389
402
|
}
|
|
390
403
|
}
|
|
391
404
|
}
|
|
@@ -442,11 +455,12 @@ export const MCP_TOOLS = {
|
|
|
442
455
|
"maxItems": 12,
|
|
443
456
|
"items": {
|
|
444
457
|
"type": "string",
|
|
445
|
-
"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
|
|
458
|
+
"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; provider-/request-level events are progress pings carrying a\n`provider_id` (and `request_id` for request-level ones) in their event\ndata. New values may be added over time; clients MUST tolerate unknown\nvalues 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- `verification_provider_started`: The client began verifying a provider\n (`provider_id`/`resolved_version`/`ordinal` in `eventData`). One per\n provider, in run order, for multi-provider sessions.\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.",
|
|
446
459
|
"enum": [
|
|
447
460
|
"session_pending",
|
|
448
461
|
"verification_client_opened",
|
|
449
462
|
"verification_client_ready",
|
|
463
|
+
"verification_provider_started",
|
|
450
464
|
"request_matched",
|
|
451
465
|
"request_claim_created",
|
|
452
466
|
"request_claim_completed",
|
|
@@ -753,9 +767,9 @@ export const MCP_TOOLS = {
|
|
|
753
767
|
}
|
|
754
768
|
}
|
|
755
769
|
},
|
|
756
|
-
"
|
|
770
|
+
"responseMatches": {
|
|
757
771
|
"type": "array",
|
|
758
|
-
"description": "
|
|
772
|
+
"description": "Conditions the (redacted) response must satisfy for the proof to be valid. Each runs against the union of the portions revealed by `responseRedactions` (or the whole response when there are none). Mirrors attestor-core `responseMatches`.",
|
|
759
773
|
"minItems": 1,
|
|
760
774
|
"items": {
|
|
761
775
|
"type": "object",
|
|
@@ -793,33 +807,38 @@ export const MCP_TOOLS = {
|
|
|
793
807
|
"value": {
|
|
794
808
|
"type": "string",
|
|
795
809
|
"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."
|
|
810
|
+
}
|
|
811
|
+
}
|
|
812
|
+
}
|
|
813
|
+
},
|
|
814
|
+
"responseRedactions": {
|
|
815
|
+
"type": "array",
|
|
816
|
+
"description": "Portions to select/reveal from the response, applied in order (xPath => jsonPath => regex). Done client-side; only the selected portions (plus the first response line) are sent to the attestor. An independent ordered list — NOT paired 1:1 with `responseMatches`. Mirrors attestor-core `responseRedactions`.",
|
|
817
|
+
"items": {
|
|
818
|
+
"type": "object",
|
|
819
|
+
"additionalProperties": false,
|
|
820
|
+
"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\")",
|
|
821
|
+
"properties": {
|
|
822
|
+
"xPath": {
|
|
823
|
+
"type": "string",
|
|
824
|
+
"description": "expect an HTML response, and to contain a certain xpath for eg. \"/html/body/div.a1/div.a2/span.a5\""
|
|
796
825
|
},
|
|
797
|
-
"
|
|
798
|
-
"type": "
|
|
799
|
-
"description": "
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
"
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
"hash": {
|
|
814
|
-
"type": "string",
|
|
815
|
-
"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.",
|
|
816
|
-
"enum": [
|
|
817
|
-
"oprf",
|
|
818
|
-
"oprf-mpc",
|
|
819
|
-
"oprf-raw"
|
|
820
|
-
]
|
|
821
|
-
}
|
|
822
|
-
}
|
|
826
|
+
"jsonPath": {
|
|
827
|
+
"type": "string",
|
|
828
|
+
"description": "expect a JSON response, retrieve the item at this path using dot notation for e.g. 'email.addresses.0'"
|
|
829
|
+
},
|
|
830
|
+
"regex": {
|
|
831
|
+
"type": "string",
|
|
832
|
+
"description": "select a regex match from the response"
|
|
833
|
+
},
|
|
834
|
+
"hash": {
|
|
835
|
+
"type": "string",
|
|
836
|
+
"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.",
|
|
837
|
+
"enum": [
|
|
838
|
+
"oprf",
|
|
839
|
+
"oprf-mpc",
|
|
840
|
+
"oprf-raw"
|
|
841
|
+
]
|
|
823
842
|
}
|
|
824
843
|
}
|
|
825
844
|
}
|
|
@@ -904,9 +923,9 @@ export const MCP_TOOLS = {
|
|
|
904
923
|
}
|
|
905
924
|
}
|
|
906
925
|
},
|
|
907
|
-
"
|
|
926
|
+
"responseMatches": {
|
|
908
927
|
"type": "array",
|
|
909
|
-
"description": "
|
|
928
|
+
"description": "Conditions the (redacted) response must satisfy for the proof to be valid. Each runs against the union of the portions revealed by `responseRedactions` (or the whole response when there are none). Mirrors attestor-core `responseMatches`.",
|
|
910
929
|
"minItems": 1,
|
|
911
930
|
"items": {
|
|
912
931
|
"type": "object",
|
|
@@ -944,33 +963,38 @@ export const MCP_TOOLS = {
|
|
|
944
963
|
"value": {
|
|
945
964
|
"type": "string",
|
|
946
965
|
"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."
|
|
966
|
+
}
|
|
967
|
+
}
|
|
968
|
+
}
|
|
969
|
+
},
|
|
970
|
+
"responseRedactions": {
|
|
971
|
+
"type": "array",
|
|
972
|
+
"description": "Portions to select/reveal from the response, applied in order (xPath => jsonPath => regex). Done client-side; only the selected portions (plus the first response line) are sent to the attestor. An independent ordered list — NOT paired 1:1 with `responseMatches`. Mirrors attestor-core `responseRedactions`.",
|
|
973
|
+
"items": {
|
|
974
|
+
"type": "object",
|
|
975
|
+
"additionalProperties": false,
|
|
976
|
+
"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\")",
|
|
977
|
+
"properties": {
|
|
978
|
+
"xPath": {
|
|
979
|
+
"type": "string",
|
|
980
|
+
"description": "expect an HTML response, and to contain a certain xpath for eg. \"/html/body/div.a1/div.a2/span.a5\""
|
|
947
981
|
},
|
|
948
|
-
"
|
|
949
|
-
"type": "
|
|
950
|
-
"description": "
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
"
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
"hash": {
|
|
965
|
-
"type": "string",
|
|
966
|
-
"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.",
|
|
967
|
-
"enum": [
|
|
968
|
-
"oprf",
|
|
969
|
-
"oprf-mpc",
|
|
970
|
-
"oprf-raw"
|
|
971
|
-
]
|
|
972
|
-
}
|
|
973
|
-
}
|
|
982
|
+
"jsonPath": {
|
|
983
|
+
"type": "string",
|
|
984
|
+
"description": "expect a JSON response, retrieve the item at this path using dot notation for e.g. 'email.addresses.0'"
|
|
985
|
+
},
|
|
986
|
+
"regex": {
|
|
987
|
+
"type": "string",
|
|
988
|
+
"description": "select a regex match from the response"
|
|
989
|
+
},
|
|
990
|
+
"hash": {
|
|
991
|
+
"type": "string",
|
|
992
|
+
"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.",
|
|
993
|
+
"enum": [
|
|
994
|
+
"oprf",
|
|
995
|
+
"oprf-mpc",
|
|
996
|
+
"oprf-raw"
|
|
997
|
+
]
|
|
974
998
|
}
|
|
975
999
|
}
|
|
976
1000
|
}
|
|
@@ -1134,30 +1158,45 @@ export const MCP_TOOLS = {
|
|
|
1134
1158
|
"body": {
|
|
1135
1159
|
"type": "object",
|
|
1136
1160
|
"additionalProperties": false,
|
|
1137
|
-
"description": "Body for `POST /verifications/sessions`. Authenticated by the consumer's `OrgToken`. Carries no callback URLs — they come from the org's callback subscriptions.",
|
|
1161
|
+
"description": "Body for `POST /verifications/sessions`. Authenticated by the consumer's `OrgToken`. Carries no callback URLs — they come from the org's callback subscriptions. The one shared `context` is validated against every provider's `requiredContext`.",
|
|
1138
1162
|
"required": [
|
|
1139
|
-
"
|
|
1163
|
+
"providers",
|
|
1140
1164
|
"context",
|
|
1141
1165
|
"verificationClientUrl"
|
|
1142
1166
|
],
|
|
1143
1167
|
"properties": {
|
|
1144
|
-
"
|
|
1145
|
-
"type": "
|
|
1146
|
-
"
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1168
|
+
"providers": {
|
|
1169
|
+
"type": "array",
|
|
1170
|
+
"minItems": 1,
|
|
1171
|
+
"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.",
|
|
1172
|
+
"items": {
|
|
1173
|
+
"type": "object",
|
|
1174
|
+
"additionalProperties": false,
|
|
1175
|
+
"description": "A provider (+ optional version) to verify in a session.",
|
|
1176
|
+
"required": [
|
|
1177
|
+
"providerId"
|
|
1178
|
+
],
|
|
1179
|
+
"properties": {
|
|
1180
|
+
"providerId": {
|
|
1181
|
+
"type": "string",
|
|
1182
|
+
"format": "uuid"
|
|
1183
|
+
},
|
|
1184
|
+
"version": {
|
|
1185
|
+
"type": "string",
|
|
1186
|
+
"description": "Semver constraint; empty resolves to the latest trunk version.",
|
|
1187
|
+
"maxLength": 64
|
|
1188
|
+
}
|
|
1189
|
+
}
|
|
1190
|
+
}
|
|
1152
1191
|
},
|
|
1153
1192
|
"context": {
|
|
1154
1193
|
"type": "object",
|
|
1155
1194
|
"additionalProperties": true,
|
|
1156
|
-
"description": "Consumer context. Validated against
|
|
1195
|
+
"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 reference these values as `{{context.<key>}}`. Echoed back (plus `reclaimSessionId`) in the result."
|
|
1157
1196
|
},
|
|
1158
1197
|
"verificationClientUrl": {
|
|
1159
1198
|
"type": "string",
|
|
1160
|
-
"description": "Must contain a `{sessionId}` placeholder.",
|
|
1199
|
+
"description": "Must contain a `{sessionId}` placeholder. Must be an http(s) URL.",
|
|
1161
1200
|
"maxLength": 2000
|
|
1162
1201
|
}
|
|
1163
1202
|
}
|
|
@@ -1309,8 +1348,8 @@ export const MCP_TOOLS = {
|
|
|
1309
1348
|
"additionalProperties": false
|
|
1310
1349
|
}),
|
|
1311
1350
|
},
|
|
1312
|
-
"
|
|
1313
|
-
description: "Clear the organization's encryption
|
|
1351
|
+
"DeleteOrgKeypair": {
|
|
1352
|
+
description: "Clear the organization's encryption keypair\n\nRemoves the organization's encryption keypair (the org reverts to keyless ⇒ plaintext delivery, and loses its eth identity address) until a new keypair is set. Authenticated by the org's `OrgToken` or a human `BearerAuth` session for an active member of the org.",
|
|
1314
1353
|
inputSchema: toZod({
|
|
1315
1354
|
"type": "object",
|
|
1316
1355
|
"properties": {
|
|
@@ -1527,7 +1566,17 @@ export const MCP_TOOLS = {
|
|
|
1527
1566
|
"query": {
|
|
1528
1567
|
"type": "object",
|
|
1529
1568
|
"properties": {
|
|
1530
|
-
|
|
1569
|
+
"tab": {
|
|
1570
|
+
"type": "string",
|
|
1571
|
+
"enum": [
|
|
1572
|
+
"connect",
|
|
1573
|
+
"providers",
|
|
1574
|
+
"members",
|
|
1575
|
+
"themes",
|
|
1576
|
+
"sessions",
|
|
1577
|
+
"billing"
|
|
1578
|
+
]
|
|
1579
|
+
}
|
|
1531
1580
|
}
|
|
1532
1581
|
},
|
|
1533
1582
|
"body": {
|
|
@@ -1576,8 +1625,8 @@ export const MCP_TOOLS = {
|
|
|
1576
1625
|
"additionalProperties": false
|
|
1577
1626
|
}),
|
|
1578
1627
|
},
|
|
1579
|
-
"
|
|
1580
|
-
description: "Get the organization's encryption
|
|
1628
|
+
"GetOrgKeypair": {
|
|
1629
|
+
description: "Get the organization's encryption keypair\n\nReturns the organization's single Ethereum (secp256k1) encryption keypair — its public JWK, derived eth address, and `canEncryptResult` flag — or `404` when none is set (the org is keyless ⇒ plaintext delivery). Authenticated by the org's `OrgToken` or a human `BearerAuth` session for an active member of the org.",
|
|
1581
1630
|
inputSchema: toZod({
|
|
1582
1631
|
"type": "object",
|
|
1583
1632
|
"properties": {
|
|
@@ -2190,7 +2239,6 @@ export const MCP_TOOLS = {
|
|
|
2190
2239
|
"properties": {
|
|
2191
2240
|
"q": {
|
|
2192
2241
|
"type": "string",
|
|
2193
|
-
"minLength": 1,
|
|
2194
2242
|
"maxLength": 200
|
|
2195
2243
|
},
|
|
2196
2244
|
"tag": {
|
|
@@ -2353,8 +2401,8 @@ export const MCP_TOOLS = {
|
|
|
2353
2401
|
"additionalProperties": false
|
|
2354
2402
|
}),
|
|
2355
2403
|
},
|
|
2356
|
-
"
|
|
2357
|
-
description: "Set (or
|
|
2404
|
+
"SetOrgKeypair": {
|
|
2405
|
+
description: "Set (or rotate) the organization's encryption keypair\n\nUpserts the organization's single Ethereum (secp256k1) encryption keypair. The body carries the org's **eth public key** — as an uncompressed hex string (`0x04`+128 hex) or a secp256k1 public JWK (`{kty:'EC', crv:'secp256k1', x, y}`) — and `canEncryptResult`. The matching private key never leaves the consumer. Setting overwrites the single row (and creates it for a keyless org). When `canEncryptResult` is true, terminal results are delivered as an ECIES ciphertext encrypted to this key; otherwise plaintext. Authenticated by the org's `OrgToken` or a human `BearerAuth` session for an active member of the org.",
|
|
2358
2406
|
inputSchema: toZod({
|
|
2359
2407
|
"type": "object",
|
|
2360
2408
|
"properties": {
|
|
@@ -2378,49 +2426,88 @@ export const MCP_TOOLS = {
|
|
|
2378
2426
|
}
|
|
2379
2427
|
},
|
|
2380
2428
|
"body": {
|
|
2381
|
-
"
|
|
2382
|
-
|
|
2383
|
-
"description": "Body for `PUT /orgs/{orgId}/credential`.",
|
|
2384
|
-
"required": [
|
|
2385
|
-
"publicKeyJwk"
|
|
2386
|
-
],
|
|
2387
|
-
"properties": {
|
|
2388
|
-
"publicKeyJwk": {
|
|
2429
|
+
"oneOf": [
|
|
2430
|
+
{
|
|
2389
2431
|
"type": "object",
|
|
2390
2432
|
"additionalProperties": false,
|
|
2391
|
-
"description": "
|
|
2433
|
+
"description": "Body for `PUT /orgs/{orgId}/keypair`. Carries the org's eth public key as an uncompressed hex string (`0x04` + 128 hex) — the eth-native form wallets/ethers emit. The matching private key never leaves the consumer.",
|
|
2392
2434
|
"required": [
|
|
2393
|
-
"
|
|
2394
|
-
"crv",
|
|
2395
|
-
"x"
|
|
2435
|
+
"publicKey"
|
|
2396
2436
|
],
|
|
2397
2437
|
"properties": {
|
|
2398
|
-
"
|
|
2438
|
+
"publicKey": {
|
|
2399
2439
|
"type": "string",
|
|
2400
|
-
"
|
|
2401
|
-
|
|
2402
|
-
]
|
|
2440
|
+
"description": "Uncompressed secp256k1 public key, `0x04` + 128 hex.",
|
|
2441
|
+
"pattern": "^0x04[0-9a-fA-F]{128}$"
|
|
2403
2442
|
},
|
|
2404
|
-
"
|
|
2405
|
-
"type": "
|
|
2406
|
-
"
|
|
2407
|
-
"X25519"
|
|
2408
|
-
]
|
|
2443
|
+
"canEncryptResult": {
|
|
2444
|
+
"type": "boolean",
|
|
2445
|
+
"default": false
|
|
2409
2446
|
},
|
|
2410
|
-
"
|
|
2447
|
+
"label": {
|
|
2411
2448
|
"type": "string",
|
|
2412
|
-
"description": "base64url-encoded public key bytes.",
|
|
2413
2449
|
"minLength": 1,
|
|
2414
|
-
"maxLength":
|
|
2450
|
+
"maxLength": 100
|
|
2415
2451
|
}
|
|
2416
2452
|
}
|
|
2417
2453
|
},
|
|
2418
|
-
|
|
2419
|
-
"type": "
|
|
2420
|
-
"
|
|
2421
|
-
"
|
|
2454
|
+
{
|
|
2455
|
+
"type": "object",
|
|
2456
|
+
"additionalProperties": false,
|
|
2457
|
+
"description": "Body for `PUT /orgs/{orgId}/keypair`. Carries the org's eth public key as a secp256k1 public JWK.",
|
|
2458
|
+
"required": [
|
|
2459
|
+
"publicKeyJwk"
|
|
2460
|
+
],
|
|
2461
|
+
"properties": {
|
|
2462
|
+
"publicKeyJwk": {
|
|
2463
|
+
"type": "object",
|
|
2464
|
+
"additionalProperties": false,
|
|
2465
|
+
"description": "A secp256k1 (Ethereum) public key in JWK form (`{kty:'EC', crv:'secp256k1', x, y}`), used to ECIES-encrypt delivered verification results and to identify the org. The matching private key never leaves the consumer. Same shape published by the signing JWKS.",
|
|
2466
|
+
"required": [
|
|
2467
|
+
"kty",
|
|
2468
|
+
"crv",
|
|
2469
|
+
"x",
|
|
2470
|
+
"y"
|
|
2471
|
+
],
|
|
2472
|
+
"properties": {
|
|
2473
|
+
"kty": {
|
|
2474
|
+
"type": "string",
|
|
2475
|
+
"enum": [
|
|
2476
|
+
"EC"
|
|
2477
|
+
]
|
|
2478
|
+
},
|
|
2479
|
+
"crv": {
|
|
2480
|
+
"type": "string",
|
|
2481
|
+
"enum": [
|
|
2482
|
+
"secp256k1"
|
|
2483
|
+
]
|
|
2484
|
+
},
|
|
2485
|
+
"x": {
|
|
2486
|
+
"type": "string",
|
|
2487
|
+
"description": "base64url-encoded X coordinate (32 bytes).",
|
|
2488
|
+
"minLength": 1,
|
|
2489
|
+
"maxLength": 64
|
|
2490
|
+
},
|
|
2491
|
+
"y": {
|
|
2492
|
+
"type": "string",
|
|
2493
|
+
"description": "base64url-encoded Y coordinate (32 bytes).",
|
|
2494
|
+
"minLength": 1,
|
|
2495
|
+
"maxLength": 64
|
|
2496
|
+
}
|
|
2497
|
+
}
|
|
2498
|
+
},
|
|
2499
|
+
"canEncryptResult": {
|
|
2500
|
+
"type": "boolean",
|
|
2501
|
+
"default": false
|
|
2502
|
+
},
|
|
2503
|
+
"label": {
|
|
2504
|
+
"type": "string",
|
|
2505
|
+
"minLength": 1,
|
|
2506
|
+
"maxLength": 100
|
|
2507
|
+
}
|
|
2508
|
+
}
|
|
2422
2509
|
}
|
|
2423
|
-
|
|
2510
|
+
]
|
|
2424
2511
|
}
|
|
2425
2512
|
},
|
|
2426
2513
|
"required": [
|
|
@@ -2528,44 +2615,6 @@ export const MCP_TOOLS = {
|
|
|
2528
2615
|
"additionalProperties": false
|
|
2529
2616
|
}),
|
|
2530
2617
|
},
|
|
2531
|
-
"UpdateMe": {
|
|
2532
|
-
description: "Update the authenticated user's profile",
|
|
2533
|
-
inputSchema: toZod({
|
|
2534
|
-
"type": "object",
|
|
2535
|
-
"properties": {
|
|
2536
|
-
"params": {
|
|
2537
|
-
"type": "object",
|
|
2538
|
-
"properties": {
|
|
2539
|
-
|
|
2540
|
-
}
|
|
2541
|
-
},
|
|
2542
|
-
"query": {
|
|
2543
|
-
"type": "object",
|
|
2544
|
-
"properties": {
|
|
2545
|
-
|
|
2546
|
-
}
|
|
2547
|
-
},
|
|
2548
|
-
"body": {
|
|
2549
|
-
"type": "object",
|
|
2550
|
-
"additionalProperties": false,
|
|
2551
|
-
"description": "Caller-editable fields on the authenticated user.",
|
|
2552
|
-
"properties": {
|
|
2553
|
-
"name": {
|
|
2554
|
-
"type": "string",
|
|
2555
|
-
"minLength": 1,
|
|
2556
|
-
"maxLength": 200
|
|
2557
|
-
}
|
|
2558
|
-
}
|
|
2559
|
-
}
|
|
2560
|
-
},
|
|
2561
|
-
"required": [
|
|
2562
|
-
"params",
|
|
2563
|
-
"query",
|
|
2564
|
-
"body"
|
|
2565
|
-
],
|
|
2566
|
-
"additionalProperties": false
|
|
2567
|
-
}),
|
|
2568
|
-
},
|
|
2569
2618
|
"UpdateOrg": {
|
|
2570
2619
|
description: "Update an organization\n\nOwner only.",
|
|
2571
2620
|
inputSchema: toZod({
|
|
@@ -2935,9 +2984,9 @@ export const MCP_TOOLS = {
|
|
|
2935
2984
|
}
|
|
2936
2985
|
}
|
|
2937
2986
|
},
|
|
2938
|
-
"
|
|
2987
|
+
"responseMatches": {
|
|
2939
2988
|
"type": "array",
|
|
2940
|
-
"description": "
|
|
2989
|
+
"description": "Conditions the (redacted) response must satisfy for the proof to be valid. Each runs against the union of the portions revealed by `responseRedactions` (or the whole response when there are none). Mirrors attestor-core `responseMatches`.",
|
|
2941
2990
|
"minItems": 1,
|
|
2942
2991
|
"items": {
|
|
2943
2992
|
"type": "object",
|
|
@@ -2975,33 +3024,38 @@ export const MCP_TOOLS = {
|
|
|
2975
3024
|
"value": {
|
|
2976
3025
|
"type": "string",
|
|
2977
3026
|
"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."
|
|
3027
|
+
}
|
|
3028
|
+
}
|
|
3029
|
+
}
|
|
3030
|
+
},
|
|
3031
|
+
"responseRedactions": {
|
|
3032
|
+
"type": "array",
|
|
3033
|
+
"description": "Portions to select/reveal from the response, applied in order (xPath => jsonPath => regex). Done client-side; only the selected portions (plus the first response line) are sent to the attestor. An independent ordered list — NOT paired 1:1 with `responseMatches`. Mirrors attestor-core `responseRedactions`.",
|
|
3034
|
+
"items": {
|
|
3035
|
+
"type": "object",
|
|
3036
|
+
"additionalProperties": false,
|
|
3037
|
+
"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\")",
|
|
3038
|
+
"properties": {
|
|
3039
|
+
"xPath": {
|
|
3040
|
+
"type": "string",
|
|
3041
|
+
"description": "expect an HTML response, and to contain a certain xpath for eg. \"/html/body/div.a1/div.a2/span.a5\""
|
|
2978
3042
|
},
|
|
2979
|
-
"
|
|
2980
|
-
"type": "
|
|
2981
|
-
"description": "
|
|
2982
|
-
|
|
2983
|
-
|
|
2984
|
-
|
|
2985
|
-
|
|
2986
|
-
|
|
2987
|
-
|
|
2988
|
-
|
|
2989
|
-
|
|
2990
|
-
|
|
2991
|
-
"
|
|
2992
|
-
|
|
2993
|
-
|
|
2994
|
-
|
|
2995
|
-
"hash": {
|
|
2996
|
-
"type": "string",
|
|
2997
|
-
"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.",
|
|
2998
|
-
"enum": [
|
|
2999
|
-
"oprf",
|
|
3000
|
-
"oprf-mpc",
|
|
3001
|
-
"oprf-raw"
|
|
3002
|
-
]
|
|
3003
|
-
}
|
|
3004
|
-
}
|
|
3043
|
+
"jsonPath": {
|
|
3044
|
+
"type": "string",
|
|
3045
|
+
"description": "expect a JSON response, retrieve the item at this path using dot notation for e.g. 'email.addresses.0'"
|
|
3046
|
+
},
|
|
3047
|
+
"regex": {
|
|
3048
|
+
"type": "string",
|
|
3049
|
+
"description": "select a regex match from the response"
|
|
3050
|
+
},
|
|
3051
|
+
"hash": {
|
|
3052
|
+
"type": "string",
|
|
3053
|
+
"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.",
|
|
3054
|
+
"enum": [
|
|
3055
|
+
"oprf",
|
|
3056
|
+
"oprf-mpc",
|
|
3057
|
+
"oprf-raw"
|
|
3058
|
+
]
|
|
3005
3059
|
}
|
|
3006
3060
|
}
|
|
3007
3061
|
}
|
|
@@ -3083,9 +3137,9 @@ export const MCP_TOOLS = {
|
|
|
3083
3137
|
}
|
|
3084
3138
|
}
|
|
3085
3139
|
},
|
|
3086
|
-
"
|
|
3140
|
+
"responseMatches": {
|
|
3087
3141
|
"type": "array",
|
|
3088
|
-
"description": "
|
|
3142
|
+
"description": "Conditions the (redacted) response must satisfy for the proof to be valid. Each runs against the union of the portions revealed by `responseRedactions` (or the whole response when there are none). Mirrors attestor-core `responseMatches`.",
|
|
3089
3143
|
"minItems": 1,
|
|
3090
3144
|
"items": {
|
|
3091
3145
|
"type": "object",
|
|
@@ -3123,33 +3177,38 @@ export const MCP_TOOLS = {
|
|
|
3123
3177
|
"value": {
|
|
3124
3178
|
"type": "string",
|
|
3125
3179
|
"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."
|
|
3180
|
+
}
|
|
3181
|
+
}
|
|
3182
|
+
}
|
|
3183
|
+
},
|
|
3184
|
+
"responseRedactions": {
|
|
3185
|
+
"type": "array",
|
|
3186
|
+
"description": "Portions to select/reveal from the response, applied in order (xPath => jsonPath => regex). Done client-side; only the selected portions (plus the first response line) are sent to the attestor. An independent ordered list — NOT paired 1:1 with `responseMatches`. Mirrors attestor-core `responseRedactions`.",
|
|
3187
|
+
"items": {
|
|
3188
|
+
"type": "object",
|
|
3189
|
+
"additionalProperties": false,
|
|
3190
|
+
"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\")",
|
|
3191
|
+
"properties": {
|
|
3192
|
+
"xPath": {
|
|
3193
|
+
"type": "string",
|
|
3194
|
+
"description": "expect an HTML response, and to contain a certain xpath for eg. \"/html/body/div.a1/div.a2/span.a5\""
|
|
3195
|
+
},
|
|
3196
|
+
"jsonPath": {
|
|
3197
|
+
"type": "string",
|
|
3198
|
+
"description": "expect a JSON response, retrieve the item at this path using dot notation for e.g. 'email.addresses.0'"
|
|
3199
|
+
},
|
|
3200
|
+
"regex": {
|
|
3201
|
+
"type": "string",
|
|
3202
|
+
"description": "select a regex match from the response"
|
|
3126
3203
|
},
|
|
3127
|
-
"
|
|
3128
|
-
"type": "
|
|
3129
|
-
"description": "
|
|
3130
|
-
"
|
|
3131
|
-
"
|
|
3132
|
-
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
"jsonPath": {
|
|
3136
|
-
"type": "string",
|
|
3137
|
-
"description": "expect a JSON response, retrieve the item at this path using dot notation for e.g. 'email.addresses.0'"
|
|
3138
|
-
},
|
|
3139
|
-
"regex": {
|
|
3140
|
-
"type": "string",
|
|
3141
|
-
"description": "select a regex match from the response"
|
|
3142
|
-
},
|
|
3143
|
-
"hash": {
|
|
3144
|
-
"type": "string",
|
|
3145
|
-
"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.",
|
|
3146
|
-
"enum": [
|
|
3147
|
-
"oprf",
|
|
3148
|
-
"oprf-mpc",
|
|
3149
|
-
"oprf-raw"
|
|
3150
|
-
]
|
|
3151
|
-
}
|
|
3152
|
-
}
|
|
3204
|
+
"hash": {
|
|
3205
|
+
"type": "string",
|
|
3206
|
+
"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.",
|
|
3207
|
+
"enum": [
|
|
3208
|
+
"oprf",
|
|
3209
|
+
"oprf-mpc",
|
|
3210
|
+
"oprf-raw"
|
|
3211
|
+
]
|
|
3153
3212
|
}
|
|
3154
3213
|
}
|
|
3155
3214
|
}
|