stables-mcp-server 1.1.0 → 1.4.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/README.md +221 -36
- package/build/index.d.ts +1 -1
- package/build/index.js +6 -2
- package/build/index.js.map +1 -1
- package/build/lib/stables-client.d.ts +54 -7
- package/build/lib/stables-client.d.ts.map +1 -1
- package/build/lib/stables-client.js +132 -82
- package/build/lib/stables-client.js.map +1 -1
- package/build/tools/customers.d.ts +1 -1
- package/build/tools/customers.d.ts.map +1 -1
- package/build/tools/customers.js +146 -42
- package/build/tools/customers.js.map +1 -1
- package/build/tools/notifications.d.ts +8 -0
- package/build/tools/notifications.d.ts.map +1 -0
- package/build/tools/notifications.js +125 -0
- package/build/tools/notifications.js.map +1 -0
- package/build/tools/quotes.d.ts +1 -1
- package/build/tools/quotes.d.ts.map +1 -1
- package/build/tools/quotes.js +5 -3
- package/build/tools/quotes.js.map +1 -1
- package/build/tools/transfers.d.ts +1 -1
- package/build/tools/transfers.d.ts.map +1 -1
- package/build/tools/transfers.js +35 -20
- package/build/tools/transfers.js.map +1 -1
- package/build/tools/virtual-accounts.d.ts +1 -1
- package/build/tools/virtual-accounts.d.ts.map +1 -1
- package/build/tools/virtual-accounts.js +2 -3
- package/build/tools/virtual-accounts.js.map +1 -1
- package/build/tools/webhooks.d.ts +1 -1
- package/build/tools/webhooks.d.ts.map +1 -1
- package/build/tools/webhooks.js +3 -1
- package/build/tools/webhooks.js.map +1 -1
- package/package.json +17 -3
package/build/tools/customers.js
CHANGED
|
@@ -1,54 +1,145 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Customer Management Tools for Stables MCP Server
|
|
3
|
-
* Synced with OpenAPI spec from https://api.
|
|
3
|
+
* Synced with OpenAPI spec from https://api.stables.money/docs
|
|
4
4
|
*/
|
|
5
5
|
import { z } from "zod";
|
|
6
|
+
import { StablesApiError } from "../lib/stables-client.js";
|
|
7
|
+
function formatError(error) {
|
|
8
|
+
if (error instanceof StablesApiError) {
|
|
9
|
+
return `${error.message} (HTTP ${error.statusCode})`;
|
|
10
|
+
}
|
|
11
|
+
return error instanceof Error ? error.message : "Unknown error";
|
|
12
|
+
}
|
|
6
13
|
export function registerCustomerTools(server, client) {
|
|
7
14
|
// Create Customer
|
|
8
15
|
server.tool("create_customer", "Create a new customer in Stables for KYC verification and transfers. Use 'individual' for personal accounts or 'business' for company accounts. Include entitlements like 'base_payout' to enable transactions.", {
|
|
9
|
-
email: z.string().email().describe("Customer's email address"),
|
|
16
|
+
email: z.string().email().optional().describe("Customer's email address"),
|
|
10
17
|
customerType: z.enum(["individual", "business"]).describe("Type of customer - 'individual' for personal, 'business' for companies"),
|
|
18
|
+
// Individual fields
|
|
11
19
|
firstName: z.string().optional().describe("First name (required for individuals)"),
|
|
12
20
|
lastName: z.string().optional().describe("Last name (required for individuals)"),
|
|
13
21
|
middleName: z.string().optional().describe("Middle name"),
|
|
22
|
+
dob: z.string().optional().describe("Date of birth in YYYY-MM-DD format (e.g., '1990-01-15')"),
|
|
23
|
+
nationality: z.string().optional().describe("Two-letter country code (e.g., 'US', 'GB')"),
|
|
24
|
+
// Business fields
|
|
14
25
|
companyName: z.string().optional().describe("Company name (required for businesses)"),
|
|
26
|
+
country: z.string().optional().describe("Country code ISO 3166-1 alpha-2 (required for businesses, e.g., 'US')"),
|
|
27
|
+
registrationNumber: z.string().optional().describe("Business registration number"),
|
|
28
|
+
incorporatedOn: z.string().optional().describe("Date of incorporation in YYYY-MM-DD format"),
|
|
29
|
+
type: z.string().optional().describe("Company type (e.g., 'Private Company Limited by Shares')"),
|
|
30
|
+
taxId: z.string().optional().describe("Tax ID (e.g., '12-3456789')"),
|
|
31
|
+
registrationLocation: z.string().optional().describe("Registration location (e.g., state for USA)"),
|
|
32
|
+
website: z.string().optional().describe("Website URL"),
|
|
33
|
+
describeBusiness: z.string().optional().describe("Description of the business"),
|
|
34
|
+
conductMoneyServices: z.boolean().optional().describe("Whether the company conducts money services"),
|
|
35
|
+
describeMoneyServices: z.string().optional().describe("Describe money services (required if conductMoneyServices is true)"),
|
|
36
|
+
describeComplianceControls: z.string().optional().describe("Description of compliance controls"),
|
|
37
|
+
mainSourceOfFunds: z.enum(["BUSINESS_LOANS", "GRANTS", "INTER_COMPANY_FUNDS", "INVESTMENT_PROCEEDS", "LEGAL_SETTLEMENT", "OWNERS_CAPITAL", "PENSION_RETIREMENT", "SALE_OF_ASSETS", "SALES_OF_GOODS_AND_SERVICES", "THIRD_PARTY_FUNDS", "TREASURY_RESERVES"]).optional().describe("Main source of funds"),
|
|
38
|
+
accountPurpose: z.enum(["CHARITABLE_DONATIONS", "ECOMMERCE_RETAIL_PAYMENTS", "INVESTMENT_PURPOSES", "PAYMENTS_TO_FRIENDS_OR_FAMILY_ABROAD", "PAYROLL", "PERSONAL_OR_LIVING_EXPENSES", "PROTECT_WEALTH", "PURCHASE_GOODS_AND_SERVICES", "RECEIVE_PAYMENTS_FOR_GOODS_AND_SERVICES", "TAX_OPTIMIZATION", "THIRD_PARTY_MONEY_TRANSMISSION", "TREASURY_MANAGEMENT", "OTHER"]).optional().describe("What will you use Stables for?"),
|
|
39
|
+
accountPurposeOther: z.string().optional().describe("Explain purpose (required if accountPurpose is OTHER)"),
|
|
40
|
+
isYourBusinessADao: z.boolean().optional().describe("Is your business a DAO?"),
|
|
41
|
+
industrySelection: z.string().optional().describe("NAICS industry code (e.g., '5415')"),
|
|
42
|
+
expectedAnnualRevenue: z.enum(["0_99999", "100000_999999", "1000000_9999999", "10000000_49999999", "50000000_249999999", "250000000_plus"]).optional().describe("Estimated annual revenue in USD"),
|
|
43
|
+
expectedMonthlyPayments: z.string().optional().describe("Expected monthly payments in USD"),
|
|
44
|
+
sourceOfFunds: z.enum(["BUSINESS_LOANS", "GRANTS", "INTER_COMPANY_FUNDS", "INVESTMENT_PROCEEDS", "LEGAL_SETTLEMENT", "OWNERS_CAPITAL", "PENSION_RETIREMENT", "SALE_OF_ASSETS", "SALES_OF_GOODS_AND_SERVICES", "THIRD_PARTY_FUNDS", "TREASURY_RESERVES"]).optional().describe("Source of funds"),
|
|
45
|
+
sourceOfFundsDescription: z.string().optional().describe("Describe where your business funds come from"),
|
|
46
|
+
operateInProhibitedCountry: z.boolean().optional().describe("Does your business operate in any prohibited countries?"),
|
|
47
|
+
doesYourBusinessEngageInHighRiskActivities: z.enum(["yes", "no"]).optional().describe("Does your business engage in high risk activities?"),
|
|
48
|
+
acceptTerms: z.boolean().optional().describe("Accept Stables' terms of service and privacy policy"),
|
|
49
|
+
howDidYouComeAcrossStables: z.string().optional().describe("How did you come across Stables?"),
|
|
50
|
+
// Shared fields
|
|
15
51
|
externalCustomerId: z.string().optional().describe("Your own reference ID for this customer"),
|
|
16
52
|
phone: z.string().optional().describe("Phone number with country code (e.g., '+14155552671')"),
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
entitlements: z.array(z.string()).optional().describe("List of entitlements to request (e.g., ['base_payout', 'virtual_account'])"),
|
|
53
|
+
entitlements: z.array(z.enum(["base_payout", "virtual_account"])).optional().describe("List of entitlements to request"),
|
|
54
|
+
// Address fields (for individuals)
|
|
20
55
|
addressLine1: z.string().optional().describe("Street address line 1"),
|
|
21
56
|
addressLine2: z.string().optional().describe("Street address line 2"),
|
|
22
57
|
addressCity: z.string().optional().describe("City"),
|
|
23
58
|
addressState: z.string().optional().describe("State or region"),
|
|
24
59
|
addressPostalCode: z.string().optional().describe("Postal/ZIP code"),
|
|
25
60
|
addressCountry: z.string().optional().describe("Two-letter country code (e.g., 'US')"),
|
|
26
|
-
|
|
61
|
+
// Legal address fields (for businesses)
|
|
62
|
+
legalAddressLine1: z.string().optional().describe("Legal address line 1 (for businesses)"),
|
|
63
|
+
legalAddressLine2: z.string().optional().describe("Legal address line 2 (for businesses)"),
|
|
64
|
+
legalAddressCity: z.string().optional().describe("Legal address city (for businesses)"),
|
|
65
|
+
legalAddressState: z.string().optional().describe("Legal address state (for businesses)"),
|
|
66
|
+
legalAddressPostalCode: z.string().optional().describe("Legal address postal code (for businesses)"),
|
|
67
|
+
legalAddressCountry: z.string().optional().describe("Legal address country code (for businesses)"),
|
|
68
|
+
}, async (params) => {
|
|
27
69
|
try {
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
70
|
+
const isBusiness = params.customerType === "business";
|
|
71
|
+
// Build address for individuals
|
|
72
|
+
const address = (!isBusiness && params.addressLine1) ? {
|
|
73
|
+
line1: params.addressLine1,
|
|
74
|
+
line2: params.addressLine2,
|
|
75
|
+
city: params.addressCity || "",
|
|
76
|
+
state: params.addressState,
|
|
77
|
+
postalCode: params.addressPostalCode,
|
|
78
|
+
country: params.addressCountry || "",
|
|
35
79
|
} : undefined;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
80
|
+
// Build legal address for businesses
|
|
81
|
+
const legalAddress = (isBusiness && params.legalAddressLine1) ? {
|
|
82
|
+
line1: params.legalAddressLine1,
|
|
83
|
+
line2: params.legalAddressLine2,
|
|
84
|
+
city: params.legalAddressCity || "",
|
|
85
|
+
state: params.legalAddressState,
|
|
86
|
+
postalCode: params.legalAddressPostalCode,
|
|
87
|
+
country: params.legalAddressCountry || "",
|
|
88
|
+
} : undefined;
|
|
89
|
+
// Build request body based on customer type
|
|
90
|
+
const requestBody = {
|
|
91
|
+
email: params.email,
|
|
92
|
+
customerType: isBusiness ? "CUSTOMER_TYPE_BUSINESS" : "CUSTOMER_TYPE_INDIVIDUAL",
|
|
93
|
+
externalCustomerId: params.externalCustomerId || crypto.randomUUID(),
|
|
94
|
+
phone: params.phone,
|
|
95
|
+
entitlements: params.entitlements,
|
|
96
|
+
};
|
|
97
|
+
if (isBusiness) {
|
|
98
|
+
Object.assign(requestBody, {
|
|
99
|
+
companyName: params.companyName,
|
|
100
|
+
country: params.country,
|
|
101
|
+
registrationNumber: params.registrationNumber,
|
|
102
|
+
incorporatedOn: params.incorporatedOn,
|
|
103
|
+
type: params.type,
|
|
104
|
+
taxId: params.taxId,
|
|
105
|
+
registrationLocation: params.registrationLocation,
|
|
106
|
+
website: params.website,
|
|
107
|
+
legalAddress,
|
|
108
|
+
describeBusiness: params.describeBusiness,
|
|
109
|
+
conductMoneyServices: params.conductMoneyServices,
|
|
110
|
+
describeMoneyServices: params.describeMoneyServices,
|
|
111
|
+
describeComplianceControls: params.describeComplianceControls,
|
|
112
|
+
mainSourceOfFunds: params.mainSourceOfFunds,
|
|
113
|
+
accountPurpose: params.accountPurpose,
|
|
114
|
+
accountPurposeOther: params.accountPurposeOther,
|
|
115
|
+
isYourBusinessADao: params.isYourBusinessADao,
|
|
116
|
+
industrySelection: params.industrySelection,
|
|
117
|
+
expectedAnnualRevenue: params.expectedAnnualRevenue,
|
|
118
|
+
expectedMonthlyPayments: params.expectedMonthlyPayments,
|
|
119
|
+
sourceOfFunds: params.sourceOfFunds,
|
|
120
|
+
sourceOfFundsDescription: params.sourceOfFundsDescription,
|
|
121
|
+
operateInProhibitedCountry: params.operateInProhibitedCountry,
|
|
122
|
+
doesYourBusinessEngageInHighRiskActivities: params.doesYourBusinessEngageInHighRiskActivities,
|
|
123
|
+
acceptTerms: params.acceptTerms,
|
|
124
|
+
howDidYouComeAcrossStables: params.howDidYouComeAcrossStables,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
Object.assign(requestBody, {
|
|
129
|
+
firstName: params.firstName,
|
|
130
|
+
lastName: params.lastName,
|
|
131
|
+
middleName: params.middleName,
|
|
132
|
+
dob: params.dob,
|
|
133
|
+
nationality: params.nationality,
|
|
134
|
+
address,
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
// Remove undefined values
|
|
138
|
+
for (const key of Object.keys(requestBody)) {
|
|
139
|
+
if (requestBody[key] === undefined)
|
|
140
|
+
delete requestBody[key];
|
|
141
|
+
}
|
|
142
|
+
const customer = await client.createCustomer(requestBody);
|
|
52
143
|
const verificationStatus = customer.verificationLevels?.[0]?.status || "NOT_STARTED";
|
|
53
144
|
const entitlementsList = customer.entitlements?.map(e => `${e.name}: ${e.status}`).join(", ") || "None";
|
|
54
145
|
return {
|
|
@@ -59,11 +150,11 @@ export function registerCustomerTools(server, client) {
|
|
|
59
150
|
|
|
60
151
|
Customer ID: ${customer.customerId}
|
|
61
152
|
Email: ${customer.email}
|
|
62
|
-
Type: ${customerType}
|
|
63
|
-
${firstName ? `Name: ${firstName}${middleName ? ` ${middleName}` : ""} ${lastName || ""}` : ""}
|
|
64
|
-
${companyName ? `Company: ${companyName}` : ""}
|
|
65
|
-
${phone ? `Phone: ${phone}` : ""}
|
|
66
|
-
${nationality ? `Nationality: ${nationality}` : ""}
|
|
153
|
+
Type: ${params.customerType}
|
|
154
|
+
${params.firstName ? `Name: ${params.firstName}${params.middleName ? ` ${params.middleName}` : ""} ${params.lastName || ""}` : ""}
|
|
155
|
+
${params.companyName ? `Company: ${params.companyName}` : ""}
|
|
156
|
+
${params.phone ? `Phone: ${params.phone}` : ""}
|
|
157
|
+
${params.nationality ? `Nationality: ${params.nationality}` : ""}
|
|
67
158
|
Entitlements: ${entitlementsList}
|
|
68
159
|
Verification Status: ${verificationStatus}
|
|
69
160
|
Created: ${customer.createdAt}
|
|
@@ -78,7 +169,7 @@ Next step: Use 'get_verification_link' to get a KYC verification link for this c
|
|
|
78
169
|
content: [
|
|
79
170
|
{
|
|
80
171
|
type: "text",
|
|
81
|
-
text: `Failed to create customer: ${error
|
|
172
|
+
text: `Failed to create customer: ${formatError(error)}`,
|
|
82
173
|
},
|
|
83
174
|
],
|
|
84
175
|
isError: true,
|
|
@@ -120,7 +211,7 @@ Updated: ${customer.updatedAt}`,
|
|
|
120
211
|
content: [
|
|
121
212
|
{
|
|
122
213
|
type: "text",
|
|
123
|
-
text: `Failed to get customer: ${error
|
|
214
|
+
text: `Failed to get customer: ${formatError(error)}`,
|
|
124
215
|
},
|
|
125
216
|
],
|
|
126
217
|
isError: true,
|
|
@@ -161,7 +252,7 @@ ${customerList}`,
|
|
|
161
252
|
content: [
|
|
162
253
|
{
|
|
163
254
|
type: "text",
|
|
164
|
-
text: `Failed to list customers: ${error
|
|
255
|
+
text: `Failed to list customers: ${formatError(error)}`,
|
|
165
256
|
},
|
|
166
257
|
],
|
|
167
258
|
isError: true,
|
|
@@ -205,7 +296,7 @@ Share this link with the customer to complete their identity verification.`,
|
|
|
205
296
|
content: [
|
|
206
297
|
{
|
|
207
298
|
type: "text",
|
|
208
|
-
text: `Failed to generate verification link: ${error
|
|
299
|
+
text: `Failed to generate verification link: ${formatError(error)}`,
|
|
209
300
|
},
|
|
210
301
|
],
|
|
211
302
|
isError: true,
|
|
@@ -219,8 +310,12 @@ Share this link with the customer to complete their identity verification.`,
|
|
|
219
310
|
phone: z.string().optional().describe("Updated phone number"),
|
|
220
311
|
firstName: z.string().optional().describe("Updated first name"),
|
|
221
312
|
lastName: z.string().optional().describe("Updated last name"),
|
|
222
|
-
|
|
223
|
-
|
|
313
|
+
middleName: z.string().optional().describe("Updated middle name"),
|
|
314
|
+
dob: z.string().optional().describe("Updated date of birth (YYYY-MM-DD)"),
|
|
315
|
+
nationality: z.string().optional().describe("Updated nationality (two-letter country code)"),
|
|
316
|
+
companyName: z.string().optional().describe("Updated company name (for businesses)"),
|
|
317
|
+
entitlements: z.array(z.enum(["base_payout", "virtual_account"])).optional().describe("Updated entitlements"),
|
|
318
|
+
}, async ({ customerId, email, phone, firstName, lastName, middleName, dob, nationality, companyName, entitlements }) => {
|
|
224
319
|
try {
|
|
225
320
|
const updates = {};
|
|
226
321
|
if (email)
|
|
@@ -231,6 +326,14 @@ Share this link with the customer to complete their identity verification.`,
|
|
|
231
326
|
updates.firstName = firstName;
|
|
232
327
|
if (lastName)
|
|
233
328
|
updates.lastName = lastName;
|
|
329
|
+
if (middleName)
|
|
330
|
+
updates.middleName = middleName;
|
|
331
|
+
if (dob)
|
|
332
|
+
updates.dob = dob;
|
|
333
|
+
if (nationality)
|
|
334
|
+
updates.nationality = nationality;
|
|
335
|
+
if (companyName)
|
|
336
|
+
updates.companyName = companyName;
|
|
234
337
|
if (entitlements)
|
|
235
338
|
updates.entitlements = entitlements;
|
|
236
339
|
const customer = await client.updateCustomer(customerId, updates);
|
|
@@ -242,6 +345,7 @@ Share this link with the customer to complete their identity verification.`,
|
|
|
242
345
|
|
|
243
346
|
Email: ${customer.email}
|
|
244
347
|
${customer.firstName ? `Name: ${customer.firstName} ${customer.lastName || ""}` : ""}
|
|
348
|
+
${customer.companyName ? `Company: ${customer.companyName}` : ""}
|
|
245
349
|
Updated: ${customer.updatedAt}`,
|
|
246
350
|
},
|
|
247
351
|
],
|
|
@@ -252,7 +356,7 @@ Updated: ${customer.updatedAt}`,
|
|
|
252
356
|
content: [
|
|
253
357
|
{
|
|
254
358
|
type: "text",
|
|
255
|
-
text: `Failed to update customer: ${error
|
|
359
|
+
text: `Failed to update customer: ${formatError(error)}`,
|
|
256
360
|
},
|
|
257
361
|
],
|
|
258
362
|
isError: true,
|
|
@@ -282,7 +386,7 @@ Keys set: ${Object.keys(metadata).join(", ")}`,
|
|
|
282
386
|
content: [
|
|
283
387
|
{
|
|
284
388
|
type: "text",
|
|
285
|
-
text: `Failed to update metadata: ${error
|
|
389
|
+
text: `Failed to update metadata: ${formatError(error)}`,
|
|
286
390
|
},
|
|
287
391
|
],
|
|
288
392
|
isError: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"customers.js","sourceRoot":"","sources":["../../src/tools/customers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"customers.js","sourceRoot":"","sources":["../../src/tools/customers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Notification Tools for Stables MCP Server
|
|
3
|
+
* Sends verification SMS to customers via Twilio
|
|
4
|
+
*/
|
|
5
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
6
|
+
import { StablesApiClient } from "../lib/stables-client.js";
|
|
7
|
+
export declare function registerNotificationTools(server: McpServer, client: StablesApiClient): void;
|
|
8
|
+
//# sourceMappingURL=notifications.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/tools/notifications.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,0BAA0B,CAAC;AAS7E,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,gBAAgB,QAqJzB"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { StablesApiError } from "../lib/stables-client.js";
|
|
3
|
+
function formatError(error) {
|
|
4
|
+
if (error instanceof StablesApiError) {
|
|
5
|
+
return `${error.message} (HTTP ${error.statusCode})`;
|
|
6
|
+
}
|
|
7
|
+
return error instanceof Error ? error.message : "Unknown error";
|
|
8
|
+
}
|
|
9
|
+
export function registerNotificationTools(server, client) {
|
|
10
|
+
server.tool("send_verification_sms", "Send a KYC verification link to a customer via SMS. Automatically fetches the customer's phone number and generates a fresh verification link. Requires TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN, and TWILIO_PHONE_NUMBER environment variables.", {
|
|
11
|
+
customerId: z
|
|
12
|
+
.string()
|
|
13
|
+
.describe("The customer ID to send the verification SMS to"),
|
|
14
|
+
phone: z
|
|
15
|
+
.string()
|
|
16
|
+
.optional()
|
|
17
|
+
.describe("Override phone number (with country code, e.g., '+14155552671'). If not provided, uses the customer's phone on file."),
|
|
18
|
+
botName: z
|
|
19
|
+
.string()
|
|
20
|
+
.optional()
|
|
21
|
+
.describe("Name of the bot/assistant sending the message (default: 'your assistant')"),
|
|
22
|
+
verificationLinkTtlSecs: z
|
|
23
|
+
.number()
|
|
24
|
+
.optional()
|
|
25
|
+
.describe("TTL for the verification link in seconds (default: 1800)"),
|
|
26
|
+
}, async ({ customerId, phone, botName, verificationLinkTtlSecs }) => {
|
|
27
|
+
try {
|
|
28
|
+
// 1. Validate Twilio environment variables
|
|
29
|
+
const twilioAccountSid = process.env.TWILIO_ACCOUNT_SID;
|
|
30
|
+
const twilioAuthToken = process.env.TWILIO_AUTH_TOKEN;
|
|
31
|
+
const twilioPhoneNumber = process.env.TWILIO_PHONE_NUMBER;
|
|
32
|
+
if (!twilioAccountSid || !twilioAuthToken || !twilioPhoneNumber) {
|
|
33
|
+
return {
|
|
34
|
+
content: [
|
|
35
|
+
{
|
|
36
|
+
type: "text",
|
|
37
|
+
text: "Missing Twilio configuration. Please set TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN, and TWILIO_PHONE_NUMBER environment variables.",
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
isError: true,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
// 2. Fetch customer details to get phone and name
|
|
44
|
+
const customer = await client.getCustomer(customerId);
|
|
45
|
+
const recipientPhone = phone || customer.phone;
|
|
46
|
+
if (!recipientPhone) {
|
|
47
|
+
return {
|
|
48
|
+
content: [
|
|
49
|
+
{
|
|
50
|
+
type: "text",
|
|
51
|
+
text: `Customer ${customerId} has no phone number on file. Please provide a phone number via the 'phone' parameter or update the customer's phone first using 'update_customer'.`,
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
isError: true,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
const customerName = customer.firstName || "there";
|
|
58
|
+
const assistantName = botName || "your assistant";
|
|
59
|
+
// 3. Generate a fresh verification link
|
|
60
|
+
const verificationResult = await client.generateVerificationLink(customerId, { ttlInSecs: verificationLinkTtlSecs });
|
|
61
|
+
const verificationLink = verificationResult.kycLink;
|
|
62
|
+
// 4. Compose the SMS message
|
|
63
|
+
const messageBody = `Hi ${customerName}, I'm ${assistantName}. Please complete verification to give me access to global commerce payment rails: ${verificationLink}`;
|
|
64
|
+
// 5. Send SMS via Twilio REST API (using native fetch, no SDK needed)
|
|
65
|
+
const twilioUrl = `https://api.twilio.com/2010-04-01/Accounts/${twilioAccountSid}/Messages.json`;
|
|
66
|
+
const authHeader = "Basic " +
|
|
67
|
+
Buffer.from(`${twilioAccountSid}:${twilioAuthToken}`).toString("base64");
|
|
68
|
+
const formBody = new URLSearchParams({
|
|
69
|
+
To: recipientPhone,
|
|
70
|
+
From: twilioPhoneNumber,
|
|
71
|
+
Body: messageBody,
|
|
72
|
+
});
|
|
73
|
+
const twilioResponse = await fetch(twilioUrl, {
|
|
74
|
+
method: "POST",
|
|
75
|
+
headers: {
|
|
76
|
+
Authorization: authHeader,
|
|
77
|
+
"Content-Type": "application/x-www-form-urlencoded",
|
|
78
|
+
},
|
|
79
|
+
body: formBody.toString(),
|
|
80
|
+
});
|
|
81
|
+
if (!twilioResponse.ok) {
|
|
82
|
+
const errorData = await twilioResponse
|
|
83
|
+
.json()
|
|
84
|
+
.catch(() => null);
|
|
85
|
+
const errorMsg = errorData?.message ||
|
|
86
|
+
`HTTP ${twilioResponse.status}: ${twilioResponse.statusText}`;
|
|
87
|
+
throw new Error(`Twilio API error: ${errorMsg}`);
|
|
88
|
+
}
|
|
89
|
+
const smsResult = (await twilioResponse.json());
|
|
90
|
+
// 6. Return success
|
|
91
|
+
const ttlDisplay = verificationLinkTtlSecs
|
|
92
|
+
? `${Math.floor(verificationLinkTtlSecs / 60)} minutes`
|
|
93
|
+
: "30 minutes (default)";
|
|
94
|
+
return {
|
|
95
|
+
content: [
|
|
96
|
+
{
|
|
97
|
+
type: "text",
|
|
98
|
+
text: `Verification SMS sent successfully!
|
|
99
|
+
|
|
100
|
+
Customer ID: ${customerId}
|
|
101
|
+
Customer Name: ${customerName}
|
|
102
|
+
Sent To: ${recipientPhone}
|
|
103
|
+
Twilio Message SID: ${smsResult.sid}
|
|
104
|
+
Status: ${smsResult.status}
|
|
105
|
+
|
|
106
|
+
Verification link expires in ${ttlDisplay}.
|
|
107
|
+
The customer will receive an SMS with a link to complete KYC verification.`,
|
|
108
|
+
},
|
|
109
|
+
],
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
return {
|
|
114
|
+
content: [
|
|
115
|
+
{
|
|
116
|
+
type: "text",
|
|
117
|
+
text: `Failed to send verification SMS: ${formatError(error)}`,
|
|
118
|
+
},
|
|
119
|
+
],
|
|
120
|
+
isError: true,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=notifications.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../src/tools/notifications.ts"],"names":[],"mappings":"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"}
|
package/build/tools/quotes.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Quote Tools for Stables MCP Server
|
|
3
|
-
* Synced with OpenAPI spec from https://api.
|
|
3
|
+
* Synced with OpenAPI spec from https://api.stables.money/docs
|
|
4
4
|
*/
|
|
5
5
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
6
6
|
import { StablesApiClient } from "../lib/stables-client.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quotes.d.ts","sourceRoot":"","sources":["../../src/tools/quotes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"quotes.d.ts","sourceRoot":"","sources":["../../src/tools/quotes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,QA6I7E"}
|
package/build/tools/quotes.js
CHANGED
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Quote Tools for Stables MCP Server
|
|
3
|
-
* Synced with OpenAPI spec from https://api.
|
|
3
|
+
* Synced with OpenAPI spec from https://api.stables.money/docs
|
|
4
4
|
*/
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
export function registerQuoteTools(server, client) {
|
|
7
7
|
// Create Quote
|
|
8
8
|
server.tool("create_quote", "Get a quote for currency exchange. Quotes show the exchange rate, fees, and amount the customer will receive. Quotes expire after 30 seconds. Currently supports crypto → fiat (off-ramp) with more types coming soon.", {
|
|
9
|
+
customerId: z.string().optional().describe("The customer ID to associate this quote with. Required if the quote will be used to create a transfer."),
|
|
9
10
|
fromCurrency: z.enum(["USDC", "USDT"]).describe("Source cryptocurrency (USDC or USDT)"),
|
|
10
11
|
fromAmount: z.string().describe("Amount to convert (e.g., '125.75')"),
|
|
11
|
-
fromNetwork: z.enum(["ethereum", "polygon"
|
|
12
|
+
fromNetwork: z.enum(["ethereum", "polygon"]).describe("Blockchain network for the source crypto"),
|
|
12
13
|
toCurrency: z.string().describe("Destination currency code (e.g., 'EUR', 'USD', 'GBP')"),
|
|
13
14
|
toCountry: z.string().describe("Destination country code (e.g., 'GR', 'US', 'GB')"),
|
|
14
15
|
paymentMethodType: z.enum(["SWIFT", "LOCAL"]).describe("Payment method for fiat payouts - 'SWIFT' for international, 'LOCAL' for domestic rails"),
|
|
15
|
-
}, async ({ fromCurrency, fromAmount, fromNetwork, toCurrency, toCountry, paymentMethodType }) => {
|
|
16
|
+
}, async ({ customerId, fromCurrency, fromAmount, fromNetwork, toCurrency, toCountry, paymentMethodType }) => {
|
|
16
17
|
try {
|
|
17
18
|
const response = await client.createQuote({
|
|
19
|
+
customerId,
|
|
18
20
|
from: {
|
|
19
21
|
currency: fromCurrency,
|
|
20
22
|
amount: fromAmount,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quotes.js","sourceRoot":"","sources":["../../src/tools/quotes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,MAAwB;IAC5E,eAAe;IACf,MAAM,CAAC,IAAI,CACT,cAAc,EACd,wNAAwN,EACxN;QACE,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QACvF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QACrE,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"quotes.js","sourceRoot":"","sources":["../../src/tools/quotes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Transfer Tools for Stables MCP Server
|
|
3
|
-
* Synced with OpenAPI spec from https://api.
|
|
3
|
+
* Synced with OpenAPI spec from https://api.stables.money/docs
|
|
4
4
|
*/
|
|
5
5
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
6
6
|
import { StablesApiClient } from "../lib/stables-client.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfers.d.ts","sourceRoot":"","sources":["../../src/tools/transfers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"transfers.d.ts","sourceRoot":"","sources":["../../src/tools/transfers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,QAiQhF"}
|