@curless/agentbank-merchant-mcp 0.0.2 → 0.0.4
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 +14 -13
- package/dist/card.generated.d.ts +2 -0
- package/dist/card.generated.d.ts.map +1 -0
- package/dist/card.generated.js +5 -0
- package/dist/card.generated.js.map +1 -0
- package/dist/index.js +89 -31
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card.generated.js","sourceRoot":"","sources":["../src/card.generated.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,8EAA8E;AAC9E,gFAAgF;AAChF,MAAM,CAAC,MAAM,kBAAkB,GAAW,MAAM,CAAC,IAAI,CACnD,sphcAAsphc,EACtphc,QAAQ,CACT,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,27 +1,30 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
3
3
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
4
|
-
import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
|
|
4
|
+
import { CallToolRequestSchema, ListResourcesRequestSchema, ListToolsRequestSchema, ReadResourceRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
import { MERCHANT_CARD_HTML } from './card.generated.js';
|
|
5
6
|
// @curless/agentbank-merchant-mcp — MERCHANT-side stdio MCP for agentbank.
|
|
6
|
-
// Lets a merchant read THEIR OWN orders +
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
7
|
+
// Lets a merchant read THEIR OWN orders + live Curless wallet balance from an MCP
|
|
8
|
+
// client (Claude Desktop), authenticated by their Curless API key passed via env
|
|
9
|
+
// — NO OAuth. (The OAuth route is the remote /mcp connector; this is the simple
|
|
10
|
+
// token-based path.) Renders the SAME MCP Apps card as the remote /mcp connector
|
|
11
|
+
// (built in apps/api/mcp-ui, injected here by emit-card.mjs), with a markdown
|
|
12
|
+
// fallback for hosts without the card. Kept separate from the buyer's
|
|
13
|
+
// @curless/agentbank-mcp so the two personas don't share a tool surface.
|
|
11
14
|
//
|
|
12
15
|
// Run (Claude Desktop / any MCP client):
|
|
13
16
|
// npx -y @curless/agentbank-merchant-mcp
|
|
14
17
|
// with env:
|
|
15
|
-
// AGENTBANK_API_URL (default http://localhost:3000
|
|
16
|
-
// AGENTBANK_MERCHANT_TOKEN
|
|
17
|
-
// AGENTBANK_MERCHANT_ID
|
|
18
|
+
// AGENTBANK_API_URL (default https://mcp.curless.ai; set http://localhost:3000 for local dev)
|
|
19
|
+
// AGENTBANK_MERCHANT_TOKEN your Curless API key (the unified merchant credential)
|
|
20
|
+
// AGENTBANK_MERCHANT_ID your Curless merchant id, e.g. 429488
|
|
18
21
|
//
|
|
19
22
|
// IMPORTANT: only JSON-RPC may be written to stdout (the MCP stdio transport).
|
|
20
23
|
// Never console.log here — diagnostics go to stderr.
|
|
21
|
-
const API_BASE = process.env.AGENTBANK_API_URL ?? '
|
|
24
|
+
const API_BASE = process.env.AGENTBANK_API_URL ?? 'https://mcp.curless.ai';
|
|
22
25
|
const TOKEN = process.env.AGENTBANK_MERCHANT_TOKEN;
|
|
23
26
|
const MERCHANT = process.env.AGENTBANK_MERCHANT_ID;
|
|
24
|
-
// Minor-unit integer →
|
|
27
|
+
// Minor-unit integer → exact decimal string (no currency suffix), per currency.
|
|
25
28
|
const DECIMALS = { USD: 2, EUR: 2, USDC: 6, USDT: 6, EURC: 6 };
|
|
26
29
|
const fmt = (minor, currency) => {
|
|
27
30
|
const d = DECIMALS[currency] ?? 2;
|
|
@@ -29,11 +32,47 @@ const fmt = (minor, currency) => {
|
|
|
29
32
|
const s = String(Math.abs(minor)).padStart(d + 1, '0');
|
|
30
33
|
const whole = s.slice(0, s.length - d);
|
|
31
34
|
const frac = d > 0 ? `.${s.slice(s.length - d)}` : '';
|
|
32
|
-
return `${neg ? '-' : ''}${whole}${frac}
|
|
35
|
+
return `${neg ? '-' : ''}${whole}${frac}`;
|
|
36
|
+
};
|
|
37
|
+
// --- Markdown fallback (same shape the remote /mcp connector renders, so both
|
|
38
|
+
// merchant surfaces look identical on hosts without the MCP Apps card) ---------
|
|
39
|
+
const cell = (s) => s.replace(/\|/g, '\\|').replace(/\r?\n/g, ' ');
|
|
40
|
+
const fmtDate = (d) => (d ? new Date(d).toISOString().slice(0, 10) : '');
|
|
41
|
+
const ordersMarkdown = (merchantId, orders) => {
|
|
42
|
+
if (orders.length === 0)
|
|
43
|
+
return `**${merchantId}** — no orders yet.`;
|
|
44
|
+
const rows = orders.map((o) => {
|
|
45
|
+
const li = Array.isArray(o.lineItems)
|
|
46
|
+
? o.lineItems
|
|
47
|
+
: [];
|
|
48
|
+
const items = li
|
|
49
|
+
.map((x) => cell(`${x.name ?? ''}${(x.quantity ?? 1) > 1 ? ` ×${x.quantity}` : ''}`))
|
|
50
|
+
.join(', ') || '—';
|
|
51
|
+
return `| \`${o.id}\` | ${fmtDate(o.createdAt)} | ${fmt(o.amount, o.currency)} ${o.currency} | ${o.status ?? ''} | ${items} |`;
|
|
52
|
+
});
|
|
53
|
+
return [
|
|
54
|
+
`**Orders for \`${merchantId}\`** — ${orders.length} shown, newest first`,
|
|
55
|
+
'',
|
|
56
|
+
'| Order | Date | Amount | Status | Items |',
|
|
57
|
+
'| --- | --- | --- | --- | --- |',
|
|
58
|
+
...rows,
|
|
59
|
+
].join('\n');
|
|
60
|
+
};
|
|
61
|
+
const walletMarkdown = (merchantId, mode, wallet) => {
|
|
62
|
+
if (wallet.length === 0)
|
|
63
|
+
return `**${merchantId}** (${mode} mode) — no wallet balance yet.`;
|
|
64
|
+
const rows = wallet.map((b) => `| ${b.currency} | **${fmt(b.available, b.currency)}** | ${fmt(b.frozen, b.currency)} |`);
|
|
65
|
+
return [
|
|
66
|
+
`**Curless wallet for \`${merchantId}\`** (${mode} mode) — funds settled into your Curless account`,
|
|
67
|
+
'',
|
|
68
|
+
'| Currency | Available | Frozen |',
|
|
69
|
+
'| --- | --- | --- |',
|
|
70
|
+
...rows,
|
|
71
|
+
].join('\n');
|
|
33
72
|
};
|
|
34
73
|
const api = async (path) => {
|
|
35
74
|
if (!TOKEN)
|
|
36
|
-
throw new Error('set AGENTBANK_MERCHANT_TOKEN (
|
|
75
|
+
throw new Error('set AGENTBANK_MERCHANT_TOKEN (your Curless API key)');
|
|
37
76
|
if (!MERCHANT)
|
|
38
77
|
throw new Error('set AGENTBANK_MERCHANT_ID (e.g. 429488)');
|
|
39
78
|
const res = await fetch(`${API_BASE}${path}`, {
|
|
@@ -45,6 +84,12 @@ const api = async (path) => {
|
|
|
45
84
|
return (await res.json());
|
|
46
85
|
};
|
|
47
86
|
const mPath = (suffix) => `/v1/merchant/${encodeURIComponent(MERCHANT ?? '')}${suffix}`;
|
|
87
|
+
// MCP Apps card (a ui:// resource). Tools link to it via _meta.ui.resourceUri;
|
|
88
|
+
// a UI-capable host (Claude Desktop) renders it as a widget, others fall back to
|
|
89
|
+
// the text content. Same card the remote /mcp kit uses (built in apps/api/mcp-ui).
|
|
90
|
+
const CARD_URI = 'ui://agentbank-merchant/card-v1.html';
|
|
91
|
+
const CARD_MIME = 'text/html;profile=mcp-app';
|
|
92
|
+
const UI_META = { ui: { resourceUri: CARD_URI }, 'ui/resourceUri': CARD_URI };
|
|
48
93
|
const TOOLS = [
|
|
49
94
|
{
|
|
50
95
|
name: 'list_orders',
|
|
@@ -56,18 +101,33 @@ const TOOLS = [
|
|
|
56
101
|
offset: { type: 'number', description: 'rows to skip' },
|
|
57
102
|
},
|
|
58
103
|
},
|
|
104
|
+
_meta: UI_META,
|
|
59
105
|
},
|
|
60
106
|
{
|
|
61
107
|
name: 'get_balance',
|
|
62
|
-
description: "This merchant's
|
|
108
|
+
description: "This merchant's live Curless wallet balance, per currency.",
|
|
63
109
|
inputSchema: { type: 'object', properties: {} },
|
|
110
|
+
_meta: UI_META,
|
|
64
111
|
},
|
|
65
112
|
];
|
|
66
|
-
|
|
67
|
-
|
|
113
|
+
// Tool result that links the card: `structuredContent` feeds the widget, the
|
|
114
|
+
// markdown `text` is the universal fallback for hosts without the MCP Apps card.
|
|
115
|
+
const card = (markdown, structured) => ({
|
|
116
|
+
content: [{ type: 'text', text: markdown }],
|
|
117
|
+
structuredContent: structured,
|
|
118
|
+
_meta: UI_META,
|
|
68
119
|
});
|
|
69
|
-
const server = new Server({ name: 'agentbank-merchant', version: '0.0.
|
|
120
|
+
const server = new Server({ name: 'agentbank-merchant', version: '0.0.4' }, { capabilities: { tools: {}, resources: {} } });
|
|
70
121
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: TOOLS }));
|
|
122
|
+
// The card resource (MCP Apps): advertise + serve the self-contained HTML.
|
|
123
|
+
server.setRequestHandler(ListResourcesRequestSchema, async () => ({
|
|
124
|
+
resources: [{ uri: CARD_URI, name: 'Merchant card', mimeType: CARD_MIME }],
|
|
125
|
+
}));
|
|
126
|
+
server.setRequestHandler(ReadResourceRequestSchema, async (req) => {
|
|
127
|
+
if (req.params.uri !== CARD_URI)
|
|
128
|
+
throw new Error(`unknown resource: ${req.params.uri}`);
|
|
129
|
+
return { contents: [{ uri: CARD_URI, mimeType: CARD_MIME, text: MERCHANT_CARD_HTML }] };
|
|
130
|
+
});
|
|
71
131
|
server.setRequestHandler(CallToolRequestSchema, async (req) => {
|
|
72
132
|
const args = (req.params.arguments ?? {});
|
|
73
133
|
try {
|
|
@@ -75,26 +135,24 @@ server.setRequestHandler(CallToolRequestSchema, async (req) => {
|
|
|
75
135
|
const limit = Math.min(Number(args.limit) || 50, 200);
|
|
76
136
|
const offset = Math.max(Number(args.offset) || 0, 0);
|
|
77
137
|
const res = await api(mPath(`/orders?limit=${limit}&offset=${offset}`));
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
status: o.status,
|
|
83
|
-
items: o.lineItems,
|
|
84
|
-
}));
|
|
85
|
-
return text({ merchant: MERCHANT, count: res.pagination?.count ?? orders.length, orders });
|
|
138
|
+
return card(ordersMarkdown(MERCHANT ?? '', res.data), {
|
|
139
|
+
merchantId: MERCHANT,
|
|
140
|
+
orders: res.data, // raw (minor amounts) for the card
|
|
141
|
+
});
|
|
86
142
|
}
|
|
87
143
|
if (req.params.name === 'get_balance') {
|
|
88
144
|
const b = await api(mPath('/balance'));
|
|
89
145
|
// Show ONLY the Curless wallet (real settled funds), per currency — no
|
|
90
|
-
// agentbank ledger, no channel.
|
|
91
|
-
|
|
92
|
-
|
|
146
|
+
// agentbank ledger, no channel. structuredContent carries raw minor units
|
|
147
|
+
// for the card; the markdown is the formatted fallback.
|
|
148
|
+
const wallet = b.curlessWallet ?? [];
|
|
149
|
+
return card(walletMarkdown(MERCHANT ?? '', b.mode, wallet), {
|
|
150
|
+
merchantId: MERCHANT,
|
|
93
151
|
mode: b.mode,
|
|
94
|
-
|
|
152
|
+
curlessWallet: wallet.map((x) => ({
|
|
95
153
|
currency: x.currency,
|
|
96
|
-
available:
|
|
97
|
-
frozen:
|
|
154
|
+
available: x.available,
|
|
155
|
+
frozen: x.frozen,
|
|
98
156
|
})),
|
|
99
157
|
});
|
|
100
158
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@curless/agentbank-merchant-mcp",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"description": "Merchant-side MCP server for agentbank — read your orders +
|
|
3
|
+
"version": "0.0.4",
|
|
4
|
+
"description": "Merchant-side MCP server for agentbank — read your orders + live Curless wallet balance from Claude, authenticated by your Curless API key via env (no OAuth).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"bin": {
|