@andesmountain/gatepay-local-mcp 1.0.1 → 1.0.2
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/dist/src/index.js +9 -27
- package/dist/src/index.js.map +1 -1
- package/dist/src/x402-standalone/client.d.ts.map +1 -1
- package/dist/src/x402-standalone/client.js +1 -0
- package/dist/src/x402-standalone/client.js.map +1 -1
- package/dist/test/fetch.js +11 -4
- package/dist/test/fetch.js.map +1 -1
- package/package.json +1 -1
- package/dist/src/x402-standalone/index.d.ts +0 -9
- package/dist/src/x402-standalone/index.d.ts.map +0 -1
- package/dist/src/x402-standalone/index.js +0 -8
- package/dist/src/x402-standalone/index.js.map +0 -1
package/dist/src/index.js
CHANGED
|
@@ -16,13 +16,16 @@
|
|
|
16
16
|
* X402_DEBUG_LOG (optional) path to file — when set, append debug logs here (tail -f to debug)
|
|
17
17
|
*/
|
|
18
18
|
import { config } from "dotenv";
|
|
19
|
-
import {
|
|
19
|
+
import { existsSync } from "node:fs";
|
|
20
20
|
import { fileURLToPath } from "node:url";
|
|
21
21
|
import { dirname, join } from "node:path";
|
|
22
22
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
23
23
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
24
24
|
import { ListToolsRequestSchema, CallToolRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
25
|
-
import { X402ClientStandalone
|
|
25
|
+
import { X402ClientStandalone } from "./x402-standalone/client.js";
|
|
26
|
+
import { ExactEvmScheme } from "./x402-standalone/exactEvmScheme.js";
|
|
27
|
+
import { createSignerFromPrivateKey } from "./x402-standalone/signer.js";
|
|
28
|
+
import { wrapFetchWithPayment } from "./x402-standalone/fetch.js";
|
|
26
29
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
27
30
|
function findPackageRoot(startDir) {
|
|
28
31
|
let dir = startDir;
|
|
@@ -37,24 +40,6 @@ function findPackageRoot(startDir) {
|
|
|
37
40
|
}
|
|
38
41
|
const packageRoot = findPackageRoot(__dirname);
|
|
39
42
|
config({ path: join(packageRoot, ".env") });
|
|
40
|
-
const LOG_PATH = process.env.X402_DEBUG_LOG ?? process.env.MCP_X402_DEBUG_LOG;
|
|
41
|
-
const logStream = LOG_PATH
|
|
42
|
-
? (() => {
|
|
43
|
-
try {
|
|
44
|
-
return createWriteStream(LOG_PATH, { flags: "a" });
|
|
45
|
-
}
|
|
46
|
-
catch (e) {
|
|
47
|
-
console.error("X402 debug log open failed:", e);
|
|
48
|
-
return null;
|
|
49
|
-
}
|
|
50
|
-
})()
|
|
51
|
-
: null;
|
|
52
|
-
function debugLog(msg, obj) {
|
|
53
|
-
if (!logStream)
|
|
54
|
-
return;
|
|
55
|
-
const line = `${new Date().toISOString()} ${msg}${obj != null ? " " + JSON.stringify(obj) : ""}\n`;
|
|
56
|
-
logStream.write(line);
|
|
57
|
-
}
|
|
58
43
|
const TOOL_NAME = "x402_request";
|
|
59
44
|
const INPUT_SCHEMA = {
|
|
60
45
|
type: "object",
|
|
@@ -79,16 +64,18 @@ const TOOL_DESCRIPTION = "Execute a single HTTP request with automatic x402 paym
|
|
|
79
64
|
async function main() {
|
|
80
65
|
const rawEvmKey = process.env.EVM_PRIVATE_KEY?.trim();
|
|
81
66
|
if (!rawEvmKey) {
|
|
82
|
-
debugLog("startup failed: EVM_PRIVATE_KEY missing");
|
|
83
67
|
console.error("❌ EVM_PRIVATE_KEY is required (wallet private key for x402 payment)");
|
|
84
68
|
process.exit(1);
|
|
85
69
|
}
|
|
86
70
|
const evmPrivateKey = (rawEvmKey.startsWith("0x") ? rawEvmKey : `0x${rawEvmKey}`);
|
|
87
71
|
const evmSigner = createSignerFromPrivateKey(evmPrivateKey);
|
|
88
72
|
const client = new X402ClientStandalone();
|
|
89
|
-
|
|
73
|
+
client.register("gatelayer_testnet", new ExactEvmScheme(evmSigner));
|
|
90
74
|
client.register("eth", new ExactEvmScheme(evmSigner));
|
|
91
75
|
client.register("base", new ExactEvmScheme(evmSigner));
|
|
76
|
+
client.register("polygon", new ExactEvmScheme(evmSigner));
|
|
77
|
+
client.register("gatelayer", new ExactEvmScheme(evmSigner));
|
|
78
|
+
client.register("gatechain", new ExactEvmScheme(evmSigner));
|
|
92
79
|
const fetchWithPayment = wrapFetchWithPayment(fetch, client);
|
|
93
80
|
const server = new Server({
|
|
94
81
|
name: "x402 Paid Request Bridge (standalone)",
|
|
@@ -106,7 +93,6 @@ async function main() {
|
|
|
106
93
|
}));
|
|
107
94
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
108
95
|
const { name, arguments: args } = request.params;
|
|
109
|
-
debugLog("tool call", { name, args });
|
|
110
96
|
if (name !== TOOL_NAME) {
|
|
111
97
|
return {
|
|
112
98
|
content: [{ type: "text", text: `未知工具: ${name}. 仅支持 ${TOOL_NAME}。` }],
|
|
@@ -152,10 +138,8 @@ async function main() {
|
|
|
152
138
|
isError: true,
|
|
153
139
|
};
|
|
154
140
|
}
|
|
155
|
-
debugLog("fetch start", { url, method });
|
|
156
141
|
const response = await fetchWithPayment(url, init);
|
|
157
142
|
const responseText = await response.text();
|
|
158
|
-
debugLog("fetch done", { url, status: response.status, textLen: responseText.length });
|
|
159
143
|
let text;
|
|
160
144
|
try {
|
|
161
145
|
const json = JSON.parse(responseText);
|
|
@@ -174,7 +158,6 @@ async function main() {
|
|
|
174
158
|
}
|
|
175
159
|
catch (err) {
|
|
176
160
|
const message = err instanceof Error ? err.message : String(err);
|
|
177
|
-
debugLog("request error", { url, method, error: message, stack: err instanceof Error ? err.stack : undefined });
|
|
178
161
|
const hint = message.toLowerCase().includes("fetch") || message.toLowerCase().includes("econnrefused")
|
|
179
162
|
? " 请确认 url 可访问;402 支付需 EVM_PRIVATE_KEY 对应钱包有足够余额。"
|
|
180
163
|
: "";
|
|
@@ -188,7 +171,6 @@ async function main() {
|
|
|
188
171
|
await server.connect(stdio);
|
|
189
172
|
}
|
|
190
173
|
main().catch((err) => {
|
|
191
|
-
debugLog("fatal", { error: String(err), stack: err instanceof Error ? err.stack : undefined });
|
|
192
174
|
console.error("Fatal error:", err);
|
|
193
175
|
process.exit(1);
|
|
194
176
|
});
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/x402-standalone/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAuB,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAG5G,QAAA,MAAM,YAAY,IAAI,CAAC;AAEvB,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA4D;IAE7F,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAQtD,oBAAoB,CAAC,eAAe,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/x402-standalone/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAuB,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAG5G,QAAA,MAAM,YAAY,IAAI,CAAC;AAEvB,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA4D;IAE7F,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAQtD,oBAAoB,CAAC,eAAe,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IA4BrF,OAAO,CAAC,yBAAyB;CAgBlC;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -12,6 +12,7 @@ export class X402ClientStandalone {
|
|
|
12
12
|
return this;
|
|
13
13
|
}
|
|
14
14
|
async createPaymentPayload(paymentRequired) {
|
|
15
|
+
// 按accepts的顺序依次尝试,直到找到第一个支持的
|
|
15
16
|
const requirements = this.selectPaymentRequirements(paymentRequired.x402Version, paymentRequired.accepts);
|
|
16
17
|
const schemeClient = findByNetworkAndScheme(this.schemesByNetwork, requirements.scheme, requirements.network);
|
|
17
18
|
if (!schemeClient) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/x402-standalone/client.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,MAAM,OAAO,oBAAoB;IAAjC;QACmB,qBAAgB,GAAkD,IAAI,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/x402-standalone/client.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,MAAM,OAAO,oBAAoB;IAAjC;QACmB,qBAAgB,GAAkD,IAAI,GAAG,EAAE,CAAC;IAsD/F,CAAC;IApDC,QAAQ,CAAC,OAAe,EAAE,MAA2B;QACnD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,eAAgC;QACzD,6BAA6B;QAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,yBAAyB,CACjD,eAAe,CAAC,WAAW,EAC3B,eAAe,CAAC,OAAO,CACxB,CAAC;QACF,MAAM,YAAY,GAAG,sBAAsB,CACzC,IAAI,CAAC,gBAAgB,EACrB,YAAY,CAAC,MAAM,EACnB,YAAY,CAAC,OAAO,CACrB,CAAC;QACF,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACb,mCAAmC,YAAY,CAAC,MAAM,gBAAgB,YAAY,CAAC,OAAO,EAAE,CAC7F,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,oBAAoB,CACrD,eAAe,CAAC,WAAW,EAC3B,YAAY,CACb,CAAC;QACF,OAAO;YACL,GAAG,OAAO;YACV,QAAQ,EAAE,eAAe,CAAC,QAAQ;YAClC,QAAQ,EAAE,YAAY;YACtB,UAAU,EAAE,eAAe,CAAC,UAAU;SACvC,CAAC;IACJ,CAAC;IAEO,yBAAyB,CAC/B,WAAmB,EACnB,OAA8B;QAE9B,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACxC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACrC,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACzC,OAAO,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,wEAAwE,WAAW,GAAG,CACvF,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;CACF;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
package/dist/test/fetch.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { config } from "dotenv";
|
|
2
|
-
import { X402ClientStandalone
|
|
2
|
+
import { X402ClientStandalone } from "../src/x402-standalone/client.js";
|
|
3
|
+
import { ExactEvmScheme } from "../src/x402-standalone/exactEvmScheme.js";
|
|
4
|
+
import { createSignerFromPrivateKey } from "../src/x402-standalone/signer.js";
|
|
5
|
+
import { wrapFetchWithPayment } from "../src/x402-standalone/fetch.js";
|
|
3
6
|
import { safeBase64Decode } from "../src/x402-standalone/utils.js";
|
|
4
7
|
config();
|
|
5
8
|
const evmPrivateKey = process.env.EVM_PRIVATE_KEY;
|
|
6
|
-
const baseURL = process.env.RESOURCE_SERVER_URL || "http://localhost:
|
|
7
|
-
const endpointPath = process.env.ENDPOINT_PATH || "/
|
|
9
|
+
const baseURL = process.env.RESOURCE_SERVER_URL || "http://localhost:8080";
|
|
10
|
+
const endpointPath = process.env.ENDPOINT_PATH || "/flight/order";
|
|
8
11
|
const url = `${baseURL}${endpointPath}`;
|
|
9
12
|
function getPaymentSettleResponse(getHeader) {
|
|
10
13
|
const raw = getHeader("PAYMENT-RESPONSE") ?? getHeader("X-PAYMENT-RESPONSE") ?? null;
|
|
@@ -28,14 +31,18 @@ function getPaymentSettleResponse(getHeader) {
|
|
|
28
31
|
async function main() {
|
|
29
32
|
const evmSigner = createSignerFromPrivateKey(evmPrivateKey);
|
|
30
33
|
const client = new X402ClientStandalone();
|
|
34
|
+
client.register("gatelayer_testnet", new ExactEvmScheme(evmSigner));
|
|
31
35
|
client.register("eth", new ExactEvmScheme(evmSigner));
|
|
32
36
|
client.register("base", new ExactEvmScheme(evmSigner));
|
|
37
|
+
client.register("polygon", new ExactEvmScheme(evmSigner));
|
|
38
|
+
client.register("gatelayer", new ExactEvmScheme(evmSigner));
|
|
39
|
+
client.register("gatechain", new ExactEvmScheme(evmSigner));
|
|
33
40
|
const fetchWithPayment = wrapFetchWithPayment(fetch, client);
|
|
34
41
|
console.log(`Making request to: ${url}\n`);
|
|
35
42
|
const response = await fetchWithPayment(url, {
|
|
36
43
|
method: "POST",
|
|
37
44
|
headers: { "Content-Type": "application/json" },
|
|
38
|
-
body: JSON.stringify({}),
|
|
45
|
+
body: JSON.stringify({ flightId: "FL002", uid: "100" }),
|
|
39
46
|
});
|
|
40
47
|
const body = await response.json();
|
|
41
48
|
console.log("Response body:", body);
|
package/dist/test/fetch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../test/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../test/fetch.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Standalone x402 (no @x402/* deps). For use by stdio-bridge-x402-request-standalone.
|
|
3
|
-
*/
|
|
4
|
-
export { X402ClientStandalone } from "./client.js";
|
|
5
|
-
export { ExactEvmScheme } from "./exactEvmScheme.js";
|
|
6
|
-
export { createSignerFromPrivateKey } from "./signer.js";
|
|
7
|
-
export { wrapFetchWithPayment } from "./fetch.js";
|
|
8
|
-
export type { PaymentRequired, PaymentRequirements } from "./types.js";
|
|
9
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/x402-standalone/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Standalone x402 (no @x402/* deps). For use by stdio-bridge-x402-request-standalone.
|
|
3
|
-
*/
|
|
4
|
-
export { X402ClientStandalone } from "./client.js";
|
|
5
|
-
export { ExactEvmScheme } from "./exactEvmScheme.js";
|
|
6
|
-
export { createSignerFromPrivateKey } from "./signer.js";
|
|
7
|
-
export { wrapFetchWithPayment } from "./fetch.js";
|
|
8
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/x402-standalone/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC"}
|