stables-mcp-server 2.2.1 → 2.3.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 +23 -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 +138 -15
- package/build/lib/stables-client.d.ts.map +1 -1
- package/build/lib/stables-client.js +102 -6
- 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 +6 -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/customers.d.ts.map +1 -1
- package/build/tools/customers.js +330 -258
- package/build/tools/customers.js.map +1 -1
- 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 +122 -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 +11 -6
|
@@ -33,11 +33,7 @@ export function registerVirtualAccountTools(server, client) {
|
|
|
33
33
|
.enum(["usdc", "usdt", "dai", "pyusd", "eurc"])
|
|
34
34
|
.default("usdt")
|
|
35
35
|
.describe("Stablecoin to receive"),
|
|
36
|
-
|
|
37
|
-
.string()
|
|
38
|
-
.optional()
|
|
39
|
-
.describe("Your fee on each deposit, as a numeric string (e.g. '0.5')"),
|
|
40
|
-
}, async ({ customerId, sourceCurrency, destinationAddress, destinationPaymentRail, destinationCurrency, developerFeePercent, }) => {
|
|
36
|
+
}, async ({ customerId, sourceCurrency, destinationAddress, destinationPaymentRail, destinationCurrency, }) => {
|
|
41
37
|
try {
|
|
42
38
|
// deposit_handling_mode is deliberately absent: it is not part of the
|
|
43
39
|
// create schema and was silently ignored here. The server sets it, and
|
|
@@ -50,7 +46,6 @@ export function registerVirtualAccountTools(server, client) {
|
|
|
50
46
|
payment_rail: destinationPaymentRail,
|
|
51
47
|
address: destinationAddress,
|
|
52
48
|
},
|
|
53
|
-
...(developerFeePercent && { developer_fee_percent: developerFeePercent }),
|
|
54
49
|
};
|
|
55
50
|
const account = await client.createVirtualAccount(customerId, request);
|
|
56
51
|
const instructions = account.source_deposit_instructions;
|
|
@@ -110,22 +105,32 @@ Share the deposit instructions with the customer to receive funds.`,
|
|
|
110
105
|
}
|
|
111
106
|
});
|
|
112
107
|
// List Virtual Accounts (by customer)
|
|
113
|
-
server.tool("list_virtual_accounts", "List
|
|
114
|
-
customerId: z
|
|
108
|
+
server.tool("list_virtual_accounts", "List payment routes (virtual accounts) for one customer, or across every customer when customerId is omitted", {
|
|
109
|
+
customerId: z
|
|
110
|
+
.string()
|
|
111
|
+
.optional()
|
|
112
|
+
.describe("Only this customer's routes; omit to list routes across all customers"),
|
|
115
113
|
status: z
|
|
116
114
|
.enum(["activated", "deactivated", "pending", "closed"])
|
|
117
115
|
.optional()
|
|
118
116
|
.describe("Filter by account status"),
|
|
119
117
|
limit: z.number().optional().describe("Maximum number of accounts to return"),
|
|
120
|
-
|
|
118
|
+
startingAfter: z
|
|
119
|
+
.string()
|
|
120
|
+
.optional()
|
|
121
|
+
.describe("Return routes after this route ID (the last ID of the previous page)"),
|
|
122
|
+
}, async ({ customerId, status, limit, startingAfter }) => {
|
|
121
123
|
try {
|
|
122
|
-
const response =
|
|
124
|
+
const response = customerId
|
|
125
|
+
? await client.listVirtualAccounts(customerId, { status, limit, startingAfter })
|
|
126
|
+
: await client.listAllVirtualAccounts({ status, limit, startingAfter });
|
|
127
|
+
const scope = customerId ? `customer ${customerId}` : "any customer";
|
|
123
128
|
if (response.data.length === 0) {
|
|
124
129
|
return {
|
|
125
130
|
content: [
|
|
126
131
|
{
|
|
127
132
|
type: "text",
|
|
128
|
-
text: `No virtual accounts found for
|
|
133
|
+
text: `No virtual accounts found for ${scope}. Use 'create_virtual_account' to create one.`,
|
|
129
134
|
},
|
|
130
135
|
],
|
|
131
136
|
};
|
|
@@ -145,7 +150,7 @@ Share the deposit instructions with the customer to receive funds.`,
|
|
|
145
150
|
content: [
|
|
146
151
|
{
|
|
147
152
|
type: "text",
|
|
148
|
-
text: `Virtual Accounts for
|
|
153
|
+
text: `Virtual Accounts for ${scope} (${response.count} total):
|
|
149
154
|
|
|
150
155
|
${accountList}`,
|
|
151
156
|
},
|
|
@@ -164,6 +169,111 @@ ${accountList}`,
|
|
|
164
169
|
};
|
|
165
170
|
}
|
|
166
171
|
});
|
|
172
|
+
// AUD payment route whitelisting
|
|
173
|
+
const whitelistIds = {
|
|
174
|
+
customerId: z.string().describe("The customer ID"),
|
|
175
|
+
virtualAccountId: z.string().describe("The AUD payment route (virtual account) ID"),
|
|
176
|
+
};
|
|
177
|
+
server.tool("list_route_whitelist", "List the bank accounts whitelisted to pay into an AUD payment route. Some Australian routes only accept deposits from whitelisted source accounts.", whitelistIds, async ({ customerId, virtualAccountId }) => {
|
|
178
|
+
try {
|
|
179
|
+
const result = await client.listRouteWhitelist(customerId, virtualAccountId);
|
|
180
|
+
if (result.data.length === 0) {
|
|
181
|
+
return {
|
|
182
|
+
content: [{ type: "text", text: "No whitelisted source accounts on this route." }],
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
const lines = result.data
|
|
186
|
+
.map((a) => `- #${a.id}: BSB ${a.bsb_number} account ${a.account_number}${a.account_name ? ` (${a.account_name})` : ""} - ${a.account_status}`)
|
|
187
|
+
.join("\n");
|
|
188
|
+
return {
|
|
189
|
+
content: [
|
|
190
|
+
{ type: "text", text: `Whitelisted source accounts (${result.count}):\n${lines}` },
|
|
191
|
+
],
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
catch (error) {
|
|
195
|
+
return {
|
|
196
|
+
content: [
|
|
197
|
+
{
|
|
198
|
+
type: "text",
|
|
199
|
+
text: `Failed to list whitelist: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
200
|
+
},
|
|
201
|
+
],
|
|
202
|
+
isError: true,
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
server.tool("add_route_whitelist_account", "Whitelist an Australian bank account (BSB and account number) to pay into an AUD payment route.", {
|
|
207
|
+
...whitelistIds,
|
|
208
|
+
bsbNumber: z.string().describe("Source account BSB"),
|
|
209
|
+
accountNumber: z.string().describe("Source account number"),
|
|
210
|
+
enabled: z.boolean().default(true).describe("Whether deposits from it are accepted now"),
|
|
211
|
+
}, async ({ customerId, virtualAccountId, bsbNumber, accountNumber, enabled }) => {
|
|
212
|
+
try {
|
|
213
|
+
const account = await client.addRouteWhitelistAccount(customerId, virtualAccountId, {
|
|
214
|
+
bsb_number: bsbNumber,
|
|
215
|
+
account_number: accountNumber,
|
|
216
|
+
account_status: enabled ? "enabled" : "disabled",
|
|
217
|
+
});
|
|
218
|
+
return {
|
|
219
|
+
content: [
|
|
220
|
+
{
|
|
221
|
+
type: "text",
|
|
222
|
+
text: `Whitelisted #${account.id}: BSB ${account.bsb_number} account ${account.account_number} (${account.account_status})`,
|
|
223
|
+
},
|
|
224
|
+
],
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
catch (error) {
|
|
228
|
+
return {
|
|
229
|
+
content: [
|
|
230
|
+
{
|
|
231
|
+
type: "text",
|
|
232
|
+
text: `Failed to whitelist account: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
233
|
+
},
|
|
234
|
+
],
|
|
235
|
+
isError: true,
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
server.tool("update_route_whitelist_account", "Change or disable a whitelisted source account on an AUD payment route. Send the full record: BSB, account number and status.", {
|
|
240
|
+
...whitelistIds,
|
|
241
|
+
sourceAccountId: z
|
|
242
|
+
.number()
|
|
243
|
+
.int()
|
|
244
|
+
.positive()
|
|
245
|
+
.describe("The whitelist entry ID (from list_route_whitelist)"),
|
|
246
|
+
bsbNumber: z.string().describe("Source account BSB"),
|
|
247
|
+
accountNumber: z.string().describe("Source account number"),
|
|
248
|
+
enabled: z.boolean().describe("false to stop accepting deposits from it"),
|
|
249
|
+
}, async ({ customerId, virtualAccountId, sourceAccountId, bsbNumber, accountNumber, enabled, }) => {
|
|
250
|
+
try {
|
|
251
|
+
const account = await client.updateRouteWhitelistAccount(customerId, virtualAccountId, sourceAccountId, {
|
|
252
|
+
bsb_number: bsbNumber,
|
|
253
|
+
account_number: accountNumber,
|
|
254
|
+
account_status: enabled ? "enabled" : "disabled",
|
|
255
|
+
});
|
|
256
|
+
return {
|
|
257
|
+
content: [
|
|
258
|
+
{
|
|
259
|
+
type: "text",
|
|
260
|
+
text: `Updated #${account.id}: BSB ${account.bsb_number} account ${account.account_number} (${account.account_status})`,
|
|
261
|
+
},
|
|
262
|
+
],
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
catch (error) {
|
|
266
|
+
return {
|
|
267
|
+
content: [
|
|
268
|
+
{
|
|
269
|
+
type: "text",
|
|
270
|
+
text: `Failed to update whitelist entry: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
271
|
+
},
|
|
272
|
+
],
|
|
273
|
+
isError: true,
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
});
|
|
167
277
|
// Update Virtual Account
|
|
168
278
|
server.tool("update_virtual_account", "Update virtual account settings (e.g., deposit handling mode)", {
|
|
169
279
|
customerId: z.string().describe("The customer ID"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtual-accounts.js","sourceRoot":"","sources":["../../src/tools/virtual-accounts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"virtual-accounts.js","sourceRoot":"","sources":["../../src/tools/virtual-accounts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,cAAc,UAAU,CAAC"}
|
package/build/version.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC"}
|
package/build/worker.d.ts
CHANGED
|
@@ -3,9 +3,24 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Deployed with `npm run deploy:worker` (see wrangler.toml). The Worker owns
|
|
5
5
|
* no secrets: every request authenticates with the caller's own API key.
|
|
6
|
+
*
|
|
7
|
+
* Requests are rate limited per caller before the handler runs: by API key
|
|
8
|
+
* when one is sent, otherwise by client IP, so unauthenticated probing from
|
|
9
|
+
* one IP cannot crowd out keyed callers.
|
|
6
10
|
*/
|
|
11
|
+
export interface RateLimiter {
|
|
12
|
+
limit(options: {
|
|
13
|
+
key: string;
|
|
14
|
+
}): Promise<{
|
|
15
|
+
success: boolean;
|
|
16
|
+
}>;
|
|
17
|
+
}
|
|
18
|
+
export interface Env {
|
|
19
|
+
RATE_LIMITER: RateLimiter;
|
|
20
|
+
}
|
|
21
|
+
export declare function rateLimitKey(request: Request): string;
|
|
7
22
|
declare const _default: {
|
|
8
|
-
fetch(request: Request): Promise<Response>;
|
|
23
|
+
fetch(request: Request, env: Env): Promise<Response>;
|
|
9
24
|
};
|
|
10
25
|
export default _default;
|
|
11
26
|
//# sourceMappingURL=worker.d.ts.map
|
package/build/worker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAChE;AAED,MAAM,WAAW,GAAG;IAClB,YAAY,EAAE,WAAW,CAAC;CAC3B;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAIrD;;mBAgBsB,OAAO,OAAO,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;;AAD5D,wBAME"}
|
package/build/worker.js
CHANGED
|
@@ -3,10 +3,33 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Deployed with `npm run deploy:worker` (see wrangler.toml). The Worker owns
|
|
5
5
|
* no secrets: every request authenticates with the caller's own API key.
|
|
6
|
+
*
|
|
7
|
+
* Requests are rate limited per caller before the handler runs: by API key
|
|
8
|
+
* when one is sent, otherwise by client IP, so unauthenticated probing from
|
|
9
|
+
* one IP cannot crowd out keyed callers.
|
|
6
10
|
*/
|
|
11
|
+
import { extractApiKey } from "./http/auth.js";
|
|
7
12
|
import { handleRequest } from "./http/handler.js";
|
|
13
|
+
export function rateLimitKey(request) {
|
|
14
|
+
const apiKey = extractApiKey(request.headers);
|
|
15
|
+
if (apiKey)
|
|
16
|
+
return `key:${apiKey}`;
|
|
17
|
+
return `ip:${request.headers.get("cf-connecting-ip") ?? "unknown"}`;
|
|
18
|
+
}
|
|
19
|
+
function rateLimited() {
|
|
20
|
+
return new Response(JSON.stringify({
|
|
21
|
+
error: "rate_limited",
|
|
22
|
+
message: "Too many requests. Retry after 60 seconds.",
|
|
23
|
+
}), {
|
|
24
|
+
status: 429,
|
|
25
|
+
headers: { "content-type": "application/json", "retry-after": "60" },
|
|
26
|
+
});
|
|
27
|
+
}
|
|
8
28
|
export default {
|
|
9
|
-
fetch(request) {
|
|
29
|
+
async fetch(request, env) {
|
|
30
|
+
const { success } = await env.RATE_LIMITER.limit({ key: rateLimitKey(request) });
|
|
31
|
+
if (!success)
|
|
32
|
+
return rateLimited();
|
|
10
33
|
return handleRequest(request);
|
|
11
34
|
},
|
|
12
35
|
};
|
package/build/worker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAUlD,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,MAAM;QAAE,OAAO,OAAO,MAAM,EAAE,CAAC;IACnC,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,SAAS,EAAE,CAAC;AACtE,CAAC;AAED,SAAS,WAAW;IAClB,OAAO,IAAI,QAAQ,CACjB,IAAI,CAAC,SAAS,CAAC;QACb,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,4CAA4C;KACtD,CAAC,EACF;QACE,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,IAAI,EAAE;KACrE,CACF,CAAC;AACJ,CAAC;AAED,eAAe;IACb,KAAK,CAAC,KAAK,CAAC,OAAgB,EAAE,GAAQ;QACpC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,OAAO;YAAE,OAAO,WAAW,EAAE,CAAC;QACnC,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;CACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "stables-mcp-server",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "MCP server for the Stables fiat-to-crypto API, hosted at mcp.stables.money or run locally - enables AI agents to manage customers, quotes, transfers and payment routes",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "build/index.js",
|
|
@@ -14,11 +14,11 @@
|
|
|
14
14
|
"LICENSE"
|
|
15
15
|
],
|
|
16
16
|
"scripts": {
|
|
17
|
-
"build": "tsc",
|
|
17
|
+
"build": "npm run version:sync && tsc",
|
|
18
18
|
"start": "node build/index.js",
|
|
19
19
|
"serve": "node build/serve.js",
|
|
20
|
-
"dev:worker": "wrangler dev",
|
|
21
|
-
"deploy:worker": "wrangler deploy",
|
|
20
|
+
"dev:worker": "npm run version:sync && wrangler dev",
|
|
21
|
+
"deploy:worker": "npm run version:sync && wrangler deploy",
|
|
22
22
|
"dev": "tsc --watch",
|
|
23
23
|
"inspect": "npx @modelcontextprotocol/inspector node build/index.js",
|
|
24
24
|
"test": "vitest run",
|
|
@@ -29,8 +29,11 @@
|
|
|
29
29
|
"format": "prettier --write 'src/**/*.ts'",
|
|
30
30
|
"format:check": "prettier --check 'src/**/*.ts'",
|
|
31
31
|
"prepublishOnly": "npm run build",
|
|
32
|
-
"check:spec": "node scripts/
|
|
33
|
-
"
|
|
32
|
+
"check:spec": "node scripts/fetch-reference.mjs && vitest run src/contract.test.ts",
|
|
33
|
+
"check:release": "node scripts/check-release-state.mjs",
|
|
34
|
+
"docs:reference": "node scripts/generate-tool-reference.mjs > docs/tool-reference.md",
|
|
35
|
+
"version:sync": "node scripts/write-version.mjs",
|
|
36
|
+
"version": "npm run version:sync && git add src/version.ts"
|
|
34
37
|
},
|
|
35
38
|
"keywords": [
|
|
36
39
|
"mcp",
|
|
@@ -72,6 +75,8 @@
|
|
|
72
75
|
"@eslint/js": "^10.0.1",
|
|
73
76
|
"@types/node": "^20.0.0",
|
|
74
77
|
"@vitest/coverage-v8": "^4.0.18",
|
|
78
|
+
"ajv": "^8.18.0",
|
|
79
|
+
"ajv-formats": "^3.0.1",
|
|
75
80
|
"eslint": "^10.0.2",
|
|
76
81
|
"eslint-config-prettier": "^10.1.8",
|
|
77
82
|
"prettier": "^3.8.1",
|