@didcid/mcp-server 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/README.md CHANGED
@@ -38,42 +38,270 @@ Example MCP client config:
38
38
  | `ARCHON_WALLET_PATH` | `./wallet.json` | Wallet file path |
39
39
  | `ARCHON_PASSPHRASE` | unset | Required for wallet-backed tools; node health tools work without it |
40
40
  | `ARCHON_DEFAULT_REGISTRY` | Keymaster default | Default registry for new DIDs |
41
- | `ARCHON_MCP_READ_ONLY` | `false` | Set to `true` to block mutating tools |
41
+ | `ARCHON_MCP_READ_ONLY` | `false` | Set to `true` to omit mutating tools from `tools/list` |
42
42
 
43
43
  ## Tools
44
44
 
45
- Read tools:
45
+ The MCP server maps every Keymaster CLI command to one MCP tool. Tool names use the CLI command with `archon_` prefixed and hyphens changed to underscores.
46
+
47
+ MCP-only helper tools:
46
48
 
47
49
  - `archon_get_version`
48
50
  - `archon_get_status`
49
- - `archon_list_registries`
50
- - `archon_list_ids`
51
51
  - `archon_get_current_id`
52
- - `archon_resolve_did`
53
- - `archon_resolve_id`
54
- - `archon_list_aliases`
55
- - `archon_get_alias`
56
- - `archon_list_addresses`
57
- - `archon_check_address`
58
- - `archon_list_assets`
59
- - `archon_get_asset`
60
-
61
- Mutating tools:
62
-
63
- - `archon_use_id`
64
- - `archon_create_id`
65
- - `archon_add_alias`
66
- - `archon_remove_alias`
67
- - `archon_add_address`
68
- - `archon_remove_address`
69
- - `archon_publish_address`
70
- - `archon_unpublish_address`
71
- - `archon_create_asset_json`
72
- - `archon_update_asset_json`
73
- - `archon_transfer_asset`
52
+
53
+ CLI file commands use inline data instead of arbitrary local paths. Binary/text payloads use:
54
+
55
+ ```json
56
+ {
57
+ "name": "example.txt",
58
+ "mimeType": "text/plain",
59
+ "encoding": "base64",
60
+ "data": "aGVsbG8="
61
+ }
62
+ ```
63
+
64
+ Use `"encoding": "utf8"` when passing plain text directly. Returned file-like data uses the same shape with base64 encoding.
65
+
66
+ Destructive tools require `"confirm": true`, secret-revealing tools require `"reveal": true`, and Lightning payment/broadcast tools require `"confirmPayment": true`.
74
67
 
75
68
  Set `ARCHON_MCP_READ_ONLY=true` to omit mutating tools from the advertised MCP tool list.
76
69
 
77
- ## Intentionally omitted from v1
70
+ ## Examples
71
+
72
+ Create an ID:
73
+
74
+ ```json
75
+ {
76
+ "name": "archon_create_id",
77
+ "arguments": {
78
+ "name": "alice",
79
+ "registry": "hyperswarm"
80
+ }
81
+ }
82
+ ```
83
+
84
+ Rotate the current ID keys:
85
+
86
+ ```json
87
+ {
88
+ "name": "archon_rotate_keys",
89
+ "arguments": {
90
+ "confirm": true
91
+ }
92
+ }
93
+ ```
94
+
95
+ Create a JSON asset:
96
+
97
+ ```json
98
+ {
99
+ "name": "archon_create_asset_json",
100
+ "arguments": {
101
+ "data": {
102
+ "title": "Example",
103
+ "status": "draft"
104
+ },
105
+ "alias": "example-asset"
106
+ }
107
+ }
108
+ ```
109
+
110
+ Create a file asset from inline data:
111
+
112
+ ```json
113
+ {
114
+ "name": "archon_create_asset_file",
115
+ "arguments": {
116
+ "file": {
117
+ "name": "hello.txt",
118
+ "mimeType": "text/plain",
119
+ "encoding": "utf8",
120
+ "data": "hello"
121
+ },
122
+ "alias": "hello-file"
123
+ }
124
+ }
125
+ ```
126
+
127
+ Issue a credential from inline JSON:
128
+
129
+ ```json
130
+ {
131
+ "name": "archon_issue_credential",
132
+ "arguments": {
133
+ "credential": {
134
+ "@context": ["https://www.w3.org/ns/credentials/v2"],
135
+ "type": ["VerifiableCredential"],
136
+ "issuer": "did:cid:issuer",
137
+ "credentialSubject": {
138
+ "id": "did:cid:subject"
139
+ }
140
+ }
141
+ }
142
+ }
143
+ ```
144
+
145
+ Reveal a credential in the current ID manifest:
146
+
147
+ ```json
148
+ {
149
+ "name": "archon_reveal_credential",
150
+ "arguments": {
151
+ "did": "did:cid:credential",
152
+ "reveal": true
153
+ }
154
+ }
155
+ ```
156
+
157
+ Pay a Lightning invoice:
158
+
159
+ ```json
160
+ {
161
+ "name": "archon_lightning_pay",
162
+ "arguments": {
163
+ "bolt11": "lnbc...",
164
+ "confirmPayment": true
165
+ }
166
+ }
167
+ ```
168
+
169
+ ### Keymaster CLI mapping
78
170
 
79
- The v1 server does not expose wallet creation/recovery/mnemonic/passphrase tools, Gatekeeper admin tools, credentials, vaults, dmail, Nostr, Lightning, polls, groups, schemas, or binary file/image asset tools.
171
+ | CLI command | MCP tool |
172
+ | --- | --- |
173
+ | `create-wallet` | `archon_create_wallet` |
174
+ | `new-wallet` | `archon_new_wallet` |
175
+ | `change-passphrase` | `archon_change_passphrase` |
176
+ | `check-wallet` | `archon_check_wallet` |
177
+ | `fix-wallet` | `archon_fix_wallet` |
178
+ | `import-wallet` | `archon_import_wallet` |
179
+ | `show-wallet` | `archon_show_wallet` |
180
+ | `backup-wallet-file` | `archon_backup_wallet_file` |
181
+ | `restore-wallet-file` | `archon_restore_wallet_file` |
182
+ | `show-mnemonic` | `archon_show_mnemonic` |
183
+ | `backup-wallet-did` | `archon_backup_wallet_did` |
184
+ | `recover-wallet-did` | `archon_recover_wallet_did` |
185
+ | `create-id` | `archon_create_id` |
186
+ | `resolve-id` | `archon_resolve_id` |
187
+ | `backup-id` | `archon_backup_id` |
188
+ | `recover-id` | `archon_recover_id` |
189
+ | `remove-id` | `archon_remove_id` |
190
+ | `rename-id` | `archon_rename_id` |
191
+ | `list-ids` | `archon_list_ids` |
192
+ | `list-registries` | `archon_list_registries` |
193
+ | `use-id` | `archon_use_id` |
194
+ | `rotate-keys` | `archon_rotate_keys` |
195
+ | `resolve-did` | `archon_resolve_did` |
196
+ | `resolve-did-version` | `archon_resolve_did_version` |
197
+ | `revoke-did` | `archon_revoke_did` |
198
+ | `change-registry` | `archon_change_registry` |
199
+ | `encrypt-message` | `archon_encrypt_message` |
200
+ | `encrypt-file` | `archon_encrypt_file` |
201
+ | `decrypt-did` | `archon_decrypt_did` |
202
+ | `decrypt-json` | `archon_decrypt_json` |
203
+ | `sign-file` | `archon_sign_file` |
204
+ | `verify-file` | `archon_verify_file` |
205
+ | `create-challenge` | `archon_create_challenge` |
206
+ | `create-challenge-cc` | `archon_create_challenge_cc` |
207
+ | `create-response` | `archon_create_response` |
208
+ | `verify-response` | `archon_verify_response` |
209
+ | `bind-credential` | `archon_bind_credential` |
210
+ | `issue-credential` | `archon_issue_credential` |
211
+ | `list-issued` | `archon_list_issued` |
212
+ | `update-credential` | `archon_update_credential` |
213
+ | `revoke-credential` | `archon_revoke_credential` |
214
+ | `accept-credential` | `archon_accept_credential` |
215
+ | `list-credentials` | `archon_list_credentials` |
216
+ | `get-credential` | `archon_get_credential` |
217
+ | `view-credential` | `archon_view_credential` |
218
+ | `publish-credential` | `archon_publish_credential` |
219
+ | `reveal-credential` | `archon_reveal_credential` |
220
+ | `unpublish-credential` | `archon_unpublish_credential` |
221
+ | `add-alias` | `archon_add_alias` |
222
+ | `get-alias` | `archon_get_alias` |
223
+ | `remove-alias` | `archon_remove_alias` |
224
+ | `list-aliases` | `archon_list_aliases` |
225
+ | `list-addresses` | `archon_list_addresses` |
226
+ | `get-address` | `archon_get_address` |
227
+ | `import-address` | `archon_import_address` |
228
+ | `check-address` | `archon_check_address` |
229
+ | `add-address` | `archon_add_address` |
230
+ | `remove-address` | `archon_remove_address` |
231
+ | `publish-address` | `archon_publish_address` |
232
+ | `unpublish-address` | `archon_unpublish_address` |
233
+ | `add-nostr` | `archon_add_nostr` |
234
+ | `import-nostr` | `archon_import_nostr` |
235
+ | `remove-nostr` | `archon_remove_nostr` |
236
+ | `add-lightning` | `archon_add_lightning` |
237
+ | `remove-lightning` | `archon_remove_lightning` |
238
+ | `lightning-balance` | `archon_lightning_balance` |
239
+ | `lightning-decode` | `archon_lightning_decode` |
240
+ | `lightning-invoice` | `archon_lightning_invoice` |
241
+ | `lightning-pay` | `archon_lightning_pay` |
242
+ | `lightning-check` | `archon_lightning_check` |
243
+ | `publish-lightning` | `archon_publish_lightning` |
244
+ | `unpublish-lightning` | `archon_unpublish_lightning` |
245
+ | `lightning-zap` | `archon_lightning_zap` |
246
+ | `lightning-payments` | `archon_lightning_payments` |
247
+ | `create-group` | `archon_create_group` |
248
+ | `list-groups` | `archon_list_groups` |
249
+ | `get-group` | `archon_get_group` |
250
+ | `add-group-member` | `archon_add_group_member` |
251
+ | `remove-group-member` | `archon_remove_group_member` |
252
+ | `test-group` | `archon_test_group` |
253
+ | `create-schema` | `archon_create_schema` |
254
+ | `list-schemas` | `archon_list_schemas` |
255
+ | `get-schema` | `archon_get_schema` |
256
+ | `create-schema-template` | `archon_create_schema_template` |
257
+ | `create-asset` | `archon_create_asset` |
258
+ | `create-asset-json` | `archon_create_asset_json` |
259
+ | `create-asset-image` | `archon_create_asset_image` |
260
+ | `create-asset-file` | `archon_create_asset_file` |
261
+ | `get-asset` | `archon_get_asset` |
262
+ | `get-asset-json` | `archon_get_asset_json` |
263
+ | `get-asset-image` | `archon_get_asset_image` |
264
+ | `get-asset-file` | `archon_get_asset_file` |
265
+ | `update-asset-json` | `archon_update_asset_json` |
266
+ | `update-asset-image` | `archon_update_asset_image` |
267
+ | `update-asset-file` | `archon_update_asset_file` |
268
+ | `transfer-asset` | `archon_transfer_asset` |
269
+ | `clone-asset` | `archon_clone_asset` |
270
+ | `get-property` | `archon_get_property` |
271
+ | `set-property` | `archon_set_property` |
272
+ | `list-assets` | `archon_list_assets` |
273
+ | `create-poll-template` | `archon_create_poll_template` |
274
+ | `create-poll` | `archon_create_poll` |
275
+ | `add-poll-voter` | `archon_add_poll_voter` |
276
+ | `remove-poll-voter` | `archon_remove_poll_voter` |
277
+ | `list-poll-voters` | `archon_list_poll_voters` |
278
+ | `view-poll` | `archon_view_poll` |
279
+ | `vote-poll` | `archon_vote_poll` |
280
+ | `send-poll` | `archon_send_poll` |
281
+ | `send-ballot` | `archon_send_ballot` |
282
+ | `view-ballot` | `archon_view_ballot` |
283
+ | `update-poll` | `archon_update_poll` |
284
+ | `publish-poll` | `archon_publish_poll` |
285
+ | `reveal-poll` | `archon_reveal_poll` |
286
+ | `unpublish-poll` | `archon_unpublish_poll` |
287
+ | `create-vault` | `archon_create_vault` |
288
+ | `list-vault-items` | `archon_list_vault_items` |
289
+ | `add-vault-member` | `archon_add_vault_member` |
290
+ | `remove-vault-member` | `archon_remove_vault_member` |
291
+ | `list-vault-members` | `archon_list_vault_members` |
292
+ | `add-vault-item` | `archon_add_vault_item` |
293
+ | `remove-vault-item` | `archon_remove_vault_item` |
294
+ | `get-vault-item` | `archon_get_vault_item` |
295
+ | `create-dmail` | `archon_create_dmail` |
296
+ | `update-dmail` | `archon_update_dmail` |
297
+ | `send-dmail` | `archon_send_dmail` |
298
+ | `get-dmail` | `archon_get_dmail` |
299
+ | `list-dmail` | `archon_list_dmail` |
300
+ | `file-dmail` | `archon_file_dmail` |
301
+ | `refresh-dmail` | `archon_refresh_dmail` |
302
+ | `import-dmail` | `archon_import_dmail` |
303
+ | `remove-dmail` | `archon_remove_dmail` |
304
+ | `add-dmail-attachment` | `archon_add_dmail_attachment` |
305
+ | `remove-dmail-attachment` | `archon_remove_dmail_attachment` |
306
+ | `get-dmail-attachment` | `archon_get_dmail_attachment` |
307
+ | `list-dmail-attachments` | `archon_list_dmail_attachments` |
package/dist/index.d.ts CHANGED
@@ -2,5 +2,6 @@ export { loadConfig, walletLocation } from './config.js';
2
2
  export type { McpServerConfig, WalletType } from './config.js';
3
3
  export { createArchonRuntime, createWallet } from './runtime.js';
4
4
  export type { ArchonRuntime } from './runtime.js';
5
- export { registerArchonTools } from './tools.js';
5
+ export { ARCHON_MCP_CLI_COMMANDS, ARCHON_MCP_TOOL_DEFINITIONS, registerArchonTools } from './tools.js';
6
+ export type { ArchonToolDefinition } from './tools.js';
6
7
  export declare function main(): Promise<void>;
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@ import { createArchonRuntime } from './runtime.js';
5
5
  import { registerArchonTools } from './tools.js';
6
6
  export { loadConfig, walletLocation } from './config.js';
7
7
  export { createArchonRuntime, createWallet } from './runtime.js';
8
- export { registerArchonTools } from './tools.js';
8
+ export { ARCHON_MCP_CLI_COMMANDS, ARCHON_MCP_TOOL_DEFINITIONS, registerArchonTools } from './tools.js';
9
9
  export async function main() {
10
10
  const config = loadConfig();
11
11
  const runtime = await createArchonRuntime(config);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,CAAC,KAAK,UAAU,IAAI;IACtB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QACzB,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,OAAO;KACnB,CAAC,CAAC;IAEH,mBAAmB,CAAC,MAAa,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAEpD,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjE,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGvG,MAAM,CAAC,KAAK,UAAU,IAAI;IACtB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QACzB,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,OAAO;KACnB,CAAC,CAAC;IAEH,mBAAmB,CAAC,MAAa,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAEpD,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC"}
package/dist/redact.js CHANGED
@@ -1,6 +1,7 @@
1
- const QUOTED_SECRET_ASSIGNMENT = /\b(ARCHON_(?:ADMIN_API_KEY|PASSPHRASE|ENCRYPTED_PASSPHRASE)|api[_-]?key|apikey|token|access_token|passphrase|password)=("[^"]*"|'[^']*')/gi;
2
- const SPACED_SECRET_ASSIGNMENT = /\b(ARCHON_(?:PASSPHRASE|ENCRYPTED_PASSPHRASE)|passphrase|password)=([^&\r\n]*?)(?=\shttps?:\/\/|\s[A-Za-z_][A-Za-z0-9_-]*=|[&\r\n]|$)/gi;
3
- const SECRET_ASSIGNMENT = /\b(ARCHON_ADMIN_API_KEY|api[_-]?key|apikey|token|access_token)=([^&\s]+)/gi;
1
+ const SECRET_KEYS = 'ARCHON_(?:ADMIN_API_KEY|PASSPHRASE|ENCRYPTED_PASSPHRASE)|api[_-]?key|apikey|token|access_token|passphrase|password|mnemonic|recovery[_-]?phrase|recoveryPhrase|nsec|bolt11|adminKey|invoiceKey';
2
+ const QUOTED_SECRET_ASSIGNMENT = new RegExp(`\\b(${SECRET_KEYS})=("[^"]*"|'[^']*')`, 'gi');
3
+ const SPACED_SECRET_ASSIGNMENT = /\b(ARCHON_(?:PASSPHRASE|ENCRYPTED_PASSPHRASE)|passphrase|password|mnemonic|recovery[_-]?phrase|recoveryPhrase)=([^&\r\n]*?)(?=\shttps?:\/\/|\s[A-Za-z_][A-Za-z0-9_-]*=|[&\r\n]|$)/gi;
4
+ const SECRET_ASSIGNMENT = new RegExp(`\\b(${SECRET_KEYS})=([^&\\s]+)`, 'gi');
4
5
  const URL_TEXT = /https?:\/\/[^\s"'<>]+/gi;
5
6
  const URL_SECRET_PARAMS = new Set(['api_key', 'apikey', 'access_token', 'token', 'key', 'password', 'passphrase']);
6
7
  const TOKEN_PATH_HOSTS = [
@@ -1 +1 @@
1
- {"version":3,"file":"redact.js","sourceRoot":"","sources":["../src/redact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redact.js","sourceRoot":"","sources":["../src/redact.ts"],"names":[],"mappings":"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"}
package/dist/tools.d.ts CHANGED
@@ -1,8 +1,20 @@
1
+ import { z } from 'zod';
1
2
  import { McpServerConfig } from './config.js';
2
3
  import { ArchonRuntime } from './runtime.js';
4
+ type ToolHandler = (runtime: ArchonRuntime, args: any) => Promise<unknown> | unknown;
3
5
  type RegisterableServer = {
4
6
  registerTool?: (name: string, config: any, handler: (args: unknown) => Promise<unknown>) => void;
5
7
  tool?: (name: string, description: string, schema: unknown, handler: (args: unknown) => Promise<unknown>) => void;
6
8
  };
9
+ export type ArchonToolDefinition = {
10
+ name: string;
11
+ cliCommand?: string;
12
+ description: string;
13
+ schema: z.ZodTypeAny;
14
+ mutates?: boolean;
15
+ handler: ToolHandler;
16
+ };
17
+ export declare const ARCHON_MCP_TOOL_DEFINITIONS: ArchonToolDefinition[];
18
+ export declare const ARCHON_MCP_CLI_COMMANDS: string[];
7
19
  export declare function registerArchonTools(server: RegisterableServer, runtime: ArchonRuntime, config: McpServerConfig): void;
8
20
  export {};
package/dist/tools.js CHANGED
@@ -1,18 +1,30 @@
1
1
  import { z } from 'zod';
2
2
  import { errorMessage } from './redact.js';
3
3
  const EmptySchema = z.object({});
4
+ const IdSchema = z.object({ id: z.string() });
5
+ const DidSchema = z.object({ did: z.string() });
6
+ const AliasOptionsSchema = z.object({ alias: z.string().optional(), registry: z.string().optional() });
7
+ const AssetOptionsSchema = AliasOptionsSchema.extend({
8
+ controller: z.string().optional(),
9
+ validUntil: z.string().optional(),
10
+ });
11
+ const VaultOptionsSchema = AliasOptionsSchema.extend({ secretMembers: z.boolean().optional() });
4
12
  const ResolveOptionsSchema = z.object({
5
13
  confirm: z.boolean().optional(),
6
14
  verify: z.boolean().optional(),
7
15
  versionTime: z.string().optional(),
8
16
  versionSequence: z.number().int().optional(),
9
17
  });
18
+ const ConfirmSchema = z.object({ confirm: z.literal(true) });
19
+ const RevealSchema = z.object({ reveal: z.literal(true) });
20
+ const ConfirmPaymentSchema = z.object({ confirmPayment: z.literal(true) });
10
21
  const JsonObjectSchema = z.record(z.unknown());
11
- const AssetOptionsSchema = z.object({
12
- alias: z.string().optional(),
13
- registry: z.string().optional(),
14
- controller: z.string().optional(),
15
- validUntil: z.string().optional(),
22
+ const JsonValueSchema = z.unknown();
23
+ const InlineDataSchema = z.object({
24
+ name: z.string().optional(),
25
+ mimeType: z.string().optional(),
26
+ encoding: z.enum(['base64', 'utf8']).optional(),
27
+ data: z.string(),
16
28
  });
17
29
  function jsonResult(result) {
18
30
  return {
@@ -36,68 +48,233 @@ function requireKeymaster(runtime) {
36
48
  }
37
49
  return runtime.keymaster;
38
50
  }
39
- function registerTool(server, name, description, schema, handler, options = {}) {
40
- if (options.mutates && options.readOnly) {
51
+ function compactOptions(options) {
52
+ const entries = Object.entries(options).filter(([, value]) => value !== undefined);
53
+ return entries.length > 0 ? Object.fromEntries(entries) : undefined;
54
+ }
55
+ function bufferFromInlineData(input) {
56
+ return Buffer.from(input.data, input.encoding === 'utf8' ? 'utf8' : 'base64');
57
+ }
58
+ function inlineDataFromBuffer(buffer, name, mimeType) {
59
+ return {
60
+ name,
61
+ mimeType,
62
+ encoding: 'base64',
63
+ data: buffer.toString('base64'),
64
+ };
65
+ }
66
+ function signableJson(input) {
67
+ if (!input || typeof input !== 'object' || Array.isArray(input)) {
68
+ throw new Error('object must be a JSON object');
69
+ }
70
+ return input;
71
+ }
72
+ function tool(definition) {
73
+ return definition;
74
+ }
75
+ export const ARCHON_MCP_TOOL_DEFINITIONS = [
76
+ tool({ name: 'archon_get_version', description: 'Get Archon node version information.', schema: EmptySchema, handler: runtime => runtime.node.getVersion() }),
77
+ tool({ name: 'archon_get_status', description: 'Get Archon node status.', schema: EmptySchema, handler: runtime => runtime.node.getStatus() }),
78
+ tool({ name: 'archon_create_wallet', cliCommand: 'create-wallet', description: 'Create or load the local wallet.', schema: EmptySchema, mutates: true, handler: runtime => requireKeymaster(runtime).loadWallet() }),
79
+ tool({ name: 'archon_new_wallet', cliCommand: 'new-wallet', description: 'Create a new local wallet, replacing the existing wallet.', schema: ConfirmSchema, mutates: true, handler: runtime => requireKeymaster(runtime).newWallet('', true) }),
80
+ tool({ name: 'archon_change_passphrase', cliCommand: 'change-passphrase', description: 'Re-encrypt the local wallet with a new passphrase.', schema: z.object({ newPassphrase: z.string() }).merge(ConfirmSchema), mutates: true, handler: (runtime, { newPassphrase }) => requireKeymaster(runtime).changePassphrase(newPassphrase) }),
81
+ tool({ name: 'archon_check_wallet', cliCommand: 'check-wallet', description: 'Validate DIDs in the local wallet.', schema: EmptySchema, handler: runtime => requireKeymaster(runtime).checkWallet() }),
82
+ tool({ name: 'archon_fix_wallet', cliCommand: 'fix-wallet', description: 'Remove invalid DIDs from the local wallet.', schema: ConfirmSchema, mutates: true, handler: runtime => requireKeymaster(runtime).fixWallet() }),
83
+ tool({ name: 'archon_import_wallet', cliCommand: 'import-wallet', description: 'Create a new wallet from a recovery phrase.', schema: z.object({ recoveryPhrase: z.string() }).merge(ConfirmSchema), mutates: true, handler: (runtime, { recoveryPhrase }) => requireKeymaster(runtime).newWallet(recoveryPhrase, true) }),
84
+ tool({ name: 'archon_show_wallet', cliCommand: 'show-wallet', description: 'Show the decrypted local wallet.', schema: RevealSchema, handler: runtime => requireKeymaster(runtime).loadWallet() }),
85
+ tool({ name: 'archon_backup_wallet_file', cliCommand: 'backup-wallet-file', description: 'Return the encrypted wallet backup payload.', schema: RevealSchema, handler: runtime => requireKeymaster(runtime).exportEncryptedWallet() }),
86
+ tool({ name: 'archon_restore_wallet_file', cliCommand: 'restore-wallet-file', description: 'Restore the local wallet from an encrypted wallet payload.', schema: z.object({ wallet: JsonObjectSchema }).merge(ConfirmSchema), mutates: true, handler: (runtime, { wallet }) => requireKeymaster(runtime).saveWallet(wallet, true) }),
87
+ tool({ name: 'archon_show_mnemonic', cliCommand: 'show-mnemonic', description: 'Reveal the wallet recovery phrase.', schema: RevealSchema, handler: runtime => requireKeymaster(runtime).decryptMnemonic() }),
88
+ tool({ name: 'archon_backup_wallet_did', cliCommand: 'backup-wallet-did', description: 'Backup wallet to an encrypted DID and seed bank.', schema: ConfirmSchema, mutates: true, handler: runtime => requireKeymaster(runtime).backupWallet() }),
89
+ tool({ name: 'archon_recover_wallet_did', cliCommand: 'recover-wallet-did', description: 'Recover wallet from seed bank or encrypted DID.', schema: z.object({ did: z.string().optional() }).merge(ConfirmSchema), mutates: true, handler: (runtime, { did }) => requireKeymaster(runtime).recoverWallet(did) }),
90
+ tool({ name: 'archon_create_id', cliCommand: 'create-id', description: 'Create a new local Keymaster wallet ID.', schema: z.object({ name: z.string(), registry: z.string().optional() }), mutates: true, handler: (runtime, { name, registry }) => requireKeymaster(runtime).createId(name, compactOptions({ registry })) }),
91
+ tool({ name: 'archon_resolve_id', cliCommand: 'resolve-id', description: 'Resolve a local ID name, alias, DID, or the current ID when id is omitted.', schema: z.object({ id: z.string().optional() }).merge(ResolveOptionsSchema), handler: async (runtime, { id, ...options }) => {
92
+ const keymaster = requireKeymaster(runtime);
93
+ const resolvedId = id ?? await keymaster.getCurrentId();
94
+ if (!resolvedId)
95
+ throw new Error('No current ID');
96
+ return keymaster.resolveDID(resolvedId, compactOptions(options));
97
+ } }),
98
+ tool({ name: 'archon_backup_id', cliCommand: 'backup-id', description: 'Backup the current or selected ID.', schema: z.object({ id: z.string().optional() }), mutates: true, handler: (runtime, { id }) => requireKeymaster(runtime).backupId(id) }),
99
+ tool({ name: 'archon_recover_id', cliCommand: 'recover-id', description: 'Recover an ID from a backup DID.', schema: DidSchema, mutates: true, handler: (runtime, { did }) => requireKeymaster(runtime).recoverId(did) }),
100
+ tool({ name: 'archon_remove_id', cliCommand: 'remove-id', description: 'Remove a local ID from the wallet.', schema: z.object({ name: z.string() }).merge(ConfirmSchema), mutates: true, handler: (runtime, { name }) => requireKeymaster(runtime).removeId(name) }),
101
+ tool({ name: 'archon_rename_id', cliCommand: 'rename-id', description: 'Rename a local ID.', schema: z.object({ oldName: z.string(), newName: z.string() }), mutates: true, handler: (runtime, { oldName, newName }) => requireKeymaster(runtime).renameId(oldName, newName) }),
102
+ tool({ name: 'archon_list_ids', cliCommand: 'list-ids', description: 'List IDs in the local Keymaster wallet.', schema: EmptySchema, handler: runtime => requireKeymaster(runtime).listIds() }),
103
+ tool({ name: 'archon_list_registries', cliCommand: 'list-registries', description: 'List registries supported by the connected Archon node.', schema: EmptySchema, handler: runtime => runtime.node.listRegistries() }),
104
+ tool({ name: 'archon_get_current_id', description: 'Get the current local Keymaster wallet ID name.', schema: EmptySchema, handler: runtime => requireKeymaster(runtime).getCurrentId() }),
105
+ tool({ name: 'archon_use_id', cliCommand: 'use-id', description: 'Set the current local Keymaster wallet ID name.', schema: z.object({ name: z.string() }), mutates: true, handler: (runtime, { name }) => requireKeymaster(runtime).setCurrentId(name) }),
106
+ tool({ name: 'archon_rotate_keys', cliCommand: 'rotate-keys', description: 'Generate and publish new keys for the current ID.', schema: ConfirmSchema, mutates: true, handler: runtime => requireKeymaster(runtime).rotateKeys() }),
107
+ tool({ name: 'archon_resolve_did', cliCommand: 'resolve-did', description: 'Resolve a DID or DID-like Archon identifier.', schema: DidSchema.merge(ResolveOptionsSchema), handler: (runtime, { did, ...options }) => requireKeymaster(runtime).resolveDID(did, compactOptions(options)) }),
108
+ tool({ name: 'archon_resolve_did_version', cliCommand: 'resolve-did-version', description: 'Resolve a specific DID version.', schema: DidSchema.extend({ version: z.number().int() }), handler: (runtime, { did, version }) => requireKeymaster(runtime).resolveDID(did, { versionSequence: version }) }),
109
+ tool({ name: 'archon_revoke_did', cliCommand: 'revoke-did', description: 'Permanently revoke a DID.', schema: DidSchema.merge(ConfirmSchema), mutates: true, handler: (runtime, { did }) => requireKeymaster(runtime).revokeDID(did) }),
110
+ tool({ name: 'archon_change_registry', cliCommand: 'change-registry', description: 'Change the registry for an existing DID.', schema: IdSchema.extend({ registry: z.string() }).merge(ConfirmSchema), mutates: true, handler: (runtime, { id, registry }) => requireKeymaster(runtime).changeRegistry(id, registry) }),
111
+ tool({ name: 'archon_encrypt_message', cliCommand: 'encrypt-message', description: 'Encrypt a message for a DID.', schema: z.object({ message: z.string(), did: z.string() }), mutates: true, handler: (runtime, { message, did }) => requireKeymaster(runtime).encryptMessage(message, did) }),
112
+ tool({ name: 'archon_encrypt_file', cliCommand: 'encrypt-file', description: 'Encrypt inline text data for a DID.', schema: z.object({ file: InlineDataSchema, did: z.string() }), mutates: true, handler: (runtime, { file, did }) => requireKeymaster(runtime).encryptMessage(bufferFromInlineData(file).toString('utf8'), did) }),
113
+ tool({ name: 'archon_decrypt_did', cliCommand: 'decrypt-did', description: 'Decrypt an encrypted message DID.', schema: DidSchema.merge(RevealSchema), handler: (runtime, { did }) => requireKeymaster(runtime).decryptMessage(did) }),
114
+ tool({ name: 'archon_decrypt_json', cliCommand: 'decrypt-json', description: 'Decrypt an encrypted JSON DID.', schema: DidSchema.merge(RevealSchema), handler: (runtime, { did }) => requireKeymaster(runtime).decryptJSON(did) }),
115
+ tool({ name: 'archon_sign_file', cliCommand: 'sign-file', description: 'Sign an inline JSON object.', schema: z.object({ object: JsonObjectSchema }), handler: (runtime, { object }) => requireKeymaster(runtime).addProof(signableJson(object)) }),
116
+ tool({ name: 'archon_verify_file', cliCommand: 'verify-file', description: 'Verify the proof in an inline JSON object.', schema: z.object({ object: JsonObjectSchema }), handler: (runtime, { object }) => requireKeymaster(runtime).verifyProof(object) }),
117
+ tool({ name: 'archon_create_challenge', cliCommand: 'create-challenge', description: 'Create a challenge DID.', schema: z.object({ challenge: JsonObjectSchema.optional(), alias: z.string().optional(), registry: z.string().optional() }), mutates: true, handler: (runtime, { challenge, alias, registry }) => requireKeymaster(runtime).createChallenge(challenge, compactOptions({ alias, registry })) }),
118
+ tool({ name: 'archon_create_challenge_cc', cliCommand: 'create-challenge-cc', description: 'Create a challenge from a credential DID.', schema: z.object({ did: z.string(), alias: z.string().optional(), registry: z.string().optional() }), mutates: true, handler: (runtime, { did, alias, registry }) => requireKeymaster(runtime).createChallenge({ credentials: [{ schema: did }] }, compactOptions({ alias, registry })) }),
119
+ tool({ name: 'archon_create_response', cliCommand: 'create-response', description: 'Create a response to a challenge.', schema: z.object({ challenge: z.string(), registry: z.string().optional(), validUntil: z.string().optional() }), mutates: true, handler: (runtime, { challenge, registry, validUntil }) => requireKeymaster(runtime).createResponse(challenge, compactOptions({ registry, validUntil })) }),
120
+ tool({ name: 'archon_verify_response', cliCommand: 'verify-response', description: 'Decrypt and validate a response to a challenge.', schema: z.object({ response: z.string() }), handler: (runtime, { response }) => requireKeymaster(runtime).verifyResponse(response) }),
121
+ tool({ name: 'archon_bind_credential', cliCommand: 'bind-credential', description: 'Create a bound credential for a subject.', schema: z.object({ schema: z.string(), subject: z.string(), claims: JsonObjectSchema.optional(), validFrom: z.string().optional(), validUntil: z.string().optional() }), handler: (runtime, { subject, schema, claims, validFrom, validUntil }) => requireKeymaster(runtime).bindCredential(subject, compactOptions({ schema, claims, validFrom, validUntil })) }),
122
+ tool({ name: 'archon_issue_credential', cliCommand: 'issue-credential', description: 'Sign and encrypt a bound credential.', schema: z.object({ credential: JsonObjectSchema, alias: z.string().optional(), registry: z.string().optional() }), mutates: true, handler: (runtime, { credential, alias, registry }) => requireKeymaster(runtime).issueCredential(credential, compactOptions({ alias, registry })) }),
123
+ tool({ name: 'archon_list_issued', cliCommand: 'list-issued', description: 'List issued credentials.', schema: z.object({ issuer: z.string().optional() }), handler: (runtime, { issuer }) => requireKeymaster(runtime).listIssued(issuer) }),
124
+ tool({ name: 'archon_update_credential', cliCommand: 'update-credential', description: 'Update an issued credential.', schema: z.object({ did: z.string(), credential: JsonObjectSchema }), mutates: true, handler: (runtime, { did, credential }) => requireKeymaster(runtime).updateCredential(did, credential) }),
125
+ tool({ name: 'archon_revoke_credential', cliCommand: 'revoke-credential', description: 'Revoke a verifiable credential.', schema: DidSchema.merge(ConfirmSchema), mutates: true, handler: (runtime, { did }) => requireKeymaster(runtime).revokeCredential(did) }),
126
+ tool({ name: 'archon_accept_credential', cliCommand: 'accept-credential', description: 'Save a verifiable credential for the current ID.', schema: DidSchema.extend({ alias: z.string().optional() }), mutates: true, handler: async (runtime, { did, alias }) => {
127
+ const keymaster = requireKeymaster(runtime);
128
+ const accepted = await keymaster.acceptCredential(did);
129
+ if (accepted && alias)
130
+ await keymaster.addAlias(alias, did);
131
+ return accepted;
132
+ } }),
133
+ tool({ name: 'archon_list_credentials', cliCommand: 'list-credentials', description: 'List credentials held by an ID.', schema: z.object({ id: z.string().optional() }), handler: (runtime, { id }) => requireKeymaster(runtime).listCredentials(id) }),
134
+ tool({ name: 'archon_get_credential', cliCommand: 'get-credential', description: 'Get a credential by DID.', schema: DidSchema, handler: (runtime, { did }) => requireKeymaster(runtime).getCredential(did) }),
135
+ tool({ name: 'archon_view_credential', cliCommand: 'view-credential', description: 'Get a credential with proof validity.', schema: DidSchema, handler: async (runtime, { did }) => {
136
+ const keymaster = requireKeymaster(runtime);
137
+ const credential = await keymaster.getCredential(did);
138
+ return { credential, proofValid: credential ? await keymaster.verifyProof(credential) : false };
139
+ } }),
140
+ tool({ name: 'archon_publish_credential', cliCommand: 'publish-credential', description: 'Publish the existence of a credential to the current user manifest.', schema: DidSchema, mutates: true, handler: (runtime, { did }) => requireKeymaster(runtime).publishCredential(did, { reveal: false }) }),
141
+ tool({ name: 'archon_reveal_credential', cliCommand: 'reveal-credential', description: 'Reveal a credential to the current user manifest.', schema: DidSchema.merge(RevealSchema), mutates: true, handler: (runtime, { did }) => requireKeymaster(runtime).publishCredential(did, { reveal: true }) }),
142
+ tool({ name: 'archon_unpublish_credential', cliCommand: 'unpublish-credential', description: 'Remove a credential from the current user manifest.', schema: DidSchema, mutates: true, handler: (runtime, { did }) => requireKeymaster(runtime).unpublishCredential(did) }),
143
+ tool({ name: 'archon_add_alias', cliCommand: 'add-alias', description: 'Add a DID alias to the local Keymaster wallet.', schema: z.object({ alias: z.string(), did: z.string() }), mutates: true, handler: (runtime, { alias, did }) => requireKeymaster(runtime).addAlias(alias, did) }),
144
+ tool({ name: 'archon_get_alias', cliCommand: 'get-alias', description: 'Get the DID assigned to a local alias.', schema: z.object({ alias: z.string() }), handler: (runtime, { alias }) => requireKeymaster(runtime).getAlias(alias) }),
145
+ tool({ name: 'archon_remove_alias', cliCommand: 'remove-alias', description: 'Remove a DID alias from the local wallet.', schema: z.object({ alias: z.string() }), mutates: true, handler: (runtime, { alias }) => requireKeymaster(runtime).removeAlias(alias) }),
146
+ tool({ name: 'archon_list_aliases', cliCommand: 'list-aliases', description: 'List DID aliases in the local wallet.', schema: z.object({ includeIds: z.boolean().optional() }), handler: (runtime, { includeIds }) => requireKeymaster(runtime).listAliases(includeIds === undefined ? undefined : { includeIDs: includeIds }) }),
147
+ tool({ name: 'archon_list_addresses', cliCommand: 'list-addresses', description: 'List wallet addresses claimed through Herald domains.', schema: EmptySchema, handler: runtime => requireKeymaster(runtime).listAddresses() }),
148
+ tool({ name: 'archon_get_address', cliCommand: 'get-address', description: 'Get the current address for a domain.', schema: z.object({ domain: z.string() }), handler: (runtime, { domain }) => requireKeymaster(runtime).getAddress(domain) }),
149
+ tool({ name: 'archon_import_address', cliCommand: 'import-address', description: 'Import an existing address for the current ID from a domain.', schema: z.object({ domain: z.string() }), mutates: true, handler: (runtime, { domain }) => requireKeymaster(runtime).importAddress(domain) }),
150
+ tool({ name: 'archon_check_address', cliCommand: 'check-address', description: 'Check whether a Herald address is available.', schema: z.object({ address: z.string() }), handler: (runtime, { address }) => requireKeymaster(runtime).checkAddress(address) }),
151
+ tool({ name: 'archon_add_address', cliCommand: 'add-address', description: 'Claim a Herald address for the current ID.', schema: z.object({ address: z.string() }), mutates: true, handler: (runtime, { address }) => requireKeymaster(runtime).addAddress(address) }),
152
+ tool({ name: 'archon_remove_address', cliCommand: 'remove-address', description: 'Remove a Herald address from the current ID.', schema: z.object({ address: z.string() }), mutates: true, handler: (runtime, { address }) => requireKeymaster(runtime).removeAddress(address) }),
153
+ tool({ name: 'archon_publish_address', cliCommand: 'publish-address', description: 'Publish a stored Herald address on a DID document.', schema: z.object({ address: z.string().optional(), id: z.string().optional() }), mutates: true, handler: (runtime, { address, id }) => requireKeymaster(runtime).publishAddress(address, id) }),
154
+ tool({ name: 'archon_unpublish_address', cliCommand: 'unpublish-address', description: 'Remove a published Herald address from a DID document.', schema: z.object({ id: z.string().optional() }), mutates: true, handler: (runtime, { id }) => requireKeymaster(runtime).unpublishAddress(id) }),
155
+ tool({ name: 'archon_add_nostr', cliCommand: 'add-nostr', description: 'Derive and add Nostr keys to an agent DID.', schema: z.object({ id: z.string().optional() }), mutates: true, handler: (runtime, { id }) => requireKeymaster(runtime).addNostr(id) }),
156
+ tool({ name: 'archon_import_nostr', cliCommand: 'import-nostr', description: 'Import Nostr keys from an nsec private key.', schema: z.object({ nsec: z.string(), id: z.string().optional() }).merge(ConfirmSchema), mutates: true, handler: (runtime, { nsec, id }) => requireKeymaster(runtime).importNostr(nsec, id) }),
157
+ tool({ name: 'archon_remove_nostr', cliCommand: 'remove-nostr', description: 'Remove Nostr keys from an agent DID.', schema: z.object({ id: z.string().optional() }).merge(ConfirmSchema), mutates: true, handler: (runtime, { id }) => requireKeymaster(runtime).removeNostr(id) }),
158
+ tool({ name: 'archon_add_lightning', cliCommand: 'add-lightning', description: 'Create a Lightning wallet for a DID.', schema: z.object({ id: z.string().optional() }), mutates: true, handler: (runtime, { id }) => requireKeymaster(runtime).addLightning(id) }),
159
+ tool({ name: 'archon_remove_lightning', cliCommand: 'remove-lightning', description: 'Remove Lightning wallet from a DID.', schema: z.object({ id: z.string().optional() }).merge(ConfirmSchema), mutates: true, handler: (runtime, { id }) => requireKeymaster(runtime).removeLightning(id) }),
160
+ tool({ name: 'archon_lightning_balance', cliCommand: 'lightning-balance', description: 'Check Lightning wallet balance.', schema: z.object({ id: z.string().optional() }), handler: (runtime, { id }) => requireKeymaster(runtime).getLightningBalance(id) }),
161
+ tool({ name: 'archon_lightning_decode', cliCommand: 'lightning-decode', description: 'Decode a Lightning BOLT11 invoice.', schema: z.object({ bolt11: z.string() }), handler: (runtime, { bolt11 }) => requireKeymaster(runtime).decodeLightningInvoice(bolt11) }),
162
+ tool({ name: 'archon_lightning_invoice', cliCommand: 'lightning-invoice', description: 'Create a Lightning invoice.', schema: z.object({ amount: z.number().int().positive(), memo: z.string(), id: z.string().optional() }), mutates: true, handler: (runtime, { amount, memo, id }) => requireKeymaster(runtime).createLightningInvoice(amount, memo, id) }),
163
+ tool({ name: 'archon_lightning_pay', cliCommand: 'lightning-pay', description: 'Pay a Lightning invoice.', schema: z.object({ bolt11: z.string(), id: z.string().optional() }).merge(ConfirmPaymentSchema), mutates: true, handler: (runtime, { bolt11, id }) => requireKeymaster(runtime).payLightningInvoice(bolt11, id) }),
164
+ tool({ name: 'archon_lightning_check', cliCommand: 'lightning-check', description: 'Check status of a Lightning payment.', schema: z.object({ paymentHash: z.string(), id: z.string().optional() }), handler: (runtime, { paymentHash, id }) => requireKeymaster(runtime).checkLightningPayment(paymentHash, id) }),
165
+ tool({ name: 'archon_publish_lightning', cliCommand: 'publish-lightning', description: 'Publish Lightning service endpoint for a DID.', schema: z.object({ id: z.string().optional() }), mutates: true, handler: (runtime, { id }) => requireKeymaster(runtime).publishLightning(id) }),
166
+ tool({ name: 'archon_unpublish_lightning', cliCommand: 'unpublish-lightning', description: 'Remove Lightning service endpoint from a DID.', schema: z.object({ id: z.string().optional() }), mutates: true, handler: (runtime, { id }) => requireKeymaster(runtime).unpublishLightning(id) }),
167
+ tool({ name: 'archon_lightning_zap', cliCommand: 'lightning-zap', description: 'Send sats via Lightning to a DID, alias, or Lightning address.', schema: z.object({ recipient: z.string(), amount: z.number().int().positive(), memo: z.string().optional(), id: z.string().optional() }).merge(ConfirmPaymentSchema), mutates: true, handler: (runtime, { recipient, amount, memo, id }) => requireKeymaster(runtime).zapLightning(recipient, amount, memo, id) }),
168
+ tool({ name: 'archon_lightning_payments', cliCommand: 'lightning-payments', description: 'Show Lightning payment history.', schema: z.object({ id: z.string().optional() }), handler: (runtime, { id }) => requireKeymaster(runtime).getLightningPayments(id) }),
169
+ tool({ name: 'archon_create_group', cliCommand: 'create-group', description: 'Create a new group.', schema: z.object({ groupName: z.string() }).merge(AliasOptionsSchema), mutates: true, handler: (runtime, { groupName, alias, registry }) => requireKeymaster(runtime).createGroup(groupName, compactOptions({ alias, registry })) }),
170
+ tool({ name: 'archon_list_groups', cliCommand: 'list-groups', description: 'List groups owned by an ID.', schema: z.object({ owner: z.string().optional() }), handler: (runtime, { owner }) => requireKeymaster(runtime).listGroups(owner) }),
171
+ tool({ name: 'archon_get_group', cliCommand: 'get-group', description: 'Get a group by DID.', schema: DidSchema, handler: (runtime, { did }) => requireKeymaster(runtime).getGroup(did) }),
172
+ tool({ name: 'archon_add_group_member', cliCommand: 'add-group-member', description: 'Add a member to a group.', schema: z.object({ group: z.string(), member: z.string() }), mutates: true, handler: (runtime, { group, member }) => requireKeymaster(runtime).addGroupMember(group, member) }),
173
+ tool({ name: 'archon_remove_group_member', cliCommand: 'remove-group-member', description: 'Remove a member from a group.', schema: z.object({ group: z.string(), member: z.string() }).merge(ConfirmSchema), mutates: true, handler: (runtime, { group, member }) => requireKeymaster(runtime).removeGroupMember(group, member) }),
174
+ tool({ name: 'archon_test_group', cliCommand: 'test-group', description: 'Determine if a member is in a group.', schema: z.object({ group: z.string(), member: z.string().optional() }), handler: (runtime, { group, member }) => requireKeymaster(runtime).testGroup(group, member) }),
175
+ tool({ name: 'archon_create_schema', cliCommand: 'create-schema', description: 'Create a schema DID from inline JSON.', schema: z.object({ schema: JsonObjectSchema, alias: z.string().optional(), registry: z.string().optional() }), mutates: true, handler: (runtime, { schema, alias, registry }) => requireKeymaster(runtime).createSchema(schema, compactOptions({ alias, registry })) }),
176
+ tool({ name: 'archon_list_schemas', cliCommand: 'list-schemas', description: 'List schemas owned by an ID.', schema: z.object({ owner: z.string().optional() }), handler: (runtime, { owner }) => requireKeymaster(runtime).listSchemas(owner) }),
177
+ tool({ name: 'archon_get_schema', cliCommand: 'get-schema', description: 'Get a schema by DID.', schema: DidSchema, handler: (runtime, { did }) => requireKeymaster(runtime).getSchema(did) }),
178
+ tool({ name: 'archon_create_schema_template', cliCommand: 'create-schema-template', description: 'Create a JSON template from a schema.', schema: z.object({ schema: z.string() }), handler: (runtime, { schema }) => requireKeymaster(runtime).createTemplate(schema) }),
179
+ tool({ name: 'archon_create_asset', cliCommand: 'create-asset', description: 'Create an empty JSON asset.', schema: AssetOptionsSchema, mutates: true, handler: (runtime, options) => requireKeymaster(runtime).createAsset({}, compactOptions(options)) }),
180
+ tool({ name: 'archon_create_asset_json', cliCommand: 'create-asset-json', description: 'Create a JSON asset DID from inline JSON data.', schema: z.object({ data: JsonObjectSchema }).merge(AssetOptionsSchema), mutates: true, handler: (runtime, { data, ...options }) => requireKeymaster(runtime).createAsset(data, compactOptions(options)) }),
181
+ tool({ name: 'archon_create_asset_image', cliCommand: 'create-asset-image', description: 'Create an image asset DID from an inline base64 payload.', schema: z.object({ file: InlineDataSchema }).merge(AssetOptionsSchema), mutates: true, handler: (runtime, { file, ...options }) => requireKeymaster(runtime).createImage(bufferFromInlineData(file), compactOptions({ ...options, filename: file.name })) }),
182
+ tool({ name: 'archon_create_asset_file', cliCommand: 'create-asset-file', description: 'Create a file asset DID from an inline payload.', schema: z.object({ file: InlineDataSchema }).merge(AssetOptionsSchema), mutates: true, handler: (runtime, { file, ...options }) => requireKeymaster(runtime).createFile(bufferFromInlineData(file), compactOptions({ ...options, filename: file.name, contentType: file.mimeType })) }),
183
+ tool({ name: 'archon_get_asset', cliCommand: 'get-asset', description: 'Resolve an asset by local name, alias, or DID.', schema: IdSchema.merge(ResolveOptionsSchema), handler: (runtime, { id, ...options }) => requireKeymaster(runtime).resolveAsset(id, compactOptions(options)) }),
184
+ tool({ name: 'archon_get_asset_json', cliCommand: 'get-asset-json', description: 'Return a JSON asset as an inline object.', schema: IdSchema.merge(ResolveOptionsSchema), handler: (runtime, { id, ...options }) => requireKeymaster(runtime).resolveAsset(id, compactOptions(options)) }),
185
+ tool({ name: 'archon_get_asset_image', cliCommand: 'get-asset-image', description: 'Return an image asset as an inline base64 payload.', schema: IdSchema, handler: async (runtime, { id }) => {
186
+ const image = await requireKeymaster(runtime).getImage(id);
187
+ return image?.file?.data ? {
188
+ file: inlineDataFromBuffer(Buffer.from(image.file.data), image.file.filename, image.file.type),
189
+ image: image.image,
190
+ } : null;
191
+ } }),
192
+ tool({ name: 'archon_get_asset_file', cliCommand: 'get-asset-file', description: 'Return a file asset as an inline base64 payload.', schema: IdSchema, handler: async (runtime, { id }) => {
193
+ const file = await requireKeymaster(runtime).getFile(id);
194
+ return file?.data ? inlineDataFromBuffer(Buffer.from(file.data), file.filename, file.type) : null;
195
+ } }),
196
+ tool({ name: 'archon_update_asset_json', cliCommand: 'update-asset-json', description: 'Merge JSON object data into an existing asset.', schema: IdSchema.extend({ data: JsonObjectSchema }), mutates: true, handler: (runtime, { id, data }) => requireKeymaster(runtime).mergeData(id, data) }),
197
+ tool({ name: 'archon_update_asset_image', cliCommand: 'update-asset-image', description: 'Update an image asset from an inline payload.', schema: IdSchema.extend({ file: InlineDataSchema }), mutates: true, handler: (runtime, { id, file }) => requireKeymaster(runtime).updateImage(id, bufferFromInlineData(file), compactOptions({ filename: file.name })) }),
198
+ tool({ name: 'archon_update_asset_file', cliCommand: 'update-asset-file', description: 'Update a file asset from an inline payload.', schema: IdSchema.extend({ file: InlineDataSchema }), mutates: true, handler: (runtime, { id, file }) => requireKeymaster(runtime).updateFile(id, bufferFromInlineData(file), compactOptions({ filename: file.name, contentType: file.mimeType })) }),
199
+ tool({ name: 'archon_transfer_asset', cliCommand: 'transfer-asset', description: 'Transfer an asset to a new controller DID.', schema: IdSchema.extend({ controller: z.string() }), mutates: true, handler: (runtime, { id, controller }) => requireKeymaster(runtime).transferAsset(id, controller) }),
200
+ tool({ name: 'archon_clone_asset', cliCommand: 'clone-asset', description: 'Clone an asset.', schema: IdSchema.merge(AliasOptionsSchema), mutates: true, handler: (runtime, { id, alias, registry }) => requireKeymaster(runtime).cloneAsset(id, compactOptions({ alias, registry })) }),
201
+ tool({ name: 'archon_get_property', cliCommand: 'get-property', description: 'Get a property from a DID document data object.', schema: IdSchema.extend({ key: z.string() }), handler: async (runtime, { id, key }) => (await requireKeymaster(runtime).resolveDID(id)).didDocumentData?.[key] }),
202
+ tool({ name: 'archon_set_property', cliCommand: 'set-property', description: 'Set a property on a DID document data object.', schema: IdSchema.extend({ key: z.string(), value: JsonValueSchema.nullable().optional() }), mutates: true, handler: (runtime, { id, key, value }) => requireKeymaster(runtime).mergeData(id, { [key]: value ?? null }) }),
203
+ tool({ name: 'archon_list_assets', cliCommand: 'list-assets', description: 'List assets owned by an ID.', schema: z.object({ owner: z.string().optional() }), handler: (runtime, { owner }) => requireKeymaster(runtime).listAssets(owner) }),
204
+ tool({ name: 'archon_create_poll_template', cliCommand: 'create-poll-template', description: 'Create a poll config template.', schema: EmptySchema, handler: runtime => requireKeymaster(runtime).pollTemplate() }),
205
+ tool({ name: 'archon_create_poll', cliCommand: 'create-poll', description: 'Create a poll from inline JSON config.', schema: z.object({ config: JsonObjectSchema }).merge(VaultOptionsSchema), mutates: true, handler: (runtime, { config, ...options }) => requireKeymaster(runtime).createPoll(config, compactOptions(options)) }),
206
+ tool({ name: 'archon_add_poll_voter', cliCommand: 'add-poll-voter', description: 'Add a voter to a poll.', schema: z.object({ poll: z.string(), member: z.string() }), mutates: true, handler: (runtime, { poll, member }) => requireKeymaster(runtime).addPollVoter(poll, member) }),
207
+ tool({ name: 'archon_remove_poll_voter', cliCommand: 'remove-poll-voter', description: 'Remove a voter from a poll.', schema: z.object({ poll: z.string(), member: z.string() }).merge(ConfirmSchema), mutates: true, handler: (runtime, { poll, member }) => requireKeymaster(runtime).removePollVoter(poll, member) }),
208
+ tool({ name: 'archon_list_poll_voters', cliCommand: 'list-poll-voters', description: 'List eligible voters in a poll.', schema: z.object({ poll: z.string() }), handler: (runtime, { poll }) => requireKeymaster(runtime).listPollVoters(poll) }),
209
+ tool({ name: 'archon_view_poll', cliCommand: 'view-poll', description: 'View poll details.', schema: z.object({ poll: z.string() }), handler: (runtime, { poll }) => requireKeymaster(runtime).viewPoll(poll) }),
210
+ tool({ name: 'archon_vote_poll', cliCommand: 'vote-poll', description: 'Vote in a poll.', schema: z.object({ poll: z.string(), vote: z.number().int(), registry: z.string().optional(), validUntil: z.string().optional() }), mutates: true, handler: (runtime, { poll, vote, registry, validUntil }) => requireKeymaster(runtime).votePoll(poll, vote, compactOptions({ registry, validUntil })) }),
211
+ tool({ name: 'archon_send_poll', cliCommand: 'send-poll', description: 'Send a poll notice to voters.', schema: z.object({ poll: z.string() }), mutates: true, handler: (runtime, { poll }) => requireKeymaster(runtime).sendPoll(poll) }),
212
+ tool({ name: 'archon_send_ballot', cliCommand: 'send-ballot', description: 'Send a ballot to the poll owner.', schema: z.object({ ballot: z.string(), poll: z.string() }), mutates: true, handler: (runtime, { ballot, poll }) => requireKeymaster(runtime).sendBallot(ballot, poll) }),
213
+ tool({ name: 'archon_view_ballot', cliCommand: 'view-ballot', description: 'View ballot details.', schema: z.object({ ballot: z.string() }), handler: (runtime, { ballot }) => requireKeymaster(runtime).viewBallot(ballot) }),
214
+ tool({ name: 'archon_update_poll', cliCommand: 'update-poll', description: 'Add a ballot to a poll.', schema: z.object({ ballot: z.string() }), mutates: true, handler: (runtime, { ballot }) => requireKeymaster(runtime).updatePoll(ballot) }),
215
+ tool({ name: 'archon_publish_poll', cliCommand: 'publish-poll', description: 'Publish poll results without revealing ballots.', schema: z.object({ poll: z.string() }), mutates: true, handler: (runtime, { poll }) => requireKeymaster(runtime).publishPoll(poll) }),
216
+ tool({ name: 'archon_reveal_poll', cliCommand: 'reveal-poll', description: 'Publish poll results and reveal ballots.', schema: z.object({ poll: z.string() }).merge(RevealSchema), mutates: true, handler: (runtime, { poll }) => requireKeymaster(runtime).publishPoll(poll, { reveal: true }) }),
217
+ tool({ name: 'archon_unpublish_poll', cliCommand: 'unpublish-poll', description: 'Remove results from a poll.', schema: z.object({ poll: z.string() }), mutates: true, handler: (runtime, { poll }) => requireKeymaster(runtime).unpublishPoll(poll) }),
218
+ tool({ name: 'archon_create_vault', cliCommand: 'create-vault', description: 'Create a vault.', schema: VaultOptionsSchema, mutates: true, handler: (runtime, options) => requireKeymaster(runtime).createVault(compactOptions(options)) }),
219
+ tool({ name: 'archon_list_vault_items', cliCommand: 'list-vault-items', description: 'List items in a vault.', schema: IdSchema.merge(ResolveOptionsSchema), handler: (runtime, { id, ...options }) => requireKeymaster(runtime).listVaultItems(id, compactOptions(options)) }),
220
+ tool({ name: 'archon_add_vault_member', cliCommand: 'add-vault-member', description: 'Add a member to a vault.', schema: IdSchema.extend({ member: z.string() }), mutates: true, handler: (runtime, { id, member }) => requireKeymaster(runtime).addVaultMember(id, member) }),
221
+ tool({ name: 'archon_remove_vault_member', cliCommand: 'remove-vault-member', description: 'Remove a member from a vault.', schema: IdSchema.extend({ member: z.string() }).merge(ConfirmSchema), mutates: true, handler: (runtime, { id, member }) => requireKeymaster(runtime).removeVaultMember(id, member) }),
222
+ tool({ name: 'archon_list_vault_members', cliCommand: 'list-vault-members', description: 'List members of a vault.', schema: IdSchema, handler: (runtime, { id }) => requireKeymaster(runtime).listVaultMembers(id) }),
223
+ tool({ name: 'archon_add_vault_item', cliCommand: 'add-vault-item', description: 'Add an inline item to a vault.', schema: IdSchema.extend({ item: InlineDataSchema }), mutates: true, handler: (runtime, { id, item }) => requireKeymaster(runtime).addVaultItem(id, item.name ?? 'item', bufferFromInlineData(item)) }),
224
+ tool({ name: 'archon_remove_vault_item', cliCommand: 'remove-vault-item', description: 'Remove an item from a vault.', schema: IdSchema.extend({ item: z.string() }).merge(ConfirmSchema), mutates: true, handler: (runtime, { id, item }) => requireKeymaster(runtime).removeVaultItem(id, item) }),
225
+ tool({ name: 'archon_get_vault_item', cliCommand: 'get-vault-item', description: 'Return a vault item as inline base64 data.', schema: IdSchema.extend({ item: z.string() }).merge(ResolveOptionsSchema), handler: async (runtime, { id, item, ...options }) => {
226
+ const buffer = await requireKeymaster(runtime).getVaultItem(id, item, compactOptions(options));
227
+ return buffer ? inlineDataFromBuffer(Buffer.from(buffer), item) : null;
228
+ } }),
229
+ tool({ name: 'archon_create_dmail', cliCommand: 'create-dmail', description: 'Create a dmail from inline JSON.', schema: z.object({ message: JsonObjectSchema }).merge(VaultOptionsSchema), mutates: true, handler: (runtime, { message, ...options }) => requireKeymaster(runtime).createDmail(message, compactOptions(options)) }),
230
+ tool({ name: 'archon_update_dmail', cliCommand: 'update-dmail', description: 'Update an existing dmail from inline JSON.', schema: DidSchema.extend({ message: JsonObjectSchema }), mutates: true, handler: (runtime, { did, message }) => requireKeymaster(runtime).updateDmail(did, message) }),
231
+ tool({ name: 'archon_send_dmail', cliCommand: 'send-dmail', description: 'Send a dmail and return the notice DID.', schema: DidSchema, mutates: true, handler: (runtime, { did }) => requireKeymaster(runtime).sendDmail(did) }),
232
+ tool({ name: 'archon_get_dmail', cliCommand: 'get-dmail', description: 'Get a dmail message by DID.', schema: DidSchema.merge(ResolveOptionsSchema), handler: (runtime, { did, ...options }) => requireKeymaster(runtime).getDmailMessage(did, compactOptions(options)) }),
233
+ tool({ name: 'archon_list_dmail', cliCommand: 'list-dmail', description: 'List dmails for the current ID.', schema: EmptySchema, handler: runtime => requireKeymaster(runtime).listDmail() }),
234
+ tool({ name: 'archon_file_dmail', cliCommand: 'file-dmail', description: 'Assign tags to a dmail.', schema: DidSchema.extend({ tags: z.array(z.string()) }), mutates: true, handler: (runtime, { did, tags }) => requireKeymaster(runtime).fileDmail(did, tags) }),
235
+ tool({ name: 'archon_refresh_dmail', cliCommand: 'refresh-dmail', description: 'Check for new dmails and clean up expired notices.', schema: EmptySchema, mutates: true, handler: runtime => requireKeymaster(runtime).refreshNotices() }),
236
+ tool({ name: 'archon_import_dmail', cliCommand: 'import-dmail', description: 'Import a dmail into the inbox.', schema: DidSchema, mutates: true, handler: (runtime, { did }) => requireKeymaster(runtime).importDmail(did) }),
237
+ tool({ name: 'archon_remove_dmail', cliCommand: 'remove-dmail', description: 'Delete a dmail from the local list.', schema: DidSchema.merge(ConfirmSchema), mutates: true, handler: (runtime, { did }) => requireKeymaster(runtime).removeDmail(did) }),
238
+ tool({ name: 'archon_add_dmail_attachment', cliCommand: 'add-dmail-attachment', description: 'Add an inline attachment to a dmail.', schema: DidSchema.extend({ attachment: InlineDataSchema }), mutates: true, handler: (runtime, { did, attachment }) => requireKeymaster(runtime).addDmailAttachment(did, attachment.name ?? 'attachment', bufferFromInlineData(attachment)) }),
239
+ tool({ name: 'archon_remove_dmail_attachment', cliCommand: 'remove-dmail-attachment', description: 'Remove an attachment from a dmail.', schema: DidSchema.extend({ name: z.string() }).merge(ConfirmSchema), mutates: true, handler: (runtime, { did, name }) => requireKeymaster(runtime).removeDmailAttachment(did, name) }),
240
+ tool({ name: 'archon_get_dmail_attachment', cliCommand: 'get-dmail-attachment', description: 'Return a dmail attachment as inline base64 data.', schema: DidSchema.extend({ name: z.string() }), handler: async (runtime, { did, name }) => {
241
+ const buffer = await requireKeymaster(runtime).getDmailAttachment(did, name);
242
+ return buffer ? inlineDataFromBuffer(Buffer.from(buffer), name) : null;
243
+ } }),
244
+ tool({ name: 'archon_list_dmail_attachments', cliCommand: 'list-dmail-attachments', description: 'List attachments of a dmail.', schema: DidSchema.merge(ResolveOptionsSchema), handler: (runtime, { did, ...options }) => requireKeymaster(runtime).listDmailAttachments(did, compactOptions(options)) }),
245
+ ];
246
+ export const ARCHON_MCP_CLI_COMMANDS = ARCHON_MCP_TOOL_DEFINITIONS
247
+ .map(definition => definition.cliCommand)
248
+ .filter((command) => !!command);
249
+ function registerToolDefinition(server, runtime, config, definition) {
250
+ if (definition.mutates && config.readOnly) {
41
251
  return;
42
252
  }
43
253
  const wrapped = async (rawArgs) => {
44
254
  try {
45
- if (options.mutates && options.readOnly) {
255
+ if (definition.mutates && config.readOnly) {
46
256
  throw new Error('Tool disabled by ARCHON_MCP_READ_ONLY=true');
47
257
  }
48
- const args = schema.parse(rawArgs ?? {});
49
- return ok(await handler(args));
258
+ const args = definition.schema.parse(rawArgs ?? {});
259
+ return ok(await definition.handler(runtime, args));
50
260
  }
51
261
  catch (error) {
52
262
  return fail(error);
53
263
  }
54
264
  };
55
265
  if (server.registerTool) {
56
- server.registerTool(name, { description, inputSchema: schema }, wrapped);
266
+ server.registerTool(definition.name, { description: definition.description, inputSchema: definition.schema }, wrapped);
57
267
  return;
58
268
  }
59
- if (server.tool && schema instanceof z.ZodObject) {
60
- server.tool(name, description, schema.shape, wrapped);
269
+ if (server.tool && definition.schema instanceof z.ZodObject) {
270
+ server.tool(definition.name, definition.description, definition.schema.shape, wrapped);
61
271
  return;
62
272
  }
63
273
  throw new Error('MCP server does not support tool registration');
64
274
  }
65
- function compactOptions(options) {
66
- const entries = Object.entries(options).filter(([, value]) => value !== undefined);
67
- return entries.length > 0 ? Object.fromEntries(entries) : undefined;
68
- }
69
275
  export function registerArchonTools(server, runtime, config) {
70
- const mutating = { mutates: true, readOnly: config.readOnly };
71
- registerTool(server, 'archon_get_version', 'Get Archon node version information.', EmptySchema, async () => runtime.node.getVersion());
72
- registerTool(server, 'archon_get_status', 'Get Archon node status.', EmptySchema, async () => runtime.node.getStatus());
73
- registerTool(server, 'archon_list_registries', 'List registries supported by the connected Archon node.', EmptySchema, async () => runtime.node.listRegistries());
74
- registerTool(server, 'archon_list_ids', 'List IDs in the local Keymaster wallet.', EmptySchema, async () => requireKeymaster(runtime).listIds());
75
- registerTool(server, 'archon_get_current_id', 'Get the current local Keymaster wallet ID name.', EmptySchema, async () => requireKeymaster(runtime).getCurrentId());
76
- registerTool(server, 'archon_use_id', 'Set the current local Keymaster wallet ID name.', z.object({ name: z.string() }), async ({ name }) => requireKeymaster(runtime).setCurrentId(name), mutating);
77
- registerTool(server, 'archon_create_id', 'Create a new local Keymaster wallet ID.', z.object({ name: z.string(), registry: z.string().optional() }), async ({ name, registry }) => requireKeymaster(runtime).createId(name, compactOptions({ registry })), mutating);
78
- registerTool(server, 'archon_resolve_did', 'Resolve a DID or DID-like Archon identifier.', z.object({ did: z.string() }).merge(ResolveOptionsSchema), async ({ did, ...options }) => requireKeymaster(runtime).resolveDID(did, compactOptions(options)));
79
- registerTool(server, 'archon_resolve_id', 'Resolve a local ID name, alias, DID, or the current ID when id is omitted.', z.object({ id: z.string().optional() }).merge(ResolveOptionsSchema), async ({ id, ...options }) => {
80
- const keymaster = requireKeymaster(runtime);
81
- const resolvedId = id ?? await keymaster.getCurrentId();
82
- if (!resolvedId) {
83
- throw new Error('No current ID');
84
- }
85
- return keymaster.resolveDID(resolvedId, compactOptions(options));
86
- });
87
- registerTool(server, 'archon_list_aliases', 'List DID aliases in the local Keymaster wallet.', EmptySchema, async () => requireKeymaster(runtime).listAliases());
88
- registerTool(server, 'archon_add_alias', 'Add a DID alias to the local Keymaster wallet.', z.object({ alias: z.string(), did: z.string() }), async ({ alias, did }) => requireKeymaster(runtime).addAlias(alias, did), mutating);
89
- registerTool(server, 'archon_get_alias', 'Get the DID assigned to a local alias.', z.object({ alias: z.string() }), async ({ alias }) => requireKeymaster(runtime).getAlias(alias));
90
- registerTool(server, 'archon_remove_alias', 'Remove a DID alias from the local Keymaster wallet.', z.object({ alias: z.string() }), async ({ alias }) => requireKeymaster(runtime).removeAlias(alias), mutating);
91
- registerTool(server, 'archon_list_addresses', 'List wallet addresses claimed through Herald domains.', EmptySchema, async () => requireKeymaster(runtime).listAddresses());
92
- registerTool(server, 'archon_check_address', 'Check whether a Herald address is available.', z.object({ address: z.string() }), async ({ address }) => requireKeymaster(runtime).checkAddress(address));
93
- registerTool(server, 'archon_add_address', 'Claim a Herald address for the current ID.', z.object({ address: z.string() }), async ({ address }) => requireKeymaster(runtime).addAddress(address), mutating);
94
- registerTool(server, 'archon_remove_address', 'Remove a Herald address from the current ID.', z.object({ address: z.string() }), async ({ address }) => requireKeymaster(runtime).removeAddress(address), mutating);
95
- registerTool(server, 'archon_publish_address', 'Publish a stored Herald address on a DID document.', z.object({ address: z.string().optional(), id: z.string().optional() }), async ({ address, id }) => requireKeymaster(runtime).publishAddress(address, id), mutating);
96
- registerTool(server, 'archon_unpublish_address', 'Remove a published Herald address from a DID document.', z.object({ id: z.string().optional() }), async ({ id }) => requireKeymaster(runtime).unpublishAddress(id), mutating);
97
- registerTool(server, 'archon_list_assets', 'List assets owned by the current local ID.', EmptySchema, async () => requireKeymaster(runtime).listAssets());
98
- registerTool(server, 'archon_create_asset_json', 'Create a JSON asset DID from inline JSON data.', z.object({ data: JsonObjectSchema }).merge(AssetOptionsSchema), async ({ data, ...options }) => requireKeymaster(runtime).createAsset(data, compactOptions(options)), mutating);
99
- registerTool(server, 'archon_get_asset', 'Resolve an asset by local name, alias, or DID.', z.object({ id: z.string() }).merge(ResolveOptionsSchema), async ({ id, ...options }) => requireKeymaster(runtime).resolveAsset(id, compactOptions(options)));
100
- registerTool(server, 'archon_update_asset_json', 'Merge JSON object data into an existing asset.', z.object({ id: z.string(), data: JsonObjectSchema }), async ({ id, data }) => requireKeymaster(runtime).mergeData(id, data), mutating);
101
- registerTool(server, 'archon_transfer_asset', 'Transfer an asset to a new controller DID.', z.object({ id: z.string(), controller: z.string() }), async ({ id, controller }) => requireKeymaster(runtime).transferAsset(id, controller), mutating);
276
+ for (const definition of ARCHON_MCP_TOOL_DEFINITIONS) {
277
+ registerToolDefinition(server, runtime, config, definition);
278
+ }
102
279
  }
103
280
  //# sourceMappingURL=tools.js.map
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@didcid/mcp-server",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Archon MCP server",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -35,9 +35,9 @@
35
35
  "author": "David McFadzean <davidmc@gmail.com>",
36
36
  "license": "MIT",
37
37
  "dependencies": {
38
- "@didcid/cipher": "^0.2.12",
39
- "@didcid/gatekeeper": "^0.4.12",
40
- "@didcid/keymaster": "^0.4.12",
38
+ "@didcid/cipher": "^0.2.13",
39
+ "@didcid/gatekeeper": "^0.4.13",
40
+ "@didcid/keymaster": "^0.4.13",
41
41
  "@modelcontextprotocol/sdk": "^1.29.0",
42
42
  "dotenv": "^16.4.5",
43
43
  "zod": "^3.25.76"
@@ -49,5 +49,5 @@
49
49
  "devDependencies": {
50
50
  "@types/node": "^22.18.11"
51
51
  },
52
- "gitHead": "f6cced9ea07a7de85e205922710f608982853fcc"
52
+ "gitHead": "ecd16e30d8c8ae9af77541eab4108308a14b529f"
53
53
  }