@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.
- package/LICENSE +21 -0
- package/README.md +345 -0
- package/dist/http.d.ts +34 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +117 -0
- package/dist/http.js.map +1 -0
- package/dist/server.d.ts +3 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +76 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/api-keys.d.ts +4 -0
- package/dist/tools/api-keys.d.ts.map +1 -0
- package/dist/tools/api-keys.js +71 -0
- package/dist/tools/api-keys.js.map +1 -0
- package/dist/tools/assets.d.ts +4 -0
- package/dist/tools/assets.d.ts.map +1 -0
- package/dist/tools/assets.js +57 -0
- package/dist/tools/assets.js.map +1 -0
- package/dist/tools/auth.d.ts +4 -0
- package/dist/tools/auth.d.ts.map +1 -0
- package/dist/tools/auth.js +41 -0
- package/dist/tools/auth.js.map +1 -0
- package/dist/tools/billing.d.ts +4 -0
- package/dist/tools/billing.d.ts.map +1 -0
- package/dist/tools/billing.js +16 -0
- package/dist/tools/billing.js.map +1 -0
- package/dist/tools/dns-credentials.d.ts +4 -0
- package/dist/tools/dns-credentials.d.ts.map +1 -0
- package/dist/tools/dns-credentials.js +44 -0
- package/dist/tools/dns-credentials.js.map +1 -0
- package/dist/tools/domains.d.ts +4 -0
- package/dist/tools/domains.d.ts.map +1 -0
- package/dist/tools/domains.js +235 -0
- package/dist/tools/domains.js.map +1 -0
- package/dist/tools/emails.d.ts +4 -0
- package/dist/tools/emails.d.ts.map +1 -0
- package/dist/tools/emails.js +96 -0
- package/dist/tools/emails.js.map +1 -0
- package/dist/tools/phones.d.ts +4 -0
- package/dist/tools/phones.d.ts.map +1 -0
- package/dist/tools/phones.js +69 -0
- package/dist/tools/phones.js.map +1 -0
- package/dist/tools/profiles.d.ts +4 -0
- package/dist/tools/profiles.d.ts.map +1 -0
- package/dist/tools/profiles.js +183 -0
- package/dist/tools/profiles.js.map +1 -0
- package/dist/tools/projects.d.ts +4 -0
- package/dist/tools/projects.d.ts.map +1 -0
- package/dist/tools/projects.js +159 -0
- package/dist/tools/projects.js.map +1 -0
- package/dist/tools/proofs.d.ts +4 -0
- package/dist/tools/proofs.d.ts.map +1 -0
- package/dist/tools/proofs.js +60 -0
- package/dist/tools/proofs.js.map +1 -0
- package/dist/tools/public-profiles.d.ts +4 -0
- package/dist/tools/public-profiles.d.ts.map +1 -0
- package/dist/tools/public-profiles.js +38 -0
- package/dist/tools/public-profiles.js.map +1 -0
- package/dist/tools/sessions.d.ts +4 -0
- package/dist/tools/sessions.d.ts.map +1 -0
- package/dist/tools/sessions.js +50 -0
- package/dist/tools/sessions.js.map +1 -0
- package/dist/tools/settings.d.ts +4 -0
- package/dist/tools/settings.d.ts.map +1 -0
- package/dist/tools/settings.js +66 -0
- package/dist/tools/settings.js.map +1 -0
- package/dist/tools/templates.d.ts +4 -0
- package/dist/tools/templates.d.ts.map +1 -0
- package/dist/tools/templates.js +115 -0
- package/dist/tools/templates.js.map +1 -0
- package/dist/tools/twofa.d.ts +4 -0
- package/dist/tools/twofa.d.ts.map +1 -0
- package/dist/tools/twofa.js +71 -0
- package/dist/tools/twofa.js.map +1 -0
- package/dist/tools/user-domain-verify.d.ts +4 -0
- package/dist/tools/user-domain-verify.d.ts.map +1 -0
- package/dist/tools/user-domain-verify.js +46 -0
- package/dist/tools/user-domain-verify.js.map +1 -0
- package/dist/tools/user-requests.d.ts +4 -0
- package/dist/tools/user-requests.d.ts.map +1 -0
- package/dist/tools/user-requests.js +103 -0
- package/dist/tools/user-requests.js.map +1 -0
- package/dist/tools/verification-requests.d.ts +4 -0
- package/dist/tools/verification-requests.d.ts.map +1 -0
- package/dist/tools/verification-requests.js +101 -0
- package/dist/tools/verification-requests.js.map +1 -0
- package/dist/tools/verifications.d.ts +4 -0
- package/dist/tools/verifications.d.ts.map +1 -0
- package/dist/tools/verifications.js +191 -0
- package/dist/tools/verifications.js.map +1 -0
- package/dist/tools/webhook-deliveries.d.ts +4 -0
- package/dist/tools/webhook-deliveries.d.ts.map +1 -0
- package/dist/tools/webhook-deliveries.js +68 -0
- package/dist/tools/webhook-deliveries.js.map +1 -0
- package/dist/types.d.ts +24 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +35 -0
- package/dist/types.js.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1,103 @@
|
|
|
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_my_requests', 'List verification requests created by the authenticated user.', {}, async () => {
|
|
6
|
+
try {
|
|
7
|
+
const result = await http.get('/api/v1/me/verification-requests');
|
|
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_incoming_requests', 'List incoming verification requests where the authenticated user is the subject.', {}, async () => {
|
|
17
|
+
try {
|
|
18
|
+
const result = await http.get('/api/v1/me/verification-requests/incoming');
|
|
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('create_user_request', 'Create a new verification request to ask another user to share verified assets.', {
|
|
28
|
+
assets: z.array(z.string()).min(1).max(10).describe('Asset type identifiers to request (e.g. email, phone, identity)'),
|
|
29
|
+
reference_id: z.string().optional().describe('External reference ID for tracking'),
|
|
30
|
+
project_id: z.string().optional().describe('Project ID to associate the request with'),
|
|
31
|
+
public_profile_id: z.string().optional().describe('Public profile ID of the requestor'),
|
|
32
|
+
action_type: z.enum(['verification', 'onboarding', 'compliance']).optional().describe('Purpose of the request (default: verification)'),
|
|
33
|
+
action_context: z.string().optional().describe('Additional context about why assets are needed'),
|
|
34
|
+
validity_requirement: z.string().optional().describe('Required validity level for shared assets'),
|
|
35
|
+
partial_ok: z.boolean().optional().describe('Whether partial asset sharing is acceptable (default: false)'),
|
|
36
|
+
redirect_url: z.string().url().optional().describe('URL to redirect the subject after completing the request'),
|
|
37
|
+
callback_url: z.string().url().optional().describe('Webhook URL for request status updates'),
|
|
38
|
+
expires_in_hours: z.number().int().min(1).max(720).optional().describe('Hours until request expires (default: 24)'),
|
|
39
|
+
}, async (args) => {
|
|
40
|
+
try {
|
|
41
|
+
const result = await http.post('/api/v1/me/verification-requests', args);
|
|
42
|
+
return jsonResult(result);
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
if (e instanceof ApiError)
|
|
46
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
47
|
+
throw e;
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
tool('claim_request_assets', 'Claim shared assets from a completed verification request.', {
|
|
51
|
+
id: z.string().describe('Verification request ID'),
|
|
52
|
+
}, async ({ id }) => {
|
|
53
|
+
try {
|
|
54
|
+
const result = await http.post(`/api/v1/me/verification-requests/${encodeURIComponent(id)}/claim`);
|
|
55
|
+
return jsonResult(result);
|
|
56
|
+
}
|
|
57
|
+
catch (e) {
|
|
58
|
+
if (e instanceof ApiError)
|
|
59
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
60
|
+
throw e;
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
tool('cancel_user_request', 'Cancel a pending verification request. Only the creator can cancel.', {
|
|
64
|
+
id: z.string().describe('Verification request ID to cancel'),
|
|
65
|
+
}, async ({ id }) => {
|
|
66
|
+
try {
|
|
67
|
+
const result = await http.del(`/api/v1/me/verification-requests/${encodeURIComponent(id)}`);
|
|
68
|
+
return jsonResult(result);
|
|
69
|
+
}
|
|
70
|
+
catch (e) {
|
|
71
|
+
if (e instanceof ApiError)
|
|
72
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
73
|
+
throw e;
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
tool('extend_request', 'Extend the expiration time of a pending verification request.', {
|
|
77
|
+
id: z.string().describe('Verification request ID to extend'),
|
|
78
|
+
}, async ({ id }) => {
|
|
79
|
+
try {
|
|
80
|
+
const result = await http.post(`/api/v1/me/verification-requests/${encodeURIComponent(id)}/extend`);
|
|
81
|
+
return jsonResult(result);
|
|
82
|
+
}
|
|
83
|
+
catch (e) {
|
|
84
|
+
if (e instanceof ApiError)
|
|
85
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
86
|
+
throw e;
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
tool('share_request_email', 'Send an email notification to the subject of a verification request.', {
|
|
90
|
+
id: z.string().describe('Verification request ID'),
|
|
91
|
+
}, async ({ id }) => {
|
|
92
|
+
try {
|
|
93
|
+
const result = await http.post(`/api/v1/me/verification-requests/${encodeURIComponent(id)}/share-email`);
|
|
94
|
+
return jsonResult(result);
|
|
95
|
+
}
|
|
96
|
+
catch (e) {
|
|
97
|
+
if (e instanceof ApiError)
|
|
98
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
99
|
+
throw e;
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=user-requests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-requests.js","sourceRoot":"","sources":["../../src/tools/user-requests.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification-requests.d.ts","sourceRoot":"","sources":["../../src/tools/verification-requests.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,QAyHlE"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { jsonResult, errorResult, pollUntilTerminal } from '../types.js';
|
|
3
|
+
import { ApiError } from '../http.js';
|
|
4
|
+
export function registerTools(tool, http) {
|
|
5
|
+
tool('create_verification_request', 'Create a multi-asset verification request. Allows verifying multiple assets (phone, email, domain) in a single flow.', {
|
|
6
|
+
assets: z.array(z.object({
|
|
7
|
+
type: z.enum(['phone', 'email', 'domain']).describe('Asset type to verify'),
|
|
8
|
+
value: z.string().describe('The identifier to verify (phone number, email, or domain)'),
|
|
9
|
+
channel: z.enum(['sms', 'whatsapp', 'telegram', 'email', 'dns', 'http']).optional().describe('Verification channel'),
|
|
10
|
+
})).describe('Array of assets to verify'),
|
|
11
|
+
reference_id: z.string().optional().describe('Your unique reference ID for this request'),
|
|
12
|
+
external_user_id: z.string().optional().describe('Your application user ID'),
|
|
13
|
+
callback_url: z.string().optional().describe('Webhook URL for status updates'),
|
|
14
|
+
metadata: z.record(z.string()).optional().describe('Custom key-value metadata'),
|
|
15
|
+
}, async (args) => {
|
|
16
|
+
try {
|
|
17
|
+
const result = await http.post('/api/v1/verification-requests', args);
|
|
18
|
+
return jsonResult(result);
|
|
19
|
+
}
|
|
20
|
+
catch (e) {
|
|
21
|
+
if (e instanceof ApiError)
|
|
22
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
23
|
+
throw e;
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
tool('get_verification_request', 'Get a verification request by ID. Returns the request with all its asset verification statuses.', {
|
|
27
|
+
id: z.string().describe('Verification request ID'),
|
|
28
|
+
}, async ({ id }) => {
|
|
29
|
+
try {
|
|
30
|
+
const result = await http.get(`/api/v1/verification-requests/${encodeURIComponent(id)}`);
|
|
31
|
+
return jsonResult(result);
|
|
32
|
+
}
|
|
33
|
+
catch (e) {
|
|
34
|
+
if (e instanceof ApiError)
|
|
35
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
36
|
+
throw e;
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
tool('list_verification_requests', 'List verification requests with optional filters. Returns paginated results.', {
|
|
40
|
+
status: z.enum(['pending', 'completed', 'expired', 'cancelled']).optional().describe('Filter by status'),
|
|
41
|
+
page: z.number().int().positive().optional().describe('Page number'),
|
|
42
|
+
limit: z.number().int().min(1).max(100).optional().describe('Items per page'),
|
|
43
|
+
}, async (args) => {
|
|
44
|
+
try {
|
|
45
|
+
const query = {};
|
|
46
|
+
if (args.status !== undefined)
|
|
47
|
+
query.status = args.status;
|
|
48
|
+
if (args.page !== undefined)
|
|
49
|
+
query.page = args.page;
|
|
50
|
+
if (args.limit !== undefined)
|
|
51
|
+
query.limit = args.limit;
|
|
52
|
+
const result = await http.get('/api/v1/verification-requests', query);
|
|
53
|
+
return jsonResult(result);
|
|
54
|
+
}
|
|
55
|
+
catch (e) {
|
|
56
|
+
if (e instanceof ApiError)
|
|
57
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
58
|
+
throw e;
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
tool('get_request_by_reference', 'Get a verification request by its reference ID (your unique identifier).', {
|
|
62
|
+
reference_id: z.string().describe('Your unique reference ID'),
|
|
63
|
+
}, async ({ reference_id }) => {
|
|
64
|
+
try {
|
|
65
|
+
const result = await http.get(`/api/v1/verification-requests/by-reference/${encodeURIComponent(reference_id)}`);
|
|
66
|
+
return jsonResult(result);
|
|
67
|
+
}
|
|
68
|
+
catch (e) {
|
|
69
|
+
if (e instanceof ApiError)
|
|
70
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
71
|
+
throw e;
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
tool('cancel_verification_request', 'Cancel a pending verification request. Only pending requests can be cancelled.', {
|
|
75
|
+
id: z.string().describe('Verification request ID'),
|
|
76
|
+
}, async ({ id }) => {
|
|
77
|
+
try {
|
|
78
|
+
const result = await http.del(`/api/v1/verification-requests/${encodeURIComponent(id)}`);
|
|
79
|
+
return jsonResult(result);
|
|
80
|
+
}
|
|
81
|
+
catch (e) {
|
|
82
|
+
if (e instanceof ApiError)
|
|
83
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
84
|
+
throw e;
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
tool('wait_for_request', 'Poll a verification request until it reaches a terminal state (completed, expired, or cancelled). Checks every 2 seconds up to the timeout.', {
|
|
88
|
+
id: z.string().describe('Verification request ID to poll'),
|
|
89
|
+
timeout_seconds: z.number().int().min(1).max(300).optional().describe('Maximum wait time in seconds (default: 60, max: 300)'),
|
|
90
|
+
}, async ({ id, timeout_seconds }) => {
|
|
91
|
+
try {
|
|
92
|
+
return await pollUntilTerminal(() => http.get(`/api/v1/verification-requests/${encodeURIComponent(id)}`), ['completed', 'expired', 'cancelled'], timeout_seconds ?? 60, `verification request ${id}`);
|
|
93
|
+
}
|
|
94
|
+
catch (e) {
|
|
95
|
+
if (e instanceof ApiError)
|
|
96
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
97
|
+
throw e;
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=verification-requests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification-requests.js","sourceRoot":"","sources":["../../src/tools/verification-requests.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verifications.d.ts","sourceRoot":"","sources":["../../src/tools/verifications.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,QAuOlE"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { jsonResult, errorResult, pollUntilTerminal } from '../types.js';
|
|
3
|
+
import { ApiError } from '../http.js';
|
|
4
|
+
export function registerTools(tool, http) {
|
|
5
|
+
tool('create_verification', 'Create a new identity verification. Initiates a verification flow for a phone number or email.', {
|
|
6
|
+
channel: z.enum(['sms', 'whatsapp', 'telegram', 'email']).describe('Verification channel'),
|
|
7
|
+
phone_number: z.string().optional().describe('Phone number in E.164 format (required for sms/whatsapp/telegram)'),
|
|
8
|
+
email: z.string().optional().describe('Email address (required for email channel)'),
|
|
9
|
+
external_user_id: z.string().optional().describe('Your application user ID for grouping verifications'),
|
|
10
|
+
template_id: z.string().optional().describe('Custom template ID for the verification message'),
|
|
11
|
+
metadata: z.record(z.string()).optional().describe('Custom key-value metadata'),
|
|
12
|
+
}, async (args) => {
|
|
13
|
+
try {
|
|
14
|
+
const result = await http.post('/api/v1/verifications', args);
|
|
15
|
+
return jsonResult(result);
|
|
16
|
+
}
|
|
17
|
+
catch (e) {
|
|
18
|
+
if (e instanceof ApiError)
|
|
19
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
20
|
+
throw e;
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
tool('get_verification', 'Get a verification by ID. Returns the full verification object including status, channel, and proof token if verified.', {
|
|
24
|
+
id: z.string().describe('Verification ID'),
|
|
25
|
+
}, async ({ id }) => {
|
|
26
|
+
try {
|
|
27
|
+
const result = await http.get(`/api/v1/verifications/${encodeURIComponent(id)}`);
|
|
28
|
+
return jsonResult(result);
|
|
29
|
+
}
|
|
30
|
+
catch (e) {
|
|
31
|
+
if (e instanceof ApiError)
|
|
32
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
33
|
+
throw e;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
tool('list_verifications', 'List verifications with optional filters. Returns paginated results.', {
|
|
37
|
+
status: z.enum(['pending', 'verified', 'failed', 'expired', 'revoked']).optional().describe('Filter by status'),
|
|
38
|
+
channel: z.enum(['sms', 'whatsapp', 'telegram', 'email']).optional().describe('Filter by channel'),
|
|
39
|
+
external_user_id: z.string().optional().describe('Filter by external user ID'),
|
|
40
|
+
page: z.number().int().positive().optional().describe('Page number'),
|
|
41
|
+
limit: z.number().int().min(1).max(100).optional().describe('Items per page'),
|
|
42
|
+
}, async (args) => {
|
|
43
|
+
try {
|
|
44
|
+
const query = {};
|
|
45
|
+
if (args.status !== undefined)
|
|
46
|
+
query.status = args.status;
|
|
47
|
+
if (args.channel !== undefined)
|
|
48
|
+
query.channel = args.channel;
|
|
49
|
+
if (args.external_user_id !== undefined)
|
|
50
|
+
query.external_user_id = args.external_user_id;
|
|
51
|
+
if (args.page !== undefined)
|
|
52
|
+
query.page = args.page;
|
|
53
|
+
if (args.limit !== undefined)
|
|
54
|
+
query.limit = args.limit;
|
|
55
|
+
const result = await http.get('/api/v1/verifications', query);
|
|
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('trigger_verification', 'Trigger a DNS/HTTP verification check for a pending domain verification.', {
|
|
65
|
+
id: z.string().describe('Verification ID'),
|
|
66
|
+
}, async ({ id }) => {
|
|
67
|
+
try {
|
|
68
|
+
const result = await http.post(`/api/v1/verifications/${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('submit_verification_code', 'Submit an OTP/challenge code for a pending verification.', {
|
|
78
|
+
id: z.string().describe('Verification ID'),
|
|
79
|
+
code: z.string().describe('The OTP or challenge code to submit'),
|
|
80
|
+
}, async ({ id, code }) => {
|
|
81
|
+
try {
|
|
82
|
+
const result = await http.post(`/api/v1/verifications/${encodeURIComponent(id)}/submit`, { code });
|
|
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('resend_verification', 'Resend a verification message (email channel only). Generates and sends a new code.', {
|
|
92
|
+
id: z.string().describe('Verification ID'),
|
|
93
|
+
}, async ({ id }) => {
|
|
94
|
+
try {
|
|
95
|
+
const result = await http.post(`/api/v1/verifications/${encodeURIComponent(id)}/resend`);
|
|
96
|
+
return jsonResult(result);
|
|
97
|
+
}
|
|
98
|
+
catch (e) {
|
|
99
|
+
if (e instanceof ApiError)
|
|
100
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
101
|
+
throw e;
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
tool('test_verify', 'Auto-complete a verification in test mode (pk_test_* API keys only). Useful for testing flows without real OTP delivery.', {
|
|
105
|
+
id: z.string().describe('Verification ID'),
|
|
106
|
+
}, async ({ id }) => {
|
|
107
|
+
try {
|
|
108
|
+
const result = await http.post(`/api/v1/verifications/${encodeURIComponent(id)}/test-verify`);
|
|
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('list_verified_users', 'List verified users grouped by external_user_id. Shows all verifications per user.', {
|
|
118
|
+
page: z.number().int().positive().optional().describe('Page number'),
|
|
119
|
+
limit: z.number().int().min(1).max(100).optional().describe('Items per page'),
|
|
120
|
+
}, async (args) => {
|
|
121
|
+
try {
|
|
122
|
+
const query = {};
|
|
123
|
+
if (args.page !== undefined)
|
|
124
|
+
query.page = args.page;
|
|
125
|
+
if (args.limit !== undefined)
|
|
126
|
+
query.limit = args.limit;
|
|
127
|
+
const result = await http.get('/api/v1/verifications/users', query);
|
|
128
|
+
return jsonResult(result);
|
|
129
|
+
}
|
|
130
|
+
catch (e) {
|
|
131
|
+
if (e instanceof ApiError)
|
|
132
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
133
|
+
throw e;
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
tool('get_verified_user', 'Get a single verified user and their verifications by external user ID.', {
|
|
137
|
+
external_user_id: z.string().describe('The external user ID'),
|
|
138
|
+
}, async ({ external_user_id }) => {
|
|
139
|
+
try {
|
|
140
|
+
const result = await http.get(`/api/v1/verifications/users/${encodeURIComponent(external_user_id)}`);
|
|
141
|
+
return jsonResult(result);
|
|
142
|
+
}
|
|
143
|
+
catch (e) {
|
|
144
|
+
if (e instanceof ApiError)
|
|
145
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
146
|
+
throw e;
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
tool('start_domain_verification', 'Start a B2B domain verification. Creates a verification record and returns DNS/HTTP instructions for the customer to complete.', {
|
|
150
|
+
domain: z.string().min(1).max(255).describe('Domain to verify (e.g. example.com)'),
|
|
151
|
+
customer_id: z.string().optional().describe('Customer identifier for B2B tracking'),
|
|
152
|
+
verification_method: z.enum(['manual_dns', 'http_file']).optional().describe('Verification method (default: manual_dns)'),
|
|
153
|
+
}, async (args) => {
|
|
154
|
+
try {
|
|
155
|
+
const result = await http.post('/api/v1/verifications/domain', args);
|
|
156
|
+
return jsonResult(result);
|
|
157
|
+
}
|
|
158
|
+
catch (e) {
|
|
159
|
+
if (e instanceof ApiError)
|
|
160
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
161
|
+
throw e;
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
tool('check_domain_verification', 'Check the status of a pending domain verification. Triggers a DNS/HTTP check and returns the updated status.', {
|
|
165
|
+
id: z.string().describe('Domain verification ID'),
|
|
166
|
+
}, async ({ id }) => {
|
|
167
|
+
try {
|
|
168
|
+
const result = await http.post(`/api/v1/verifications/domain/${encodeURIComponent(id)}/check`);
|
|
169
|
+
return jsonResult(result);
|
|
170
|
+
}
|
|
171
|
+
catch (e) {
|
|
172
|
+
if (e instanceof ApiError)
|
|
173
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
174
|
+
throw e;
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
tool('wait_for_verification', 'Poll a verification until it reaches a terminal state (verified, failed, or expired). Checks every 2 seconds up to the timeout.', {
|
|
178
|
+
id: z.string().describe('Verification ID to poll'),
|
|
179
|
+
timeout_seconds: z.number().int().min(1).max(300).optional().describe('Maximum wait time in seconds (default: 60, max: 300)'),
|
|
180
|
+
}, async ({ id, timeout_seconds }) => {
|
|
181
|
+
try {
|
|
182
|
+
return await pollUntilTerminal(() => http.get(`/api/v1/verifications/${encodeURIComponent(id)}`), ['verified', 'failed', 'expired'], timeout_seconds ?? 60, `verification ${id}`);
|
|
183
|
+
}
|
|
184
|
+
catch (e) {
|
|
185
|
+
if (e instanceof ApiError)
|
|
186
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
187
|
+
throw e;
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=verifications.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verifications.js","sourceRoot":"","sources":["../../src/tools/verifications.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-deliveries.d.ts","sourceRoot":"","sources":["../../src/tools/webhook-deliveries.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,QA0ElE"}
|
|
@@ -0,0 +1,68 @@
|
|
|
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_webhook_stats', 'Get webhook delivery statistics including total deliveries, success/failure counts, and recent activity.', {}, async () => {
|
|
6
|
+
try {
|
|
7
|
+
const result = await http.get('/api/v1/webhook-deliveries/stats');
|
|
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_webhook_deliveries', 'List webhook delivery attempts with pagination and filtering. Shows delivery status, response codes, and timestamps.', {
|
|
17
|
+
status: z.enum(['pending', 'success', 'failed']).optional().describe('Filter by delivery status'),
|
|
18
|
+
event_type: z.string().optional().describe('Filter by event type (e.g. verification.completed)'),
|
|
19
|
+
page: z.number().int().positive().optional().describe('Page number'),
|
|
20
|
+
limit: z.number().int().min(1).max(100).optional().describe('Items per page'),
|
|
21
|
+
}, async (args) => {
|
|
22
|
+
try {
|
|
23
|
+
const query = {};
|
|
24
|
+
if (args.status !== undefined)
|
|
25
|
+
query.status = args.status;
|
|
26
|
+
if (args.event_type !== undefined)
|
|
27
|
+
query.event_type = args.event_type;
|
|
28
|
+
if (args.page !== undefined)
|
|
29
|
+
query.page = args.page;
|
|
30
|
+
if (args.limit !== undefined)
|
|
31
|
+
query.limit = args.limit;
|
|
32
|
+
const result = await http.get('/api/v1/webhook-deliveries', query);
|
|
33
|
+
return jsonResult(result);
|
|
34
|
+
}
|
|
35
|
+
catch (e) {
|
|
36
|
+
if (e instanceof ApiError)
|
|
37
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
38
|
+
throw e;
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
tool('get_webhook_delivery', 'Get details of a single webhook delivery attempt including request/response payloads and retry history.', {
|
|
42
|
+
id: z.string().describe('Webhook delivery ID'),
|
|
43
|
+
}, async ({ id }) => {
|
|
44
|
+
try {
|
|
45
|
+
const result = await http.get(`/api/v1/webhook-deliveries/${encodeURIComponent(id)}`);
|
|
46
|
+
return jsonResult(result);
|
|
47
|
+
}
|
|
48
|
+
catch (e) {
|
|
49
|
+
if (e instanceof ApiError)
|
|
50
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
51
|
+
throw e;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
tool('retry_webhook_delivery', 'Retry a failed webhook delivery. Creates a new delivery attempt with the same payload to the configured endpoint.', {
|
|
55
|
+
id: z.string().describe('Webhook delivery ID to retry'),
|
|
56
|
+
}, async ({ id }) => {
|
|
57
|
+
try {
|
|
58
|
+
const result = await http.post(`/api/v1/webhook-deliveries/${encodeURIComponent(id)}/retry`);
|
|
59
|
+
return jsonResult(result);
|
|
60
|
+
}
|
|
61
|
+
catch (e) {
|
|
62
|
+
if (e instanceof ApiError)
|
|
63
|
+
return errorResult(`${e.code}: ${e.message}`);
|
|
64
|
+
throw e;
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=webhook-deliveries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-deliveries.js","sourceRoot":"","sources":["../../src/tools/webhook-deliveries.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
export type ToolRegistrar = McpServer['tool'];
|
|
4
|
+
export declare const credentialsSchema: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodString>, Record<string, string>, Record<string, string>>;
|
|
5
|
+
export declare function jsonResult(data: unknown): {
|
|
6
|
+
content: {
|
|
7
|
+
type: "text";
|
|
8
|
+
text: string;
|
|
9
|
+
}[];
|
|
10
|
+
};
|
|
11
|
+
export declare function errorResult(message: string): {
|
|
12
|
+
content: {
|
|
13
|
+
type: "text";
|
|
14
|
+
text: string;
|
|
15
|
+
}[];
|
|
16
|
+
isError: boolean;
|
|
17
|
+
};
|
|
18
|
+
export declare function pollUntilTerminal(fetch: () => Promise<Record<string, unknown>>, terminalStatuses: string[], timeoutSeconds: number, label: string): Promise<{
|
|
19
|
+
content: {
|
|
20
|
+
type: "text";
|
|
21
|
+
text: string;
|
|
22
|
+
}[];
|
|
23
|
+
}>;
|
|
24
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAE9C,eAAO,MAAM,iBAAiB,qGAK6B,CAAC;AAE5D,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO;;;;;EAIvC;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM;;;;;;EAK1C;AAID,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAC7C,gBAAgB,EAAE,MAAM,EAAE,EAC1B,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,MAAM;;;;;GAed"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const credentialsSchema = z
|
|
3
|
+
.record(z.string().max(2000))
|
|
4
|
+
.refine((obj) => Object.keys(obj).length <= 20, {
|
|
5
|
+
message: 'Too many credential fields (max 20)',
|
|
6
|
+
})
|
|
7
|
+
.describe('Provider-specific credential key-value pairs');
|
|
8
|
+
export function jsonResult(data) {
|
|
9
|
+
return {
|
|
10
|
+
content: [{ type: 'text', text: JSON.stringify(data, null, 2) }],
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export function errorResult(message) {
|
|
14
|
+
return {
|
|
15
|
+
content: [{ type: 'text', text: message }],
|
|
16
|
+
isError: true,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
const POLL_INTERVAL_MS = 2000;
|
|
20
|
+
export async function pollUntilTerminal(fetch, terminalStatuses, timeoutSeconds, label) {
|
|
21
|
+
const timeoutMs = timeoutSeconds * 1000;
|
|
22
|
+
const start = Date.now();
|
|
23
|
+
while (Date.now() - start < timeoutMs) {
|
|
24
|
+
const result = await fetch();
|
|
25
|
+
const status = result.status;
|
|
26
|
+
if (status && terminalStatuses.includes(status)) {
|
|
27
|
+
return jsonResult(result);
|
|
28
|
+
}
|
|
29
|
+
if (Date.now() - start >= timeoutMs)
|
|
30
|
+
break;
|
|
31
|
+
await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL_MS));
|
|
32
|
+
}
|
|
33
|
+
return errorResult(`Timeout: ${label} did not reach a terminal state within ${timeoutSeconds} seconds`);
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KAC5B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,EAAE;IAC9C,OAAO,EAAE,qCAAqC;CAC/C,CAAC;KACD,QAAQ,CAAC,8CAA8C,CAAC,CAAC;AAE5D,MAAM,UAAU,UAAU,CAAC,IAAa;IACtC,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KAC1E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACnD,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAE9B,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAA6C,EAC7C,gBAA0B,EAC1B,cAAsB,EACtB,KAAa;IAEb,MAAM,SAAS,GAAG,cAAc,GAAG,IAAI,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEzB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,SAAS,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,KAAK,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,MAA4B,CAAC;QACnD,IAAI,MAAM,IAAI,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAChD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,SAAS;YAAE,MAAM;QAC3C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,WAAW,CAAC,YAAY,KAAK,0CAA0C,cAAc,UAAU,CAAC,CAAC;AAC1G,CAAC"}
|