@codespar/mcp-coinbase-commerce 0.2.0 → 0.2.1
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 +20 -11
- package/dist/index.js +2 -2
- package/package.json +2 -2
- package/server.json +2 -2
- package/src/index.ts +2 -2
package/README.md
CHANGED
|
@@ -15,19 +15,28 @@ Coinbase Commerce is the **merchant-accept** side of crypto. Your store prices a
|
|
|
15
15
|
|
|
16
16
|
Use Coinbase Commerce when an agent needs to **bill a buyer in crypto** — hosted charge page, reusable checkout, or directed invoice.
|
|
17
17
|
|
|
18
|
-
## Tools
|
|
18
|
+
## Tools (18)
|
|
19
19
|
|
|
20
20
|
| Tool | Purpose |
|
|
21
|
-
|
|
22
|
-
| `create_charge` | Create a one-time
|
|
23
|
-
| `retrieve_charge` |
|
|
24
|
-
| `list_charges` | List charges
|
|
25
|
-
| `cancel_charge` | Cancel
|
|
26
|
-
| `resolve_charge` | Manually
|
|
27
|
-
| `create_checkout` | Create a reusable hosted checkout
|
|
28
|
-
| `retrieve_checkout` |
|
|
29
|
-
| `
|
|
30
|
-
| `
|
|
21
|
+
|---|---|
|
|
22
|
+
| `create_charge` | Create a crypto charge — a one-time merchant invoice priced in local fiat that a buyer can settle in BTC, E... |
|
|
23
|
+
| `retrieve_charge` | Retrieve a charge by its Coinbase Commerce id OR its short code (the 8-character code embedded in the hoste... |
|
|
24
|
+
| `list_charges` | List charges, newest first. |
|
|
25
|
+
| `cancel_charge` | Cancel a charge that has not yet been paid. |
|
|
26
|
+
| `resolve_charge` | Manually resolve a charge as paid. |
|
|
27
|
+
| `create_checkout` | Create a reusable hosted checkout — think product-page-style link that can be paid multiple times. |
|
|
28
|
+
| `retrieve_checkout` | Retrieve a checkout by id. |
|
|
29
|
+
| `list_checkouts` | List reusable hosted checkouts, newest first. |
|
|
30
|
+
| `update_checkout` | Update an existing reusable checkout. |
|
|
31
|
+
| `delete_checkout` | Delete a reusable checkout. |
|
|
32
|
+
| `list_events` | List events — the lifecycle signals (charge:created, charge:confirmed, charge:failed, charge:delayed, charg... |
|
|
33
|
+
| `retrieve_event` | Retrieve a single event by id. |
|
|
34
|
+
| `create_invoice` | Create an invoice — a directed bill sent to a specific named recipient. |
|
|
35
|
+
| `retrieve_invoice` | Retrieve an invoice by code. |
|
|
36
|
+
| `list_invoices` | List invoices, newest first. |
|
|
37
|
+
| `void_invoice` | Void an unpaid invoice. |
|
|
38
|
+
| `list_exchange_rates` | Fetch current Coinbase exchange rates for a base asset (e.g. |
|
|
39
|
+
| `verify_webhook_signature` | Local helper — verify a Coinbase Commerce webhook payload using HMAC-SHA256. |
|
|
31
40
|
|
|
32
41
|
## Install
|
|
33
42
|
|
package/dist/index.js
CHANGED
|
@@ -105,7 +105,7 @@ function verifyWebhook(rawBody, signature, secret) {
|
|
|
105
105
|
return false;
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
|
-
const server = new Server({ name: "mcp-coinbase-commerce", version: "0.2.
|
|
108
|
+
const server = new Server({ name: "mcp-coinbase-commerce", version: "0.2.1" }, { capabilities: { tools: {} } });
|
|
109
109
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
110
110
|
tools: [
|
|
111
111
|
{
|
|
@@ -483,7 +483,7 @@ async function main() {
|
|
|
483
483
|
const t = new StreamableHTTPServerTransport({ sessionIdGenerator: () => randomUUID(), onsessioninitialized: (id) => { transports.set(id, t); } });
|
|
484
484
|
t.onclose = () => { if (t.sessionId)
|
|
485
485
|
transports.delete(t.sessionId); };
|
|
486
|
-
const s = new Server({ name: "mcp-coinbase-commerce", version: "0.2.
|
|
486
|
+
const s = new Server({ name: "mcp-coinbase-commerce", version: "0.2.1" }, { capabilities: { tools: {} } });
|
|
487
487
|
server._requestHandlers.forEach((v, k) => s._requestHandlers.set(k, v));
|
|
488
488
|
server._notificationHandlers?.forEach((v, k) => s._notificationHandlers.set(k, v));
|
|
489
489
|
await s.connect(t);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codespar/mcp-coinbase-commerce",
|
|
3
|
-
"version": "0.2.
|
|
4
|
-
"description": "MCP server for Coinbase Commerce
|
|
3
|
+
"version": "0.2.1",
|
|
4
|
+
"description": "MCP server for Coinbase Commerce \u2014 global crypto merchant payments. Accept BTC, ETH, USDC and more at checkout with hosted charges, checkouts, and invoices.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"bin": {
|
package/server.json
CHANGED
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
"source": "github",
|
|
8
8
|
"subfolder": "packages/crypto/coinbase-commerce"
|
|
9
9
|
},
|
|
10
|
-
"version": "0.2.
|
|
10
|
+
"version": "0.2.1",
|
|
11
11
|
"packages": [
|
|
12
12
|
{
|
|
13
13
|
"registryType": "npm",
|
|
14
14
|
"identifier": "@codespar/mcp-coinbase-commerce",
|
|
15
|
-
"version": "0.2.
|
|
15
|
+
"version": "0.2.1",
|
|
16
16
|
"transport": {
|
|
17
17
|
"type": "stdio"
|
|
18
18
|
},
|
package/src/index.ts
CHANGED
|
@@ -109,7 +109,7 @@ function verifyWebhook(rawBody: string, signature: string, secret: string): bool
|
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
const server = new Server(
|
|
112
|
-
{ name: "mcp-coinbase-commerce", version: "0.2.
|
|
112
|
+
{ name: "mcp-coinbase-commerce", version: "0.2.1" },
|
|
113
113
|
{ capabilities: { tools: {} } }
|
|
114
114
|
);
|
|
115
115
|
|
|
@@ -488,7 +488,7 @@ async function main() {
|
|
|
488
488
|
if (!sid && isInitializeRequest(req.body)) {
|
|
489
489
|
const t = new StreamableHTTPServerTransport({ sessionIdGenerator: () => randomUUID(), onsessioninitialized: (id) => { transports.set(id, t); } });
|
|
490
490
|
t.onclose = () => { if (t.sessionId) transports.delete(t.sessionId); };
|
|
491
|
-
const s = new Server({ name: "mcp-coinbase-commerce", version: "0.2.
|
|
491
|
+
const s = new Server({ name: "mcp-coinbase-commerce", version: "0.2.1" }, { capabilities: { tools: {} } });
|
|
492
492
|
(server as unknown as { _requestHandlers: Map<unknown, unknown> })._requestHandlers.forEach((v, k) => (s as unknown as { _requestHandlers: Map<unknown, unknown> })._requestHandlers.set(k, v));
|
|
493
493
|
(server as unknown as { _notificationHandlers?: Map<unknown, unknown> })._notificationHandlers?.forEach((v, k) => (s as unknown as { _notificationHandlers: Map<unknown, unknown> })._notificationHandlers.set(k, v));
|
|
494
494
|
await s.connect(t);
|