@proof-holdings/mcp-server 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +345 -0
  3. package/dist/http.d.ts +34 -0
  4. package/dist/http.d.ts.map +1 -0
  5. package/dist/http.js +117 -0
  6. package/dist/http.js.map +1 -0
  7. package/dist/server.d.ts +3 -0
  8. package/dist/server.d.ts.map +1 -0
  9. package/dist/server.js +76 -0
  10. package/dist/server.js.map +1 -0
  11. package/dist/tools/api-keys.d.ts +4 -0
  12. package/dist/tools/api-keys.d.ts.map +1 -0
  13. package/dist/tools/api-keys.js +71 -0
  14. package/dist/tools/api-keys.js.map +1 -0
  15. package/dist/tools/assets.d.ts +4 -0
  16. package/dist/tools/assets.d.ts.map +1 -0
  17. package/dist/tools/assets.js +57 -0
  18. package/dist/tools/assets.js.map +1 -0
  19. package/dist/tools/auth.d.ts +4 -0
  20. package/dist/tools/auth.d.ts.map +1 -0
  21. package/dist/tools/auth.js +41 -0
  22. package/dist/tools/auth.js.map +1 -0
  23. package/dist/tools/billing.d.ts +4 -0
  24. package/dist/tools/billing.d.ts.map +1 -0
  25. package/dist/tools/billing.js +16 -0
  26. package/dist/tools/billing.js.map +1 -0
  27. package/dist/tools/dns-credentials.d.ts +4 -0
  28. package/dist/tools/dns-credentials.d.ts.map +1 -0
  29. package/dist/tools/dns-credentials.js +44 -0
  30. package/dist/tools/dns-credentials.js.map +1 -0
  31. package/dist/tools/domains.d.ts +4 -0
  32. package/dist/tools/domains.d.ts.map +1 -0
  33. package/dist/tools/domains.js +235 -0
  34. package/dist/tools/domains.js.map +1 -0
  35. package/dist/tools/emails.d.ts +4 -0
  36. package/dist/tools/emails.d.ts.map +1 -0
  37. package/dist/tools/emails.js +96 -0
  38. package/dist/tools/emails.js.map +1 -0
  39. package/dist/tools/phones.d.ts +4 -0
  40. package/dist/tools/phones.d.ts.map +1 -0
  41. package/dist/tools/phones.js +69 -0
  42. package/dist/tools/phones.js.map +1 -0
  43. package/dist/tools/profiles.d.ts +4 -0
  44. package/dist/tools/profiles.d.ts.map +1 -0
  45. package/dist/tools/profiles.js +183 -0
  46. package/dist/tools/profiles.js.map +1 -0
  47. package/dist/tools/projects.d.ts +4 -0
  48. package/dist/tools/projects.d.ts.map +1 -0
  49. package/dist/tools/projects.js +159 -0
  50. package/dist/tools/projects.js.map +1 -0
  51. package/dist/tools/proofs.d.ts +4 -0
  52. package/dist/tools/proofs.d.ts.map +1 -0
  53. package/dist/tools/proofs.js +60 -0
  54. package/dist/tools/proofs.js.map +1 -0
  55. package/dist/tools/public-profiles.d.ts +4 -0
  56. package/dist/tools/public-profiles.d.ts.map +1 -0
  57. package/dist/tools/public-profiles.js +38 -0
  58. package/dist/tools/public-profiles.js.map +1 -0
  59. package/dist/tools/sessions.d.ts +4 -0
  60. package/dist/tools/sessions.d.ts.map +1 -0
  61. package/dist/tools/sessions.js +50 -0
  62. package/dist/tools/sessions.js.map +1 -0
  63. package/dist/tools/settings.d.ts +4 -0
  64. package/dist/tools/settings.d.ts.map +1 -0
  65. package/dist/tools/settings.js +66 -0
  66. package/dist/tools/settings.js.map +1 -0
  67. package/dist/tools/templates.d.ts +4 -0
  68. package/dist/tools/templates.d.ts.map +1 -0
  69. package/dist/tools/templates.js +115 -0
  70. package/dist/tools/templates.js.map +1 -0
  71. package/dist/tools/twofa.d.ts +4 -0
  72. package/dist/tools/twofa.d.ts.map +1 -0
  73. package/dist/tools/twofa.js +71 -0
  74. package/dist/tools/twofa.js.map +1 -0
  75. package/dist/tools/user-domain-verify.d.ts +4 -0
  76. package/dist/tools/user-domain-verify.d.ts.map +1 -0
  77. package/dist/tools/user-domain-verify.js +46 -0
  78. package/dist/tools/user-domain-verify.js.map +1 -0
  79. package/dist/tools/user-requests.d.ts +4 -0
  80. package/dist/tools/user-requests.d.ts.map +1 -0
  81. package/dist/tools/user-requests.js +103 -0
  82. package/dist/tools/user-requests.js.map +1 -0
  83. package/dist/tools/verification-requests.d.ts +4 -0
  84. package/dist/tools/verification-requests.d.ts.map +1 -0
  85. package/dist/tools/verification-requests.js +101 -0
  86. package/dist/tools/verification-requests.js.map +1 -0
  87. package/dist/tools/verifications.d.ts +4 -0
  88. package/dist/tools/verifications.d.ts.map +1 -0
  89. package/dist/tools/verifications.js +191 -0
  90. package/dist/tools/verifications.js.map +1 -0
  91. package/dist/tools/webhook-deliveries.d.ts +4 -0
  92. package/dist/tools/webhook-deliveries.d.ts.map +1 -0
  93. package/dist/tools/webhook-deliveries.js +68 -0
  94. package/dist/tools/webhook-deliveries.js.map +1 -0
  95. package/dist/types.d.ts +24 -0
  96. package/dist/types.d.ts.map +1 -0
  97. package/dist/types.js +35 -0
  98. package/dist/types.js.map +1 -0
  99. package/package.json +57 -0
@@ -0,0 +1,71 @@
1
+ import { z } from 'zod';
2
+ import { jsonResult, errorResult } from '../types.js';
3
+ import { ApiError } from '../http.js';
4
+ // Mirrors validApiKeyScopes from src/routes/me.ts — keep in sync with backend scope definitions.
5
+ const validScopes = [
6
+ 'verifications:read', 'verifications:write', 'verifications:create', 'verifications:*',
7
+ 'proofs:read', 'proofs:*',
8
+ 'templates:read', 'templates:write', 'templates:*',
9
+ 'profiles:read', 'profiles:write', 'profiles:*',
10
+ 'projects:read', 'projects:write', 'projects:*',
11
+ 'billing:read', 'billing:write', 'billing:*',
12
+ 'settings:read', 'settings:write', 'settings:*',
13
+ 'assets:read', 'assets:write', 'assets:*',
14
+ 'webhooks:read', 'webhooks:write', 'webhooks:*',
15
+ 'auth:read', 'auth:write', 'auth:*',
16
+ ];
17
+ export function registerTools(tool, http) {
18
+ tool('list_api_keys', 'List all API keys for the authenticated account. Returns key metadata (not the secret key values).', {}, async () => {
19
+ try {
20
+ const result = await http.get('/api/v1/me/api-keys');
21
+ return jsonResult(result);
22
+ }
23
+ catch (e) {
24
+ if (e instanceof ApiError)
25
+ return errorResult(`${e.code}: ${e.message}`);
26
+ throw e;
27
+ }
28
+ });
29
+ tool('create_api_key', 'Create a new API key. The secret key value is returned ONLY in this response — store it securely. Note: the secret will be visible in the AI conversation context. May require 2FA verification.', {
30
+ name: z.string().min(1).max(100).optional().describe('Human-readable key name'),
31
+ environment: z.enum(['production', 'test']).optional().describe('Key environment (default: production)'),
32
+ scopes: z.array(z.enum(validScopes)).max(20).optional().describe('Permission scopes for the key'),
33
+ }, async (args) => {
34
+ try {
35
+ const result = await http.post('/api/v1/me/api-keys', args);
36
+ return jsonResult(result);
37
+ }
38
+ catch (e) {
39
+ if (e instanceof ApiError)
40
+ return errorResult(`${e.code}: ${e.message}`);
41
+ throw e;
42
+ }
43
+ });
44
+ tool('revoke_api_key', 'Revoke an API key by ID. The key will immediately stop working. This action cannot be undone.', {
45
+ id: z.string().describe('API key ID to revoke'),
46
+ }, async ({ id }) => {
47
+ try {
48
+ const result = await http.del(`/api/v1/me/api-keys/${encodeURIComponent(id)}`);
49
+ return jsonResult(result);
50
+ }
51
+ catch (e) {
52
+ if (e instanceof ApiError)
53
+ return errorResult(`${e.code}: ${e.message}`);
54
+ throw e;
55
+ }
56
+ });
57
+ tool('regenerate_api_key', 'Regenerate an API key, issuing a new secret while keeping the same ID and settings. The old key stops working immediately. The new secret is returned ONLY in this response. Note: the secret will be visible in the AI conversation context.', {
58
+ id: z.string().describe('API key ID to regenerate'),
59
+ }, async ({ id }) => {
60
+ try {
61
+ const result = await http.post(`/api/v1/me/api-keys/${encodeURIComponent(id)}/regenerate`);
62
+ return jsonResult(result);
63
+ }
64
+ catch (e) {
65
+ if (e instanceof ApiError)
66
+ return errorResult(`${e.code}: ${e.message}`);
67
+ throw e;
68
+ }
69
+ });
70
+ }
71
+ //# sourceMappingURL=api-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-keys.js","sourceRoot":"","sources":["../../src/tools/api-keys.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { HttpClient } from '../http.js';
2
+ import type { ToolRegistrar } from '../types.js';
3
+ export declare function registerTools(tool: ToolRegistrar, http: HttpClient): void;
4
+ //# sourceMappingURL=assets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/tools/assets.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,QA2DlE"}
@@ -0,0 +1,57 @@
1
+ import { z } from 'zod';
2
+ import { jsonResult, errorResult } from '../types.js';
3
+ import { ApiError } from '../http.js';
4
+ export function registerTools(tool, http) {
5
+ tool('list_assets', 'List all verified assets for the authenticated user. Assets are verified identities (phones, emails, domains).', {
6
+ type: z.enum(['phone', 'email', 'domain', 'social', 'wallet']).optional().describe('Filter by asset type'),
7
+ status: z.enum(['active', 'revoked', 'expired']).optional().describe('Filter by status'),
8
+ page: z.number().int().positive().optional().describe('Page number'),
9
+ limit: z.number().int().min(1).max(100).optional().describe('Items per page'),
10
+ }, async (args) => {
11
+ try {
12
+ const query = {};
13
+ if (args.type !== undefined)
14
+ query.type = args.type;
15
+ if (args.status !== undefined)
16
+ query.status = args.status;
17
+ if (args.page !== undefined)
18
+ query.page = args.page;
19
+ if (args.limit !== undefined)
20
+ query.limit = args.limit;
21
+ const result = await http.get('/api/v1/me/assets', query);
22
+ return jsonResult(result);
23
+ }
24
+ catch (e) {
25
+ if (e instanceof ApiError)
26
+ return errorResult(`${e.code}: ${e.message}`);
27
+ throw e;
28
+ }
29
+ });
30
+ tool('get_asset', 'Get a single verified asset by ID. Returns details including type, value, status, and verification timestamps.', {
31
+ id: z.string().describe('Asset ID'),
32
+ }, async ({ id }) => {
33
+ try {
34
+ const result = await http.get(`/api/v1/me/assets/${encodeURIComponent(id)}`);
35
+ return jsonResult(result);
36
+ }
37
+ catch (e) {
38
+ if (e instanceof ApiError)
39
+ return errorResult(`${e.code}: ${e.message}`);
40
+ throw e;
41
+ }
42
+ });
43
+ tool('revoke_asset', 'Revoke a verified asset by ID. The asset will be marked as revoked and associated proofs will no longer validate.', {
44
+ id: z.string().describe('Asset ID'),
45
+ }, async ({ id }) => {
46
+ try {
47
+ const result = await http.del(`/api/v1/me/assets/${encodeURIComponent(id)}`);
48
+ return jsonResult(result);
49
+ }
50
+ catch (e) {
51
+ if (e instanceof ApiError)
52
+ return errorResult(`${e.code}: ${e.message}`);
53
+ throw e;
54
+ }
55
+ });
56
+ }
57
+ //# sourceMappingURL=assets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/tools/assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,UAAU,aAAa,CAAC,IAAmB,EAAE,IAAgB;IACjE,IAAI,CACF,aAAa,EACb,gHAAgH,EAChH;QACE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QAC1G,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACxF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QACpE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;KAC9E,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,KAAK,GAA0D,EAAE,CAAC;YACxE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;gBAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACpD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;gBAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1D,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;gBAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACpD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;gBAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;YAC1D,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ;gBAAE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CACF,CAAC;IAEF,IAAI,CACF,WAAW,EACX,gHAAgH,EAChH;QACE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;KACpC,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,qBAAqB,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC7E,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ;gBAAE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CACF,CAAC;IAEF,IAAI,CACF,cAAc,EACd,mHAAmH,EACnH;QACE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;KACpC,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,qBAAqB,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC7E,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ;gBAAE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { HttpClient } from '../http.js';
2
+ import type { ToolRegistrar } from '../types.js';
3
+ export declare function registerTools(tool: ToolRegistrar, http: HttpClient): void;
4
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/tools/auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,QA+ClE"}
@@ -0,0 +1,41 @@
1
+ import { z } from 'zod';
2
+ import { jsonResult, errorResult } from '../types.js';
3
+ import { ApiError } from '../http.js';
4
+ export function registerTools(tool, http) {
5
+ tool('get_current_user', 'Get the current authenticated user. Returns account details, plan, and settings for the API key owner.', {}, async () => {
6
+ try {
7
+ const result = await http.get('/api/v1/auth/me');
8
+ return jsonResult(result);
9
+ }
10
+ catch (e) {
11
+ if (e instanceof ApiError)
12
+ return errorResult(`${e.code}: ${e.message}`);
13
+ throw e;
14
+ }
15
+ });
16
+ tool('list_auth_sessions', 'List all active authentication sessions for the current user. Shows session details including channel, user agent, and expiry. When called via API key, no session is marked as is_current.', {}, async () => {
17
+ try {
18
+ const result = await http.get('/api/v1/auth/sessions');
19
+ return jsonResult(result);
20
+ }
21
+ catch (e) {
22
+ if (e instanceof ApiError)
23
+ return errorResult(`${e.code}: ${e.message}`);
24
+ throw e;
25
+ }
26
+ });
27
+ tool('revoke_auth_session', 'Revoke a specific authentication session by ID. When called via JWT, cannot revoke the current session. When called via API key, any session can be revoked.', {
28
+ session_id: z.string().describe('Session ID to revoke'),
29
+ }, async ({ session_id }) => {
30
+ try {
31
+ const result = await http.del(`/api/v1/auth/sessions/${encodeURIComponent(session_id)}`);
32
+ return jsonResult(result);
33
+ }
34
+ catch (e) {
35
+ if (e instanceof ApiError)
36
+ return errorResult(`${e.code}: ${e.message}`);
37
+ throw e;
38
+ }
39
+ });
40
+ }
41
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/tools/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,UAAU,aAAa,CAAC,IAAmB,EAAE,IAAgB;IACjE,IAAI,CACF,kBAAkB,EAClB,wGAAwG,EACxG,EAAE,EACF,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YACjD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ;gBAAE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CACF,CAAC;IAEF,IAAI,CACF,oBAAoB,EACpB,6LAA6L,EAC7L,EAAE,EACF,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACvD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ;gBAAE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CACF,CAAC;IAEF,IAAI,CACF,qBAAqB,EACrB,8JAA8J,EAC9J;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;KACxD,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QACvB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,yBAAyB,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACzF,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ;gBAAE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { HttpClient } from '../http.js';
2
+ import type { ToolRegistrar } from '../types.js';
3
+ export declare function registerTools(tool: ToolRegistrar, http: HttpClient): void;
4
+ //# sourceMappingURL=billing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../src/tools/billing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,QAelE"}
@@ -0,0 +1,16 @@
1
+ import { jsonResult, errorResult } from '../types.js';
2
+ import { ApiError } from '../http.js';
3
+ export function registerTools(tool, http) {
4
+ tool('get_subscription', 'Get the current subscription details including plan, status, billing period, and usage limits.', {}, async () => {
5
+ try {
6
+ const result = await http.get('/api/v1/billing/subscription');
7
+ return jsonResult(result);
8
+ }
9
+ catch (e) {
10
+ if (e instanceof ApiError)
11
+ return errorResult(`${e.code}: ${e.message}`);
12
+ throw e;
13
+ }
14
+ });
15
+ }
16
+ //# sourceMappingURL=billing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing.js","sourceRoot":"","sources":["../../src/tools/billing.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,UAAU,aAAa,CAAC,IAAmB,EAAE,IAAgB;IACjE,IAAI,CACF,kBAAkB,EAClB,gGAAgG,EAChG,EAAE,EACF,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC9D,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ;gBAAE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { HttpClient } from '../http.js';
2
+ import type { ToolRegistrar } from '../types.js';
3
+ export declare function registerTools(tool: ToolRegistrar, http: HttpClient): void;
4
+ //# sourceMappingURL=dns-credentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dns-credentials.d.ts","sourceRoot":"","sources":["../../src/tools/dns-credentials.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,QAkDlE"}
@@ -0,0 +1,44 @@
1
+ import { z } from 'zod';
2
+ import { jsonResult, errorResult, credentialsSchema } from '../types.js';
3
+ import { ApiError } from '../http.js';
4
+ export function registerTools(tool, http) {
5
+ tool('list_dns_credentials', 'List all stored DNS provider credentials for the authenticated account. Returns credential metadata (not secret values).', {}, async () => {
6
+ try {
7
+ const result = await http.get('/api/v1/me/dns-credentials');
8
+ return jsonResult(result);
9
+ }
10
+ catch (e) {
11
+ if (e instanceof ApiError)
12
+ return errorResult(`${e.code}: ${e.message}`);
13
+ throw e;
14
+ }
15
+ });
16
+ tool('create_dns_credential', 'Store DNS provider credentials for automated domain verification. Note: credentials will be visible in the AI conversation context.', {
17
+ provider: z.string().min(1).max(50).describe('DNS provider identifier (e.g. cloudflare, route53, digitalocean)'),
18
+ credentials: credentialsSchema,
19
+ }, async (args) => {
20
+ try {
21
+ const result = await http.post('/api/v1/me/dns-credentials', args);
22
+ return jsonResult(result);
23
+ }
24
+ catch (e) {
25
+ if (e instanceof ApiError)
26
+ return errorResult(`${e.code}: ${e.message}`);
27
+ throw e;
28
+ }
29
+ });
30
+ tool('delete_dns_credential', 'Delete a stored DNS provider credential. Domains using this credential will need new credentials for automated verification.', {
31
+ id: z.string().describe('DNS credential ID to delete'),
32
+ }, async ({ id }) => {
33
+ try {
34
+ const result = await http.del(`/api/v1/me/dns-credentials/${encodeURIComponent(id)}`);
35
+ return jsonResult(result);
36
+ }
37
+ catch (e) {
38
+ if (e instanceof ApiError)
39
+ return errorResult(`${e.code}: ${e.message}`);
40
+ throw e;
41
+ }
42
+ });
43
+ }
44
+ //# sourceMappingURL=dns-credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dns-credentials.js","sourceRoot":"","sources":["../../src/tools/dns-credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,UAAU,aAAa,CAAC,IAAmB,EAAE,IAAgB;IACjE,IAAI,CACF,sBAAsB,EACtB,0HAA0H,EAC1H,EAAE,EACF,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAC5D,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ;gBAAE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CACF,CAAC;IAEF,IAAI,CACF,uBAAuB,EACvB,qIAAqI,EACrI;QACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,kEAAkE,CAAC;QAChH,WAAW,EAAE,iBAAiB;KAC/B,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAC;YACnE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ;gBAAE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CACF,CAAC;IAEF,IAAI,CACF,uBAAuB,EACvB,8HAA8H,EAC9H;QACE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;KACvD,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,8BAA8B,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACtF,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,QAAQ;gBAAE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { HttpClient } from '../http.js';
2
+ import type { ToolRegistrar } from '../types.js';
3
+ export declare function registerTools(tool: ToolRegistrar, http: HttpClient): void;
4
+ //# sourceMappingURL=domains.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domains.d.ts","sourceRoot":"","sources":["../../src/tools/domains.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAYjD,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,QAmSlE"}
@@ -0,0 +1,235 @@
1
+ import { z } from 'zod';
2
+ import { jsonResult, errorResult, credentialsSchema } from '../types.js';
3
+ import { ApiError } from '../http.js';
4
+ const EMAIL_PREFIXES = ['admin', 'administrator', 'webmaster', 'hostmaster', 'postmaster'];
5
+ const dnsProviderSchema = {
6
+ id: z.string().describe('Domain ID'),
7
+ provider: z.string().min(1).max(50).describe('DNS provider identifier'),
8
+ credentials: credentialsSchema,
9
+ };
10
+ export function registerTools(tool, http) {
11
+ tool('list_domains', 'List all domains for the authenticated account. Returns domain metadata including verification status.', {}, async () => {
12
+ try {
13
+ const result = await http.get('/api/v1/me/domains');
14
+ return jsonResult(result);
15
+ }
16
+ catch (e) {
17
+ if (e instanceof ApiError)
18
+ return errorResult(`${e.code}: ${e.message}`);
19
+ throw e;
20
+ }
21
+ });
22
+ tool('add_domain', 'Add a new domain to verify ownership. Optionally specify a project, email sending intent, and verification method.', {
23
+ domain: z.string().min(1).max(255).describe('Domain name to add (e.g. example.com)'),
24
+ project_id: z.string().optional().describe('Project ID to associate the domain with'),
25
+ for_email_sending: z.boolean().optional().describe('Whether this domain is for email sending'),
26
+ verification_method: z.enum(['auto_dns', 'manual_dns', 'http_file', 'email']).optional().describe('Preferred verification method'),
27
+ }, async (args) => {
28
+ try {
29
+ const result = await http.post('/api/v1/me/domains', args);
30
+ return jsonResult(result);
31
+ }
32
+ catch (e) {
33
+ if (e instanceof ApiError)
34
+ return errorResult(`${e.code}: ${e.message}`);
35
+ throw e;
36
+ }
37
+ });
38
+ tool('get_domain', 'Get details of a specific domain by ID, including verification status, DNS records, and provider connections.', {
39
+ id: z.string().describe('Domain ID'),
40
+ }, async ({ id }) => {
41
+ try {
42
+ const result = await http.get(`/api/v1/me/domains/${encodeURIComponent(id)}`);
43
+ return jsonResult(result);
44
+ }
45
+ catch (e) {
46
+ if (e instanceof ApiError)
47
+ return errorResult(`${e.code}: ${e.message}`);
48
+ throw e;
49
+ }
50
+ });
51
+ tool('delete_domain', 'Remove a domain from the account. This cannot be undone.', {
52
+ id: z.string().describe('Domain ID to delete'),
53
+ }, async ({ id }) => {
54
+ try {
55
+ const result = await http.del(`/api/v1/me/domains/${encodeURIComponent(id)}`);
56
+ return jsonResult(result);
57
+ }
58
+ catch (e) {
59
+ if (e instanceof ApiError)
60
+ return errorResult(`${e.code}: ${e.message}`);
61
+ throw e;
62
+ }
63
+ });
64
+ tool('verify_domain', 'Trigger domain verification. Checks DNS records or other verification method to confirm domain ownership.', {
65
+ id: z.string().describe('Domain ID to verify'),
66
+ }, async ({ id }) => {
67
+ try {
68
+ const result = await http.post(`/api/v1/me/domains/${encodeURIComponent(id)}/verify`);
69
+ return jsonResult(result);
70
+ }
71
+ catch (e) {
72
+ if (e instanceof ApiError)
73
+ return errorResult(`${e.code}: ${e.message}`);
74
+ throw e;
75
+ }
76
+ });
77
+ tool('connect_cloudflare', 'Connect a Cloudflare API token to a domain for automated DNS record management. Note: the API token will be visible in the AI conversation context.', {
78
+ id: z.string().describe('Domain ID'),
79
+ api_token: z.string().min(1).describe('Cloudflare API token with DNS edit permissions'),
80
+ }, async ({ id, api_token }) => {
81
+ try {
82
+ const result = await http.post(`/api/v1/me/domains/${encodeURIComponent(id)}/connect/cloudflare`, { api_token });
83
+ return jsonResult(result);
84
+ }
85
+ catch (e) {
86
+ if (e instanceof ApiError)
87
+ return errorResult(`${e.code}: ${e.message}`);
88
+ throw e;
89
+ }
90
+ });
91
+ tool('connect_godaddy', 'Connect GoDaddy API credentials to a domain for automated DNS record management. Note: the API key and secret will be visible in the AI conversation context.', {
92
+ id: z.string().describe('Domain ID'),
93
+ api_key: z.string().min(1).describe('GoDaddy API key'),
94
+ api_secret: z.string().min(1).describe('GoDaddy API secret'),
95
+ }, async ({ id, api_key, api_secret }) => {
96
+ try {
97
+ const result = await http.post(`/api/v1/me/domains/${encodeURIComponent(id)}/connect/godaddy`, { api_key, api_secret });
98
+ return jsonResult(result);
99
+ }
100
+ catch (e) {
101
+ if (e instanceof ApiError)
102
+ return errorResult(`${e.code}: ${e.message}`);
103
+ throw e;
104
+ }
105
+ });
106
+ tool('connect_dns_provider', 'Connect a generic DNS provider to a domain using provider-specific credentials. Note: credentials will be visible in the AI conversation context.', dnsProviderSchema, async ({ id, provider, credentials }) => {
107
+ try {
108
+ const result = await http.post(`/api/v1/me/domains/${encodeURIComponent(id)}/connect/${encodeURIComponent(provider)}`, { credentials });
109
+ return jsonResult(result);
110
+ }
111
+ catch (e) {
112
+ if (e instanceof ApiError)
113
+ return errorResult(`${e.code}: ${e.message}`);
114
+ throw e;
115
+ }
116
+ });
117
+ tool('add_verification_provider', 'Add an additional DNS provider for verification to an already-verified domain. Note: credentials will be visible in the AI conversation context.', dnsProviderSchema, async ({ id, provider, credentials }) => {
118
+ try {
119
+ const result = await http.post(`/api/v1/me/domains/${encodeURIComponent(id)}/add-provider/${encodeURIComponent(provider)}`, { credentials });
120
+ return jsonResult(result);
121
+ }
122
+ catch (e) {
123
+ if (e instanceof ApiError)
124
+ return errorResult(`${e.code}: ${e.message}`);
125
+ throw e;
126
+ }
127
+ });
128
+ tool('get_dns_providers', 'Get metadata for all supported DNS providers, including required credential fields and documentation links.', {}, async () => {
129
+ try {
130
+ const result = await http.get('/api/v1/me/dns-providers');
131
+ return jsonResult(result);
132
+ }
133
+ catch (e) {
134
+ if (e instanceof ApiError)
135
+ return errorResult(`${e.code}: ${e.message}`);
136
+ throw e;
137
+ }
138
+ });
139
+ tool('verify_domain_with_credentials', 'Verify a pending domain using previously stored DNS credentials. Use when credentials are already connected.', {
140
+ id: z.string().describe('Domain ID to verify'),
141
+ }, async ({ id }) => {
142
+ try {
143
+ const result = await http.post(`/api/v1/me/domains/${encodeURIComponent(id)}/verify-with-credentials`);
144
+ return jsonResult(result);
145
+ }
146
+ catch (e) {
147
+ if (e instanceof ApiError)
148
+ return errorResult(`${e.code}: ${e.message}`);
149
+ throw e;
150
+ }
151
+ });
152
+ tool('check_domain_credentials', 'Check if stored DNS credentials have access to a domain. Use before triggering verification to confirm the credentials work.', {
153
+ id: z.string().describe('Domain ID to check credentials for'),
154
+ }, async ({ id }) => {
155
+ try {
156
+ const result = await http.get(`/api/v1/me/domains/${encodeURIComponent(id)}/check-credentials`);
157
+ return jsonResult(result);
158
+ }
159
+ catch (e) {
160
+ if (e instanceof ApiError)
161
+ return errorResult(`${e.code}: ${e.message}`);
162
+ throw e;
163
+ }
164
+ });
165
+ tool('start_domain_email_verification', 'Start domain verification via corporate email. Sends a verification code to a standard admin email address at the domain.', {
166
+ id: z.string().describe('Domain ID'),
167
+ email_prefix: z.enum(EMAIL_PREFIXES).optional().describe('Email prefix to send verification to (default: admin)'),
168
+ }, async ({ id, ...body }) => {
169
+ try {
170
+ const result = await http.post(`/api/v1/me/domains/${encodeURIComponent(id)}/verify-email`, body);
171
+ return jsonResult(result);
172
+ }
173
+ catch (e) {
174
+ if (e instanceof ApiError)
175
+ return errorResult(`${e.code}: ${e.message}`);
176
+ throw e;
177
+ }
178
+ });
179
+ tool('confirm_domain_email_code', 'Confirm domain email verification by submitting the code sent to the corporate email address.', {
180
+ id: z.string().describe('Domain ID'),
181
+ code: z.string().min(1).max(10).describe('Verification code from the email'),
182
+ }, async ({ id, code }) => {
183
+ try {
184
+ const result = await http.post(`/api/v1/me/domains/${encodeURIComponent(id)}/verify-email/confirm`, { code });
185
+ return jsonResult(result);
186
+ }
187
+ catch (e) {
188
+ if (e instanceof ApiError)
189
+ return errorResult(`${e.code}: ${e.message}`);
190
+ throw e;
191
+ }
192
+ });
193
+ tool('resend_domain_email', 'Resend the domain verification email. Rate limited to 3 requests per minute.', {
194
+ id: z.string().describe('Domain ID'),
195
+ email_prefix: z.enum(EMAIL_PREFIXES).optional().describe('Email prefix to resend verification to'),
196
+ }, async ({ id, ...body }) => {
197
+ try {
198
+ const result = await http.post(`/api/v1/me/domains/${encodeURIComponent(id)}/verify-email/resend`, body);
199
+ return jsonResult(result);
200
+ }
201
+ catch (e) {
202
+ if (e instanceof ApiError)
203
+ return errorResult(`${e.code}: ${e.message}`);
204
+ throw e;
205
+ }
206
+ });
207
+ tool('setup_domain_email', 'Set up email sending for a verified domain. Configures the domain for sending verification emails from a custom address.', {
208
+ id: z.string().describe('Domain ID'),
209
+ from_email: z.string().email().optional().describe('Custom from email address for the domain'),
210
+ }, async ({ id, ...body }) => {
211
+ try {
212
+ const result = await http.post(`/api/v1/me/domains/${encodeURIComponent(id)}/email-setup`, body);
213
+ return jsonResult(result);
214
+ }
215
+ catch (e) {
216
+ if (e instanceof ApiError)
217
+ return errorResult(`${e.code}: ${e.message}`);
218
+ throw e;
219
+ }
220
+ });
221
+ tool('check_domain_email_status', 'Check the email sending setup status for a domain, including DNS record configuration progress.', {
222
+ id: z.string().describe('Domain ID'),
223
+ }, async ({ id }) => {
224
+ try {
225
+ const result = await http.get(`/api/v1/me/domains/${encodeURIComponent(id)}/email-status`);
226
+ return jsonResult(result);
227
+ }
228
+ catch (e) {
229
+ if (e instanceof ApiError)
230
+ return errorResult(`${e.code}: ${e.message}`);
231
+ throw e;
232
+ }
233
+ });
234
+ }
235
+ //# sourceMappingURL=domains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domains.js","sourceRoot":"","sources":["../../src/tools/domains.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { HttpClient } from '../http.js';
2
+ import type { ToolRegistrar } from '../types.js';
3
+ export declare function registerTools(tool: ToolRegistrar, http: HttpClient): void;
4
+ //# sourceMappingURL=emails.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emails.d.ts","sourceRoot":"","sources":["../../src/tools/emails.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,QAsHlE"}