pion-mcp 0.4.2 → 0.5.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 +38 -0
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -99,6 +99,35 @@ a payment. The tool reports exactly which step failed, whether funds left the
|
|
|
99
99
|
wallet, and the payment id needed to clean up. A blind retry could pay twice,
|
|
100
100
|
so it refuses to guess.
|
|
101
101
|
|
|
102
|
+
## Requirements
|
|
103
|
+
|
|
104
|
+
**Node.js 22.12.0 or newer.**
|
|
105
|
+
|
|
106
|
+
This floor is higher than earlier releases advertised, and correcting it is
|
|
107
|
+
the reason 0.5.0 is a minor rather than a patch. Through 0.4.2 `package.json`
|
|
108
|
+
declared `>=18.17`, which was never true: the `@stellar/stellar-sdk` 16.x that
|
|
109
|
+
0.4.x pinned already declared `>=22.0.0` of its own, so Node 18 and 20 were
|
|
110
|
+
outside what the dependency supported the whole time. Nothing surfaced it,
|
|
111
|
+
because our own field is the one npm checks an install against — a package
|
|
112
|
+
cannot be warned about a floor it is itself misreporting.
|
|
113
|
+
|
|
114
|
+
0.5.0 moves to `@stellar/stellar-sdk` 17.x, whose floor is `>=22.12.0` (its
|
|
115
|
+
CommonJS build requires ESM-only dependencies, and `require(esm)` is only
|
|
116
|
+
unflagged from 22.12.0), and sets our declared floor to match it honestly.
|
|
117
|
+
|
|
118
|
+
If you are on Node 18 or 20, what this actually means:
|
|
119
|
+
|
|
120
|
+
- The chain read tools and `verify_user` never load the Stellar SDK — it is
|
|
121
|
+
imported lazily, inside the payment handler — so those paths are unlikely
|
|
122
|
+
to be affected in practice.
|
|
123
|
+
- **`send_payment` is the part that genuinely needs 22.12.0.** It is also the
|
|
124
|
+
only part that moves funds, which is why the floor is stated here rather
|
|
125
|
+
than left to fail somewhere expensive.
|
|
126
|
+
|
|
127
|
+
Upgrading Node is the supported fix. Pinning 0.4.2 preserves the old declared
|
|
128
|
+
floor but not a working payment path — that release depends on an SDK that
|
|
129
|
+
did not support your runtime either.
|
|
130
|
+
|
|
102
131
|
## Usage
|
|
103
132
|
|
|
104
133
|
MCP clients can run it straight from npm — no install step:
|
|
@@ -161,6 +190,7 @@ npm run smoke # end-to-end against live testnet
|
|
|
161
190
|
npm run smoke:mainnet # the same checks against live mainnet
|
|
162
191
|
npm run crossnet # proves the two chains are actually distinguished
|
|
163
192
|
npm run arming # Tier C guards and spend cap (no credentials needed)
|
|
193
|
+
npm run signing # golden-XDR check on the A2U signing path (offline)
|
|
164
194
|
```
|
|
165
195
|
|
|
166
196
|
`npm run smoke` spawns the server over stdio as a real MCP client, discovers a
|
|
@@ -184,6 +214,14 @@ a result. It uses a freshly generated, never-funded keypair. The one live call
|
|
|
184
214
|
it makes is a deliberately-rejected create against the Pi API, which proves the
|
|
185
215
|
first failure stage end to end.
|
|
186
216
|
|
|
217
|
+
`npm run signing` rebuilds the exact transaction `send_payment` signs, with
|
|
218
|
+
every input pinned, and compares the envelope and hash against bytes recorded
|
|
219
|
+
in the file. It is offline and cannot spend. Its job is dependency bumps: the
|
|
220
|
+
other suites all stub the network, so none of them can tell you whether an SDK
|
|
221
|
+
upgrade changed what you put on the wire. Run it on any `@stellar/stellar-sdk`
|
|
222
|
+
change — a failure means the bytes moved, and the constants should not be
|
|
223
|
+
refreshed until you know why.
|
|
224
|
+
|
|
187
225
|
## Known gaps
|
|
188
226
|
|
|
189
227
|
- **`verify_user` success path — confirmed** against a live token. Returns
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pion-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Pion — Model Context Protocol (MCP) server for Pi Network. Read-only chain queries against Pi Mainnet and Testnet; payments are testnet-only.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mcp",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"dist"
|
|
27
27
|
],
|
|
28
28
|
"engines": {
|
|
29
|
-
"node": ">=
|
|
29
|
+
"node": ">=22.12.0"
|
|
30
30
|
},
|
|
31
31
|
"scripts": {
|
|
32
32
|
"build": "tsc",
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
"crossnet": "node scripts/crossnet-test.mjs",
|
|
39
39
|
"arming": "node scripts/arming-test.mjs",
|
|
40
40
|
"u2a": "node scripts/u2a-test.mjs",
|
|
41
|
+
"signing": "node scripts/signing-test.mjs",
|
|
41
42
|
"incomplete": "node scripts/incomplete.mjs",
|
|
42
43
|
"probe:a2u": "node scripts/probe-a2u.mjs",
|
|
43
44
|
"diagnose:a2u": "node scripts/diagnose-a2u.mjs",
|
|
@@ -53,7 +54,7 @@
|
|
|
53
54
|
},
|
|
54
55
|
"dependencies": {
|
|
55
56
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
56
|
-
"@stellar/stellar-sdk": "^
|
|
57
|
+
"@stellar/stellar-sdk": "^17.0.0",
|
|
57
58
|
"zod": "^4.4.3"
|
|
58
59
|
},
|
|
59
60
|
"devDependencies": {
|