stables-mcp-server 2.2.1 → 2.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 +40 -6
- package/build/http/handler.d.ts.map +1 -1
- package/build/http/handler.js +9 -0
- package/build/http/handler.js.map +1 -1
- package/build/lib/stables-client.d.ts +282 -23
- package/build/lib/stables-client.d.ts.map +1 -1
- package/build/lib/stables-client.js +164 -10
- package/build/lib/stables-client.js.map +1 -1
- package/build/server.d.ts +2 -1
- package/build/server.d.ts.map +1 -1
- package/build/server.js +10 -1
- package/build/server.js.map +1 -1
- package/build/tools/balances.d.ts +15 -0
- package/build/tools/balances.d.ts.map +1 -0
- package/build/tools/balances.js +140 -0
- package/build/tools/balances.js.map +1 -0
- package/build/tools/compliance.d.ts +13 -0
- package/build/tools/compliance.d.ts.map +1 -0
- package/build/tools/compliance.js +170 -0
- package/build/tools/compliance.js.map +1 -0
- package/build/tools/customers.d.ts.map +1 -1
- package/build/tools/customers.js +330 -258
- package/build/tools/customers.js.map +1 -1
- package/build/tools/documents.d.ts +12 -0
- package/build/tools/documents.d.ts.map +1 -0
- package/build/tools/documents.js +94 -0
- package/build/tools/documents.js.map +1 -0
- package/build/tools/entitlements.d.ts +12 -0
- package/build/tools/entitlements.d.ts.map +1 -0
- package/build/tools/entitlements.js +83 -0
- package/build/tools/entitlements.js.map +1 -0
- package/build/tools/transfers.d.ts.map +1 -1
- package/build/tools/transfers.js +174 -89
- package/build/tools/transfers.js.map +1 -1
- package/build/tools/virtual-accounts.d.ts.map +1 -1
- package/build/tools/virtual-accounts.js +154 -12
- package/build/tools/virtual-accounts.js.map +1 -1
- package/build/version.d.ts +2 -0
- package/build/version.d.ts.map +1 -0
- package/build/version.js +3 -0
- package/build/version.js.map +1 -0
- package/build/worker.d.ts +16 -1
- package/build/worker.d.ts.map +1 -1
- package/build/worker.js +24 -1
- package/build/worker.js.map +1 -1
- package/package.json +12 -6
|
@@ -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,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Document Tools for Stables MCP Server
|
|
3
|
+
*
|
|
4
|
+
* Mirrors the Transfer Documents and Deposit Documents references on
|
|
5
|
+
* docs.stables.money: attach an invoice, contract or other supporting document
|
|
6
|
+
* to a transfer or to a payment route deposit, for example when Stables
|
|
7
|
+
* compliance asks for one, then list, download or remove it.
|
|
8
|
+
*/
|
|
9
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
10
|
+
import { StablesApiClient } from "../lib/stables-client.js";
|
|
11
|
+
export declare function registerDocumentTools(server: McpServer, client: StablesApiClient): void;
|
|
12
|
+
//# sourceMappingURL=documents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/tools/documents.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAwC,MAAM,0BAA0B,CAAC;AAsBlG,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,QAyFhF"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Document Tools for Stables MCP Server
|
|
3
|
+
*
|
|
4
|
+
* Mirrors the Transfer Documents and Deposit Documents references on
|
|
5
|
+
* docs.stables.money: attach an invoice, contract or other supporting document
|
|
6
|
+
* to a transfer or to a payment route deposit, for example when Stables
|
|
7
|
+
* compliance asks for one, then list, download or remove it.
|
|
8
|
+
*/
|
|
9
|
+
import { z } from "zod";
|
|
10
|
+
import { StablesApiError } from "../lib/stables-client.js";
|
|
11
|
+
const OWNER = z
|
|
12
|
+
.enum(["transfer", "deposit"])
|
|
13
|
+
.describe("What the document belongs to: a transfer, or a deposit on a payment route");
|
|
14
|
+
const TRANSACTION_ID = z
|
|
15
|
+
.string()
|
|
16
|
+
.describe("The transfer ID, or the deposit ID from get_virtual_account_history");
|
|
17
|
+
function formatError(error) {
|
|
18
|
+
if (error instanceof StablesApiError)
|
|
19
|
+
return `${error.message} (HTTP ${error.statusCode})`;
|
|
20
|
+
return error instanceof Error ? error.message : "Unknown error";
|
|
21
|
+
}
|
|
22
|
+
function text(value, isError = false) {
|
|
23
|
+
return { content: [{ type: "text", text: value }], ...(isError && { isError }) };
|
|
24
|
+
}
|
|
25
|
+
function describeDocument(d) {
|
|
26
|
+
return `- ${d.document_id}: ${d.file_name} (${d.type}, ${d.content_type}, ${d.size_bytes} bytes, added ${d.created_at})`;
|
|
27
|
+
}
|
|
28
|
+
export function registerDocumentTools(server, client) {
|
|
29
|
+
server.tool("add_document", "Attach a supporting document (invoice, contract or other) to a transfer or a payment route deposit, for example when Stables compliance asks for one. The file goes as a base64 data URL ('data:application/pdf;base64,...').", {
|
|
30
|
+
on: OWNER,
|
|
31
|
+
transactionId: TRANSACTION_ID,
|
|
32
|
+
fileName: z.string().describe("File name shown to Stables, e.g. 'invoice-2041.pdf'"),
|
|
33
|
+
base64Url: z.string().describe("The file as a data URL: 'data:<mime>;base64,<data>'"),
|
|
34
|
+
type: z
|
|
35
|
+
.enum(["invoice", "contract", "other"])
|
|
36
|
+
.optional()
|
|
37
|
+
.describe("What the document is (default other)"),
|
|
38
|
+
}, async ({ on, transactionId, fileName, base64Url, type }) => {
|
|
39
|
+
try {
|
|
40
|
+
const { document } = await client.addDocument(on, transactionId, {
|
|
41
|
+
file_name: fileName,
|
|
42
|
+
base64_url: base64Url,
|
|
43
|
+
...(type && { type }),
|
|
44
|
+
});
|
|
45
|
+
return text(`Document attached to ${on} ${transactionId}:\n${describeDocument(document)}`);
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
return text(`Failed to attach the document: ${formatError(error)}`, true);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
server.tool("list_documents", "List the documents attached to a transfer or a payment route deposit, newest first.", {
|
|
52
|
+
on: OWNER,
|
|
53
|
+
transactionId: TRANSACTION_ID,
|
|
54
|
+
}, async ({ on, transactionId }) => {
|
|
55
|
+
try {
|
|
56
|
+
const { documents } = await client.listDocuments(on, transactionId);
|
|
57
|
+
if (!documents?.length)
|
|
58
|
+
return text(`No documents on ${on} ${transactionId}.`);
|
|
59
|
+
return text(`Documents on ${on} ${transactionId}:\n${documents.map(describeDocument).join("\n")}`);
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
return text(`Failed to list documents: ${formatError(error)}`, true);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
server.tool("get_document_download_url", "Get a short-lived link to download a document attached to a transfer or a payment route deposit.", {
|
|
66
|
+
on: OWNER,
|
|
67
|
+
transactionId: TRANSACTION_ID,
|
|
68
|
+
documentId: z.string().describe("The document ID from list_documents"),
|
|
69
|
+
}, async ({ on, transactionId, documentId }) => {
|
|
70
|
+
try {
|
|
71
|
+
const link = await client.getDocumentDownloadUrl(on, transactionId, documentId);
|
|
72
|
+
return text(`Download ${link.file_name} (${link.content_type}), valid for ${link.expires_in} seconds:\n${link.url}`);
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
return text(`Failed to get the download link: ${formatError(error)}`, true);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
server.tool("delete_document", "Remove a document from a transfer or a payment route deposit. This cannot be undone, so confirm with a human first.", {
|
|
79
|
+
on: OWNER,
|
|
80
|
+
transactionId: TRANSACTION_ID,
|
|
81
|
+
documentId: z.string().describe("The document ID from list_documents"),
|
|
82
|
+
}, async ({ on, transactionId, documentId }) => {
|
|
83
|
+
try {
|
|
84
|
+
const { deleted } = await client.deleteDocument(on, transactionId, documentId);
|
|
85
|
+
return text(deleted
|
|
86
|
+
? `Document ${documentId} removed from ${on} ${transactionId}.`
|
|
87
|
+
: `Document ${documentId} was not removed.`);
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
return text(`Failed to remove the document: ${formatError(error)}`, true);
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=documents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../src/tools/documents.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,eAAe,EAAuB,MAAM,0BAA0B,CAAC;AAElG,MAAM,KAAK,GAAG,CAAC;KACZ,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;KAC7B,QAAQ,CAAC,2EAA2E,CAAC,CAAC;AACzF,MAAM,cAAc,GAAG,CAAC;KACrB,MAAM,EAAE;KACR,QAAQ,CAAC,qEAAqE,CAAC,CAAC;AAEnF,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,YAAY,eAAe;QAAE,OAAO,GAAG,KAAK,CAAC,OAAO,UAAU,KAAK,CAAC,UAAU,GAAG,CAAC;IAC3F,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;AAClE,CAAC;AAED,SAAS,IAAI,CAAC,KAAa,EAAE,OAAO,GAAG,KAAK;IAC1C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAC5F,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAsB;IAC9C,OAAO,KAAK,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,UAAU,iBAAiB,CAAC,CAAC,UAAU,GAAG,CAAC;AAC3H,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAiB,EAAE,MAAwB;IAC/E,MAAM,CAAC,IAAI,CACT,cAAc,EACd,+NAA+N,EAC/N;QACE,EAAE,EAAE,KAAK;QACT,aAAa,EAAE,cAAc;QAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QACpF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QACrF,IAAI,EAAE,CAAC;aACJ,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;aACtC,QAAQ,EAAE;aACV,QAAQ,CAAC,sCAAsC,CAAC;KACpD,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE;QACzD,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,aAAa,EAAE;gBAC/D,SAAS,EAAE,QAAQ;gBACnB,UAAU,EAAE,SAAS;gBACrB,GAAG,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;aACtB,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,wBAAwB,EAAE,IAAI,aAAa,MAAM,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC7F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,kCAAkC,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,qFAAqF,EACrF;QACE,EAAE,EAAE,KAAK;QACT,aAAa,EAAE,cAAc;KAC9B,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QAC9B,IAAI,CAAC;YACH,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;YACpE,IAAI,CAAC,SAAS,EAAE,MAAM;gBAAE,OAAO,IAAI,CAAC,mBAAmB,EAAE,IAAI,aAAa,GAAG,CAAC,CAAC;YAC/E,OAAO,IAAI,CACT,gBAAgB,EAAE,IAAI,aAAa,MAAM,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACtF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,6BAA6B,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACvE,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,2BAA2B,EAC3B,kGAAkG,EAClG;QACE,EAAE,EAAE,KAAK;QACT,aAAa,EAAE,cAAc;QAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;KACvE,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE,EAAE;QAC1C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,EAAE,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;YAChF,OAAO,IAAI,CACT,YAAY,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,YAAY,gBAAgB,IAAI,CAAC,UAAU,cAAc,IAAI,CAAC,GAAG,EAAE,CACxG,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,oCAAoC,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,qHAAqH,EACrH;QACE,EAAE,EAAE,KAAK;QACT,aAAa,EAAE,cAAc;QAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;KACvE,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE,EAAE;QAC1C,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;YAC/E,OAAO,IAAI,CACT,OAAO;gBACL,CAAC,CAAC,YAAY,UAAU,iBAAiB,EAAE,IAAI,aAAa,GAAG;gBAC/D,CAAC,CAAC,YAAY,UAAU,mBAAmB,CAC9C,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,kCAAkC,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entitlement Tools for Stables MCP Server
|
|
3
|
+
*
|
|
4
|
+
* Mirrors the Entitlements guide on docs.stables.money: check what a customer
|
|
5
|
+
* can apply for, request it, submit any further verification Stables asks for,
|
|
6
|
+
* then wait for the phase to reach `ready` (get_customer shows it) before
|
|
7
|
+
* creating payment routes on it.
|
|
8
|
+
*/
|
|
9
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
10
|
+
import { StablesApiClient } from "../lib/stables-client.js";
|
|
11
|
+
export declare function registerEntitlementTools(server: McpServer, client: StablesApiClient): void;
|
|
12
|
+
//# sourceMappingURL=entitlements.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entitlements.d.ts","sourceRoot":"","sources":["../../src/tools/entitlements.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EACL,gBAAgB,EAIjB,MAAM,0BAA0B,CAAC;AAsBlC,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,QAkFnF"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entitlement Tools for Stables MCP Server
|
|
3
|
+
*
|
|
4
|
+
* Mirrors the Entitlements guide on docs.stables.money: check what a customer
|
|
5
|
+
* can apply for, request it, submit any further verification Stables asks for,
|
|
6
|
+
* then wait for the phase to reach `ready` (get_customer shows it) before
|
|
7
|
+
* creating payment routes on it.
|
|
8
|
+
*/
|
|
9
|
+
import { z } from "zod";
|
|
10
|
+
import { StablesApiError, ENTITLEMENT_IDS, } from "../lib/stables-client.js";
|
|
11
|
+
function formatError(error) {
|
|
12
|
+
if (error instanceof StablesApiError)
|
|
13
|
+
return `${error.message} (HTTP ${error.statusCode})`;
|
|
14
|
+
return error instanceof Error ? error.message : "Unknown error";
|
|
15
|
+
}
|
|
16
|
+
function text(value, isError = false) {
|
|
17
|
+
return { content: [{ type: "text", text: value }], ...(isError && { isError }) };
|
|
18
|
+
}
|
|
19
|
+
function describeEntitlements(result) {
|
|
20
|
+
return result.entitlements
|
|
21
|
+
.map((e) => {
|
|
22
|
+
const missing = e.requirements?.missing?.length
|
|
23
|
+
? `, missing: ${e.requirements.missing.join(", ")}`
|
|
24
|
+
: "";
|
|
25
|
+
return `- ${e.name}: ${e.status}${e.phase ? ` (phase ${e.phase})` : ""}${missing}`;
|
|
26
|
+
})
|
|
27
|
+
.join("\n");
|
|
28
|
+
}
|
|
29
|
+
export function registerEntitlementTools(server, client) {
|
|
30
|
+
server.tool("list_available_entitlements", "List the entitlements (products and payment rails, e.g. 'aed_local') a customer has not applied for yet, whether each is available to them now, and the verification it needs.", {
|
|
31
|
+
customerId: z.string().describe("The customer ID"),
|
|
32
|
+
}, async ({ customerId }) => {
|
|
33
|
+
try {
|
|
34
|
+
const result = (await client.listAvailableEntitlements(customerId));
|
|
35
|
+
const list = result.entitlements ?? [];
|
|
36
|
+
if (list.length === 0)
|
|
37
|
+
return text(`Customer ${customerId} has applied for every entitlement.`);
|
|
38
|
+
const lines = list.map((e) => `- ${e.name}: ${e.eligible ? "can request now" : "not available yet"}` +
|
|
39
|
+
(e.required_verification_levels?.length
|
|
40
|
+
? `, needs ${e.required_verification_levels
|
|
41
|
+
.map((l) => typeof l === "string" ? l : (l.name ?? JSON.stringify(l)))
|
|
42
|
+
.join(", ")}`
|
|
43
|
+
: ""));
|
|
44
|
+
return text(`Entitlements available to ${customerId}:\n${lines.join("\n")}`);
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
return text(`Failed to list entitlements: ${formatError(error)}`, true);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
server.tool("request_entitlements", "Apply for one or more entitlements for an existing customer, e.g. to add a payment rail. Check list_available_entitlements first. If Stables needs more verification, the response lists what is missing; send it with submit_entitlement_requirements.", {
|
|
51
|
+
customerId: z.string().describe("The customer ID"),
|
|
52
|
+
entitlements: z
|
|
53
|
+
.array(z.enum(ENTITLEMENT_IDS))
|
|
54
|
+
.min(1)
|
|
55
|
+
.describe("Entitlement names, e.g. ['aed_local']"),
|
|
56
|
+
}, async ({ customerId, entitlements }) => {
|
|
57
|
+
try {
|
|
58
|
+
const result = await client.requestEntitlements(customerId, entitlements);
|
|
59
|
+
return text(`Entitlements requested for ${customerId}:\n${describeEntitlements(result)}
|
|
60
|
+
|
|
61
|
+
Create payment routes on an entitlement only once its phase is 'ready' (check with get_customer).`);
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
return text(`Failed to request entitlements: ${formatError(error)}`, true);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
server.tool("submit_entitlement_requirements", "Send further verification data Stables asked for on a requested entitlement. The fields are those of the customer record in snake_case (e.g. tax_id_number, address, financial_profile, id_documents, proof_of_address_documents); send only what is missing. Documents are base64 data.", {
|
|
68
|
+
customerId: z.string().describe("The customer ID"),
|
|
69
|
+
entitlement: z.string().describe("The entitlement name, e.g. 'aed_local'"),
|
|
70
|
+
requirements: z
|
|
71
|
+
.record(z.unknown())
|
|
72
|
+
.describe("The missing fields, snake_case as in the Update Customer reference"),
|
|
73
|
+
}, async ({ customerId, entitlement, requirements }) => {
|
|
74
|
+
try {
|
|
75
|
+
const result = await client.updateEntitlementRequirements(customerId, entitlement, requirements);
|
|
76
|
+
return text(`Requirements submitted for ${entitlement}:\n${describeEntitlements(result)}`);
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
return text(`Failed to submit requirements: ${formatError(error)}`, true);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=entitlements.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entitlements.js","sourceRoot":"","sources":["../../src/tools/entitlements.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfers.d.ts","sourceRoot":"","sources":["../../src/tools/transfers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,
|
|
1
|
+
{"version":3,"file":"transfers.d.ts","sourceRoot":"","sources":["../../src/tools/transfers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EACL,gBAAgB,EAIjB,MAAM,0BAA0B,CAAC;AA0LlC,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,QA4RhF"}
|
package/build/tools/transfers.js
CHANGED
|
@@ -44,6 +44,135 @@ Deposit Instructions (share with customer):
|
|
|
44
44
|
|
|
45
45
|
The customer must send this amount to that address. Once received, Stables processes the payout.`;
|
|
46
46
|
}
|
|
47
|
+
// The API rejects anything else; listing them saves an agent a failed transfer.
|
|
48
|
+
const PURPOSE_CODES = [
|
|
49
|
+
"PAYMENT_FOR_SERVICES",
|
|
50
|
+
"PAYMENT_FOR_SOFTWARE",
|
|
51
|
+
"PAYMENT_FOR_IMPORTED_GOODS",
|
|
52
|
+
"TRAVEL_SERVICES",
|
|
53
|
+
"VENDOR_CONTRACTOR_PAYOUTS",
|
|
54
|
+
"TRANSFER_TO_OWN_ACCOUNT",
|
|
55
|
+
"INVESTMENT_IN_SHARES",
|
|
56
|
+
"PURCHASE_OF_PROPERTY",
|
|
57
|
+
"REPAYMENT_OF_LOANS",
|
|
58
|
+
"SALARY",
|
|
59
|
+
"PAYMENT_OF_PROPERTY_RENTAL",
|
|
60
|
+
"INFORMATION_SERVICE_CHARGES",
|
|
61
|
+
"ADVERTISING_PR_EXPENSES",
|
|
62
|
+
"ROYALTY_FEES",
|
|
63
|
+
"BROKER_COMMITMENT_FEES",
|
|
64
|
+
"ADVISOR_TECHNICAL_FEES",
|
|
65
|
+
"REPRESENTATIVE_OFFICE_EXPENSES",
|
|
66
|
+
"TAX_PAYMENT",
|
|
67
|
+
"TRANSPORTATION_FEES_FOR_GOODS",
|
|
68
|
+
"CONSTRUCTION_COSTS",
|
|
69
|
+
"INSURANCE_PREMIUM",
|
|
70
|
+
"GENERAL_GOODS_TRADES",
|
|
71
|
+
"INSURANCE_CLAIMS_PAYMENT",
|
|
72
|
+
"FAMILY_MAINTENANCE",
|
|
73
|
+
"EDUCATION_EXPENSES",
|
|
74
|
+
"MEDICAL_TREATMENT",
|
|
75
|
+
"DONATIONS",
|
|
76
|
+
"MUTUAL_FUND_INVESTMENT",
|
|
77
|
+
"CURRENCY_EXCHANGE",
|
|
78
|
+
"USER_WITHDRAWAL",
|
|
79
|
+
"ADVANCE_PAYMENTS_FOR_GOODS",
|
|
80
|
+
"VENDOR_CONTRACTOR_SOFTWARE_PAYOUTS",
|
|
81
|
+
"MERCHANT_SETTLEMENT",
|
|
82
|
+
"REPATRIATION_FUND_SETTLEMENT",
|
|
83
|
+
"PERSONAL_REMITTANCE",
|
|
84
|
+
"RETURN_OF_FUNDS",
|
|
85
|
+
];
|
|
86
|
+
/** Bank payout fields, shared by create_transfer and validate_payment_method. */
|
|
87
|
+
const bankDestinationShape = {
|
|
88
|
+
accountHolderName: z
|
|
89
|
+
.string()
|
|
90
|
+
.optional()
|
|
91
|
+
.describe("Account holder's full name, or the company name when recipientType is business"),
|
|
92
|
+
bankName: z.string().optional().describe("Name of the destination bank"),
|
|
93
|
+
bankCountry: z.string().optional().describe("Bank country, ISO 2-letter (e.g. 'AU', 'US')"),
|
|
94
|
+
bankCurrency: z.string().optional().describe("Payout currency, ISO 3-letter (e.g. 'EUR')"),
|
|
95
|
+
recipientType: z
|
|
96
|
+
.enum(["individual", "business"])
|
|
97
|
+
.optional()
|
|
98
|
+
.describe(`Beneficiary type. Required for ${ENHANCED_BENEFICIARY_CURRENCIES}`),
|
|
99
|
+
dateOfBirth: z
|
|
100
|
+
.string()
|
|
101
|
+
.optional()
|
|
102
|
+
.describe(`Beneficiary date of birth, YYYY-MM-DD. Required when recipientType is individual for ${ENHANCED_BENEFICIARY_CURRENCIES}`),
|
|
103
|
+
addressStreet: z.string().optional().describe("Beneficiary street address"),
|
|
104
|
+
addressCity: z.string().optional().describe("Beneficiary city"),
|
|
105
|
+
addressState: z.string().optional().describe("Beneficiary state or region"),
|
|
106
|
+
addressPostalCode: z.string().optional().describe("Beneficiary postal code"),
|
|
107
|
+
addressCountry: z
|
|
108
|
+
.string()
|
|
109
|
+
.optional()
|
|
110
|
+
.describe(`Beneficiary country, ISO 2-letter. The complete address is required for ${ENHANCED_BENEFICIARY_CURRENCIES}`),
|
|
111
|
+
iban: z.string().optional().describe("IBAN (EU/international)"),
|
|
112
|
+
accountNumber: z.string().optional().describe("Bank account number, if not using IBAN"),
|
|
113
|
+
accountType: z
|
|
114
|
+
.enum(["savings", "checking", "payment"])
|
|
115
|
+
.optional()
|
|
116
|
+
.describe("Account type. Required for CAD and USD bank payouts"),
|
|
117
|
+
payId: z.string().optional().describe("PayID alias (AUD only). Requires payIdType"),
|
|
118
|
+
payIdType: z
|
|
119
|
+
.enum(["email", "phone_number", "abn", "acn", "organisation_id"])
|
|
120
|
+
.optional()
|
|
121
|
+
.describe("PayID alias type. Required when payId is given"),
|
|
122
|
+
swiftCode: z.string().optional().describe("SWIFT code"),
|
|
123
|
+
bicCode: z.string().optional().describe("BIC (EUR/GBP international)"),
|
|
124
|
+
routingNumber: z.string().optional().describe("ABA routing number (US)"),
|
|
125
|
+
sortCode: z.string().optional().describe("Sort code (UK)"),
|
|
126
|
+
ifscCode: z.string().optional().describe("IFSC code (India)"),
|
|
127
|
+
bsbCode: z.string().optional().describe("BSB code (Australia)"),
|
|
128
|
+
bankCode: z.string().optional().describe("Bank code / institution number (CAD)"),
|
|
129
|
+
branchCode: z.string().optional().describe("Branch code / transit number (CAD)"),
|
|
130
|
+
cnaps: z.string().optional().describe("CNAPS (China)"),
|
|
131
|
+
};
|
|
132
|
+
function buildBankDestination(input) {
|
|
133
|
+
if (!input.accountHolderName || !input.bankName || !input.bankCountry || !input.bankCurrency) {
|
|
134
|
+
throw new Error("A bank destination needs accountHolderName, bankName, bankCountry and bankCurrency");
|
|
135
|
+
}
|
|
136
|
+
// Sent only when complete. Each sub-field is validated separately, so
|
|
137
|
+
// half an address is rejected the same as none but is harder to debug.
|
|
138
|
+
const hasAddress = Boolean(input.addressStreet &&
|
|
139
|
+
input.addressCity &&
|
|
140
|
+
input.addressState &&
|
|
141
|
+
input.addressPostalCode &&
|
|
142
|
+
input.addressCountry);
|
|
143
|
+
return {
|
|
144
|
+
type: "bank",
|
|
145
|
+
account_holder_name: input.accountHolderName,
|
|
146
|
+
bank_name: input.bankName,
|
|
147
|
+
bank_country: input.bankCountry,
|
|
148
|
+
currency: input.bankCurrency,
|
|
149
|
+
...(input.recipientType && { recipient_type: input.recipientType }),
|
|
150
|
+
...(input.dateOfBirth && { date_of_birth: input.dateOfBirth }),
|
|
151
|
+
...(hasAddress && {
|
|
152
|
+
address: {
|
|
153
|
+
street: input.addressStreet,
|
|
154
|
+
city: input.addressCity,
|
|
155
|
+
state: input.addressState,
|
|
156
|
+
postal_code: input.addressPostalCode,
|
|
157
|
+
country: input.addressCountry,
|
|
158
|
+
},
|
|
159
|
+
}),
|
|
160
|
+
...(input.iban && { iban: input.iban }),
|
|
161
|
+
...(input.accountNumber && { account_number: input.accountNumber }),
|
|
162
|
+
...(input.accountType && { account_type: input.accountType }),
|
|
163
|
+
...(input.payId && { pay_id: input.payId }),
|
|
164
|
+
...(input.payIdType && { pay_id_type: input.payIdType }),
|
|
165
|
+
...(input.swiftCode && { swift_code: input.swiftCode }),
|
|
166
|
+
...(input.bicCode && { bic_code: input.bicCode }),
|
|
167
|
+
...(input.routingNumber && { aba_code: input.routingNumber }),
|
|
168
|
+
...(input.sortCode && { sort_code: input.sortCode }),
|
|
169
|
+
...(input.ifscCode && { ifsc_code: input.ifscCode }),
|
|
170
|
+
...(input.bsbCode && { bsb_code: input.bsbCode }),
|
|
171
|
+
...(input.bankCode && { bank_code: input.bankCode }),
|
|
172
|
+
...(input.branchCode && { branch_code: input.branchCode }),
|
|
173
|
+
...(input.cnaps && { cnaps: input.cnaps }),
|
|
174
|
+
};
|
|
175
|
+
}
|
|
47
176
|
export function registerTransferTools(server, client) {
|
|
48
177
|
// Create Transfer
|
|
49
178
|
server.tool("create_transfer", "Execute a transfer using an active quote. The quote must not be expired. This initiates real money movement, so get explicit human approval first. " +
|
|
@@ -54,49 +183,7 @@ export function registerTransferTools(server, client) {
|
|
|
54
183
|
.enum(["bank", "crypto"])
|
|
55
184
|
.default("bank")
|
|
56
185
|
.describe("Payout target: a bank account (off-ramp) or a wallet address"),
|
|
57
|
-
|
|
58
|
-
.string()
|
|
59
|
-
.optional()
|
|
60
|
-
.describe("Account holder's full name, or the company name when recipientType is business"),
|
|
61
|
-
bankName: z.string().optional().describe("Name of the destination bank"),
|
|
62
|
-
bankCountry: z.string().optional().describe("Bank country, ISO 2-letter (e.g. 'AU', 'US')"),
|
|
63
|
-
bankCurrency: z.string().optional().describe("Payout currency, ISO 3-letter (e.g. 'EUR')"),
|
|
64
|
-
recipientType: z
|
|
65
|
-
.enum(["individual", "business"])
|
|
66
|
-
.optional()
|
|
67
|
-
.describe(`Beneficiary type. Required for ${ENHANCED_BENEFICIARY_CURRENCIES}`),
|
|
68
|
-
dateOfBirth: z
|
|
69
|
-
.string()
|
|
70
|
-
.optional()
|
|
71
|
-
.describe(`Beneficiary date of birth, YYYY-MM-DD. Required when recipientType is individual for ${ENHANCED_BENEFICIARY_CURRENCIES}`),
|
|
72
|
-
addressStreet: z.string().optional().describe("Beneficiary street address"),
|
|
73
|
-
addressCity: z.string().optional().describe("Beneficiary city"),
|
|
74
|
-
addressState: z.string().optional().describe("Beneficiary state or region"),
|
|
75
|
-
addressPostalCode: z.string().optional().describe("Beneficiary postal code"),
|
|
76
|
-
addressCountry: z
|
|
77
|
-
.string()
|
|
78
|
-
.optional()
|
|
79
|
-
.describe(`Beneficiary country, ISO 2-letter. The complete address is required for ${ENHANCED_BENEFICIARY_CURRENCIES}`),
|
|
80
|
-
iban: z.string().optional().describe("IBAN (EU/international)"),
|
|
81
|
-
accountNumber: z.string().optional().describe("Bank account number, if not using IBAN"),
|
|
82
|
-
accountType: z
|
|
83
|
-
.enum(["savings", "checking", "payment"])
|
|
84
|
-
.optional()
|
|
85
|
-
.describe("Account type. Required for CAD and USD bank payouts"),
|
|
86
|
-
payId: z.string().optional().describe("PayID alias (AUD only). Requires payIdType"),
|
|
87
|
-
payIdType: z
|
|
88
|
-
.enum(["email", "phone", "abn", "org_id"])
|
|
89
|
-
.optional()
|
|
90
|
-
.describe("PayID alias type. Required when payId is given"),
|
|
91
|
-
swiftCode: z.string().optional().describe("SWIFT code"),
|
|
92
|
-
bicCode: z.string().optional().describe("BIC (EUR/GBP international)"),
|
|
93
|
-
routingNumber: z.string().optional().describe("ABA routing number (US)"),
|
|
94
|
-
sortCode: z.string().optional().describe("Sort code (UK)"),
|
|
95
|
-
ifscCode: z.string().optional().describe("IFSC code (India)"),
|
|
96
|
-
bsbCode: z.string().optional().describe("BSB code (Australia)"),
|
|
97
|
-
bankCode: z.string().optional().describe("Bank code / institution number (CAD)"),
|
|
98
|
-
branchCode: z.string().optional().describe("Branch code / transit number (CAD)"),
|
|
99
|
-
cnaps: z.string().optional().describe("CNAPS (China)"),
|
|
186
|
+
...bankDestinationShape,
|
|
100
187
|
destinationCurrency: z
|
|
101
188
|
.string()
|
|
102
189
|
.optional()
|
|
@@ -110,9 +197,13 @@ export function registerTransferTools(server, client) {
|
|
|
110
197
|
.optional()
|
|
111
198
|
.describe("Wallet address when destinationType is crypto"),
|
|
112
199
|
purposeCode: z
|
|
113
|
-
.
|
|
200
|
+
.enum(PURPOSE_CODES)
|
|
114
201
|
.optional()
|
|
115
202
|
.describe("Purpose of the transfer (e.g. 'SALARY'). Required on some corridors"),
|
|
203
|
+
fundingSource: z
|
|
204
|
+
.enum(["fund_transfer", "prefund_balance"])
|
|
205
|
+
.optional()
|
|
206
|
+
.describe("fund_transfer (default) returns deposit instructions for the customer; prefund_balance pays from your organisation's balance and starts immediately. Check get_balance first: transfers_enabled must be true and the quote's source asset must be held on its network"),
|
|
116
207
|
metadata: z.record(z.string()).optional().describe("Optional metadata"),
|
|
117
208
|
}, async (input) => {
|
|
118
209
|
try {
|
|
@@ -131,57 +222,14 @@ export function registerTransferTools(server, client) {
|
|
|
131
222
|
};
|
|
132
223
|
}
|
|
133
224
|
else {
|
|
134
|
-
|
|
135
|
-
!input.bankName ||
|
|
136
|
-
!input.bankCountry ||
|
|
137
|
-
!input.bankCurrency) {
|
|
138
|
-
throw new Error("A bank destination needs accountHolderName, bankName, bankCountry and bankCurrency");
|
|
139
|
-
}
|
|
140
|
-
// Sent only when complete. Each sub-field is validated separately, so
|
|
141
|
-
// half an address is rejected the same as none but is harder to debug.
|
|
142
|
-
const hasAddress = Boolean(input.addressStreet &&
|
|
143
|
-
input.addressCity &&
|
|
144
|
-
input.addressState &&
|
|
145
|
-
input.addressPostalCode &&
|
|
146
|
-
input.addressCountry);
|
|
147
|
-
destination = {
|
|
148
|
-
type: "bank",
|
|
149
|
-
account_holder_name: input.accountHolderName,
|
|
150
|
-
bank_name: input.bankName,
|
|
151
|
-
bank_country: input.bankCountry,
|
|
152
|
-
currency: input.bankCurrency,
|
|
153
|
-
...(input.recipientType && { recipient_type: input.recipientType }),
|
|
154
|
-
...(input.dateOfBirth && { date_of_birth: input.dateOfBirth }),
|
|
155
|
-
...(hasAddress && {
|
|
156
|
-
address: {
|
|
157
|
-
street: input.addressStreet,
|
|
158
|
-
city: input.addressCity,
|
|
159
|
-
state: input.addressState,
|
|
160
|
-
postal_code: input.addressPostalCode,
|
|
161
|
-
country: input.addressCountry,
|
|
162
|
-
},
|
|
163
|
-
}),
|
|
164
|
-
...(input.iban && { iban: input.iban }),
|
|
165
|
-
...(input.accountNumber && { account_number: input.accountNumber }),
|
|
166
|
-
...(input.accountType && { account_type: input.accountType }),
|
|
167
|
-
...(input.payId && { pay_id: input.payId }),
|
|
168
|
-
...(input.payIdType && { pay_id_type: input.payIdType }),
|
|
169
|
-
...(input.swiftCode && { swift_code: input.swiftCode }),
|
|
170
|
-
...(input.bicCode && { bic_code: input.bicCode }),
|
|
171
|
-
...(input.routingNumber && { aba_code: input.routingNumber }),
|
|
172
|
-
...(input.sortCode && { sort_code: input.sortCode }),
|
|
173
|
-
...(input.ifscCode && { ifsc_code: input.ifscCode }),
|
|
174
|
-
...(input.bsbCode && { bsb_code: input.bsbCode }),
|
|
175
|
-
...(input.bankCode && { bank_code: input.bankCode }),
|
|
176
|
-
...(input.branchCode && { branch_code: input.branchCode }),
|
|
177
|
-
...(input.cnaps && { cnaps: input.cnaps }),
|
|
178
|
-
};
|
|
225
|
+
destination = buildBankDestination(input);
|
|
179
226
|
}
|
|
180
227
|
const transfer = await client.createTransfer({
|
|
181
228
|
customer_id: input.customerId,
|
|
182
229
|
quote_id: input.quoteId,
|
|
183
230
|
destination,
|
|
184
231
|
...(input.purposeCode && { purpose_code: input.purposeCode }),
|
|
232
|
+
...(input.fundingSource && { funding_source: input.fundingSource }),
|
|
185
233
|
...(input.metadata && { metadata: input.metadata }),
|
|
186
234
|
});
|
|
187
235
|
return {
|
|
@@ -223,6 +271,43 @@ Use 'get_transfer' to check the status.`,
|
|
|
223
271
|
};
|
|
224
272
|
}
|
|
225
273
|
});
|
|
274
|
+
// Validate Payment Method
|
|
275
|
+
server.tool("validate_payment_method", "Check bank payout details against the corridor's rules without creating anything. Use it before create_transfer to find out which fields a currency needs (beneficiary address, date of birth, bank codes), instead of spending a short-lived quote on a rejected transfer.", {
|
|
276
|
+
network: z
|
|
277
|
+
.enum(["bank", "swift", "payid"])
|
|
278
|
+
.describe("Payout network: local bank rails, SWIFT, or PayID (AUD)"),
|
|
279
|
+
quoteId: z.string().optional().describe("Validate against this quote's corridor"),
|
|
280
|
+
...bankDestinationShape,
|
|
281
|
+
}, async ({ network, quoteId, ...input }) => {
|
|
282
|
+
try {
|
|
283
|
+
const result = await client.validatePaymentMethod(network, buildBankDestination(input), quoteId);
|
|
284
|
+
if (result.valid) {
|
|
285
|
+
return {
|
|
286
|
+
content: [
|
|
287
|
+
{
|
|
288
|
+
type: "text",
|
|
289
|
+
text: "Valid: these payout details pass every rule for this corridor.",
|
|
290
|
+
},
|
|
291
|
+
],
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
const errors = (result.errors ?? [])
|
|
295
|
+
.map((e) => `- ${e.field ? `${e.field}: ` : ""}${e.message} (${e.code})`)
|
|
296
|
+
.join("\n");
|
|
297
|
+
return { content: [{ type: "text", text: `Not valid:\n${errors}` }] };
|
|
298
|
+
}
|
|
299
|
+
catch (error) {
|
|
300
|
+
return {
|
|
301
|
+
content: [
|
|
302
|
+
{
|
|
303
|
+
type: "text",
|
|
304
|
+
text: `Failed to validate payment method: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
305
|
+
},
|
|
306
|
+
],
|
|
307
|
+
isError: true,
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
});
|
|
226
311
|
// Get Transfer
|
|
227
312
|
server.tool("get_transfer", "Get the current status and details of a transfer", {
|
|
228
313
|
transferId: z.string().describe("The transfer ID to look up"),
|