@curless/agentbank-merchant-mcp 0.0.3 → 0.0.5
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 +16 -14
- package/dist/index.js +61 -38
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
# @curless/agentbank-merchant-mcp
|
|
2
2
|
|
|
3
3
|
Merchant-side MCP server for [agentbank](https://gitlab.com/robin-ruan/agentbank).
|
|
4
|
-
Lets a merchant read **their own orders and
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
Lets a merchant read **their own orders and live Curless wallet balance** (real
|
|
5
|
+
funds settled into the merchant's Curless account) from an MCP client (Claude
|
|
6
|
+
Desktop).
|
|
7
7
|
|
|
8
|
-
Authenticated by
|
|
9
|
-
remote `/mcp` connector added by URL in claude.ai; this is the simple
|
|
10
|
-
path for Claude Desktop / stdio clients.) Kept separate from the
|
|
11
|
-
`@curless/agentbank-mcp` so the two personas don't share a tool surface.
|
|
8
|
+
Authenticated by your **Curless API key via env — no OAuth.** (The OAuth route is
|
|
9
|
+
the remote `/mcp` connector added by URL in claude.ai; this is the simple
|
|
10
|
+
token-based path for Claude Desktop / stdio clients.) Kept separate from the
|
|
11
|
+
buyer's `@curless/agentbank-mcp` so the two personas don't share a tool surface.
|
|
12
|
+
Renders the **same MCP Apps card** as the remote `/mcp` connector, with a markdown
|
|
13
|
+
table fallback for hosts without the card.
|
|
12
14
|
|
|
13
15
|
## Tools
|
|
14
16
|
|
|
15
17
|
- **`list_orders`** — this merchant's orders (what agents have paid), newest first.
|
|
16
|
-
- **`get_balance`** — balance per currency
|
|
17
|
-
Curless wallet.
|
|
18
|
+
- **`get_balance`** — the live Curless wallet balance per currency (available / frozen).
|
|
18
19
|
|
|
19
20
|
## Use (Claude Desktop `claude_desktop_config.json`)
|
|
20
21
|
|
|
@@ -25,8 +26,7 @@ path for Claude Desktop / stdio clients.) Kept separate from the buyer's
|
|
|
25
26
|
"command": "/usr/local/bin/npx",
|
|
26
27
|
"args": ["-y", "@curless/agentbank-merchant-mcp"],
|
|
27
28
|
"env": {
|
|
28
|
-
"
|
|
29
|
-
"AGENTBANK_MERCHANT_TOKEN": "agb_test_…",
|
|
29
|
+
"AGENTBANK_MERCHANT_TOKEN": "<your-curless-api-key>",
|
|
30
30
|
"AGENTBANK_MERCHANT_ID": "429488"
|
|
31
31
|
}
|
|
32
32
|
}
|
|
@@ -36,6 +36,8 @@ path for Claude Desktop / stdio clients.) Kept separate from the buyer's
|
|
|
36
36
|
|
|
37
37
|
| env | what |
|
|
38
38
|
| --- | --- |
|
|
39
|
-
| `
|
|
40
|
-
| `
|
|
41
|
-
|
|
39
|
+
| `AGENTBANK_MERCHANT_TOKEN` | your Curless API key (issued by Curless at onboarding) |
|
|
40
|
+
| `AGENTBANK_MERCHANT_ID` | your Curless merchant id, e.g. `429488` |
|
|
41
|
+
|
|
42
|
+
The server talks to `https://mcp.curless.ai` by default — no need to configure it.
|
|
43
|
+
(Local dev only: set `AGENTBANK_API_URL=http://localhost:3000` to point at a local API.)
|
package/dist/index.js
CHANGED
|
@@ -4,25 +4,27 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
|
|
|
4
4
|
import { CallToolRequestSchema, ListResourcesRequestSchema, ListToolsRequestSchema, ReadResourceRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
5
5
|
import { MERCHANT_CARD_HTML } from './card.generated.js';
|
|
6
6
|
// @curless/agentbank-merchant-mcp — MERCHANT-side stdio MCP for agentbank.
|
|
7
|
-
// Lets a merchant read THEIR OWN orders +
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
11
|
-
//
|
|
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.
|
|
12
14
|
//
|
|
13
15
|
// Run (Claude Desktop / any MCP client):
|
|
14
16
|
// npx -y @curless/agentbank-merchant-mcp
|
|
15
17
|
// with env:
|
|
16
|
-
// AGENTBANK_API_URL (default http://localhost:3000
|
|
17
|
-
// AGENTBANK_MERCHANT_TOKEN
|
|
18
|
-
// 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
|
|
19
21
|
//
|
|
20
22
|
// IMPORTANT: only JSON-RPC may be written to stdout (the MCP stdio transport).
|
|
21
23
|
// Never console.log here — diagnostics go to stderr.
|
|
22
|
-
const API_BASE = process.env.AGENTBANK_API_URL ?? '
|
|
24
|
+
const API_BASE = process.env.AGENTBANK_API_URL ?? 'https://mcp.curless.ai';
|
|
23
25
|
const TOKEN = process.env.AGENTBANK_MERCHANT_TOKEN;
|
|
24
26
|
const MERCHANT = process.env.AGENTBANK_MERCHANT_ID;
|
|
25
|
-
// Minor-unit integer →
|
|
27
|
+
// Minor-unit integer → exact decimal string (no currency suffix), per currency.
|
|
26
28
|
const DECIMALS = { USD: 2, EUR: 2, USDC: 6, USDT: 6, EURC: 6 };
|
|
27
29
|
const fmt = (minor, currency) => {
|
|
28
30
|
const d = DECIMALS[currency] ?? 2;
|
|
@@ -30,11 +32,47 @@ const fmt = (minor, currency) => {
|
|
|
30
32
|
const s = String(Math.abs(minor)).padStart(d + 1, '0');
|
|
31
33
|
const whole = s.slice(0, s.length - d);
|
|
32
34
|
const frac = d > 0 ? `.${s.slice(s.length - d)}` : '';
|
|
33
|
-
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');
|
|
34
72
|
};
|
|
35
73
|
const api = async (path) => {
|
|
36
74
|
if (!TOKEN)
|
|
37
|
-
throw new Error('set AGENTBANK_MERCHANT_TOKEN (
|
|
75
|
+
throw new Error('set AGENTBANK_MERCHANT_TOKEN (your Curless API key)');
|
|
38
76
|
if (!MERCHANT)
|
|
39
77
|
throw new Error('set AGENTBANK_MERCHANT_ID (e.g. 429488)');
|
|
40
78
|
const res = await fetch(`${API_BASE}${path}`, {
|
|
@@ -72,17 +110,14 @@ const TOOLS = [
|
|
|
72
110
|
_meta: UI_META,
|
|
73
111
|
},
|
|
74
112
|
];
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
// stays as the universal fallback for non-UI hosts).
|
|
80
|
-
const card = (value, structured) => ({
|
|
81
|
-
content: [{ type: 'text', text: JSON.stringify(value, null, 2) }],
|
|
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 }],
|
|
82
117
|
structuredContent: structured,
|
|
83
118
|
_meta: UI_META,
|
|
84
119
|
});
|
|
85
|
-
const server = new Server({ name: 'agentbank-merchant', version: '0.0.
|
|
120
|
+
const server = new Server({ name: 'agentbank-merchant', version: '0.0.5' }, { capabilities: { tools: {}, resources: {} } });
|
|
86
121
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: TOOLS }));
|
|
87
122
|
// The card resource (MCP Apps): advertise + serve the self-contained HTML.
|
|
88
123
|
server.setRequestHandler(ListResourcesRequestSchema, async () => ({
|
|
@@ -100,30 +135,18 @@ server.setRequestHandler(CallToolRequestSchema, async (req) => {
|
|
|
100
135
|
const limit = Math.min(Number(args.limit) || 50, 200);
|
|
101
136
|
const offset = Math.max(Number(args.offset) || 0, 0);
|
|
102
137
|
const res = await api(mPath(`/orders?limit=${limit}&offset=${offset}`));
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
status: o.status,
|
|
108
|
-
items: o.lineItems,
|
|
109
|
-
}));
|
|
110
|
-
return card({ merchant: MERCHANT, count: res.pagination?.count ?? orders.length, orders }, { merchantId: MERCHANT, orders: res.data });
|
|
138
|
+
return card(ordersMarkdown(MERCHANT ?? '', res.data), {
|
|
139
|
+
merchantId: MERCHANT,
|
|
140
|
+
orders: res.data, // raw (minor amounts) for the card
|
|
141
|
+
});
|
|
111
142
|
}
|
|
112
143
|
if (req.params.name === 'get_balance') {
|
|
113
144
|
const b = await api(mPath('/balance'));
|
|
114
145
|
// Show ONLY the Curless wallet (real settled funds), per currency — no
|
|
115
146
|
// agentbank ledger, no channel. structuredContent carries raw minor units
|
|
116
|
-
// for the card; the
|
|
147
|
+
// for the card; the markdown is the formatted fallback.
|
|
117
148
|
const wallet = b.curlessWallet ?? [];
|
|
118
|
-
return card({
|
|
119
|
-
merchant: MERCHANT,
|
|
120
|
-
mode: b.mode,
|
|
121
|
-
curless_wallet: wallet.map((x) => ({
|
|
122
|
-
currency: x.currency,
|
|
123
|
-
available: fmt(x.available, x.currency),
|
|
124
|
-
frozen: fmt(x.frozen, x.currency),
|
|
125
|
-
})),
|
|
126
|
-
}, {
|
|
149
|
+
return card(walletMarkdown(MERCHANT ?? '', b.mode, wallet), {
|
|
127
150
|
merchantId: MERCHANT,
|
|
128
151
|
mode: b.mode,
|
|
129
152
|
curlessWallet: wallet.map((x) => ({
|
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,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,2EAA2E;AAC3E,gFAAgF;AAChF
|
|
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.5",
|
|
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": {
|