gatepay-local-mcp 1.0.0 → 1.0.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/dist/src/index.js +10 -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/src/x402-standalone/utils.d.ts +2 -0
- package/dist/src/x402-standalone/utils.d.ts.map +1 -1
- package/dist/src/x402-standalone/utils.js +6 -0
- package/dist/src/x402-standalone/utils.js.map +1 -1
- package/package.json +9 -2
- 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/test/fetch.d.ts +0 -2
- package/dist/test/fetch.d.ts.map +0 -1
- package/dist/test/fetch.js +0 -54
- package/dist/test/fetch.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,19 @@ 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));
|
|
79
|
+
client.register("Arbitrum One", new ExactEvmScheme(evmSigner));
|
|
92
80
|
const fetchWithPayment = wrapFetchWithPayment(fetch, client);
|
|
93
81
|
const server = new Server({
|
|
94
82
|
name: "x402 Paid Request Bridge (standalone)",
|
|
@@ -106,7 +94,6 @@ async function main() {
|
|
|
106
94
|
}));
|
|
107
95
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
108
96
|
const { name, arguments: args } = request.params;
|
|
109
|
-
debugLog("tool call", { name, args });
|
|
110
97
|
if (name !== TOOL_NAME) {
|
|
111
98
|
return {
|
|
112
99
|
content: [{ type: "text", text: `未知工具: ${name}. 仅支持 ${TOOL_NAME}。` }],
|
|
@@ -152,10 +139,8 @@ async function main() {
|
|
|
152
139
|
isError: true,
|
|
153
140
|
};
|
|
154
141
|
}
|
|
155
|
-
debugLog("fetch start", { url, method });
|
|
156
142
|
const response = await fetchWithPayment(url, init);
|
|
157
143
|
const responseText = await response.text();
|
|
158
|
-
debugLog("fetch done", { url, status: response.status, textLen: responseText.length });
|
|
159
144
|
let text;
|
|
160
145
|
try {
|
|
161
146
|
const json = JSON.parse(responseText);
|
|
@@ -174,7 +159,6 @@ async function main() {
|
|
|
174
159
|
}
|
|
175
160
|
catch (err) {
|
|
176
161
|
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
162
|
const hint = message.toLowerCase().includes("fetch") || message.toLowerCase().includes("econnrefused")
|
|
179
163
|
? " 请确认 url 可访问;402 支付需 EVM_PRIVATE_KEY 对应钱包有足够余额。"
|
|
180
164
|
: "";
|
|
@@ -188,7 +172,6 @@ async function main() {
|
|
|
188
172
|
await server.connect(stdio);
|
|
189
173
|
}
|
|
190
174
|
main().catch((err) => {
|
|
191
|
-
debugLog("fatal", { error: String(err), stack: err instanceof Error ? err.stack : undefined });
|
|
192
175
|
console.error("Fatal error:", err);
|
|
193
176
|
process.exit(1);
|
|
194
177
|
});
|
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"}
|
|
@@ -12,6 +12,8 @@ export declare const CHAIN_ID_GATELAYER_TESTNET = 10087;
|
|
|
12
12
|
export declare const CHAIN_ID_GATELAYER = 10088;
|
|
13
13
|
export declare const CHAIN_ID_ETH = 1;
|
|
14
14
|
export declare const CHAIN_ID_BASE = 8453;
|
|
15
|
+
export declare const CHAIN_ID_POLYGON = 137;
|
|
16
|
+
export declare const CHAIN_ID_ARBEVM = 42161;
|
|
15
17
|
export declare function getEvmChainIdFromNetwork(network: string): number;
|
|
16
18
|
export declare function normalizePaymentRequirements(accepts: PaymentRequirements[]): PaymentRequirements[];
|
|
17
19
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/x402-standalone/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGtD,eAAO,MAAM,kBAAkB,QAA2B,CAAC;AAE3D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOrD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUrD;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAChC,OAAO,EAAE,MAAM,GACd,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS,CAE5B;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAChC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,CAAC,GAAG,SAAS,CAEf;AAED,wBAAgB,WAAW,IAAI,KAAK,MAAM,EAAE,CAO3C;AAID,eAAO,MAAM,0BAA0B,QAAQ,CAAC;AAChD,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AACxC,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,eAAO,MAAM,aAAa,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/x402-standalone/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGtD,eAAO,MAAM,kBAAkB,QAA2B,CAAC;AAE3D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOrD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUrD;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAChC,OAAO,EAAE,MAAM,GACd,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS,CAE5B;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAChC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,CAAC,GAAG,SAAS,CAEf;AAED,wBAAgB,WAAW,IAAI,KAAK,MAAM,EAAE,CAO3C;AAID,eAAO,MAAM,0BAA0B,QAAQ,CAAC;AAChD,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AACxC,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,eAAO,MAAM,aAAa,OAAO,CAAC;AAClC,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,eAAO,MAAM,eAAe,QAAQ,CAAC;AAErC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAiBhE;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,mBAAmB,EAAE,CAWlG"}
|
|
@@ -38,6 +38,8 @@ export const CHAIN_ID_GATELAYER_TESTNET = 10087;
|
|
|
38
38
|
export const CHAIN_ID_GATELAYER = 10088;
|
|
39
39
|
export const CHAIN_ID_ETH = 1;
|
|
40
40
|
export const CHAIN_ID_BASE = 8453;
|
|
41
|
+
export const CHAIN_ID_POLYGON = 137;
|
|
42
|
+
export const CHAIN_ID_ARBEVM = 42161;
|
|
41
43
|
export function getEvmChainIdFromNetwork(network) {
|
|
42
44
|
const s = network.trim();
|
|
43
45
|
if (s === "gatelayer_testnet" || s === "eip155:10087")
|
|
@@ -56,6 +58,10 @@ export function getEvmChainIdFromNetwork(network) {
|
|
|
56
58
|
return CHAIN_ID_ETH;
|
|
57
59
|
if (s === "base")
|
|
58
60
|
return CHAIN_ID_BASE;
|
|
61
|
+
if (s === "Polygon")
|
|
62
|
+
return CHAIN_ID_POLYGON;
|
|
63
|
+
if (s === "Arbitrum One")
|
|
64
|
+
return CHAIN_ID_ARBEVM;
|
|
59
65
|
throw new Error(`unsupported network format: ${network} (expected eip155:CHAIN_ID or gatelayer_testnet)`);
|
|
60
66
|
}
|
|
61
67
|
export function normalizePaymentRequirements(accepts) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/x402-standalone/utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAE7B,MAAM,CAAC,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;AAE3D,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,IAAI,OAAO,UAAU,KAAK,WAAW,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/E,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrF,OAAO,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,IAAI,OAAO,UAAU,KAAK,WAAW,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/E,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,GAAgC,EAChC,OAAe;IAEf,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,GAAgC,EAChC,MAAc,EACd,OAAe;IAEf,OAAO,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,MAAM,SAAS,GACb,OAAO,UAAU,CAAC,MAAM,KAAK,WAAW;QACtC,CAAC,CAAC,UAAU,CAAC,MAAM;QACnB,CAAC,CAAE,UAAkC,CAAC,MAAM,CAAC;IACjD,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC5D,OAAO,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAExC,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,CAAC;AAChD,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC;AACxC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC;AAC9B,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/x402-standalone/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gatepay-local-mcp",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Gatepay Local (stdio) MCP server",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
@@ -17,7 +17,9 @@
|
|
|
17
17
|
"start": "tsx src/index.ts",
|
|
18
18
|
"dev": "tsx src/index.ts",
|
|
19
19
|
"test": "tsx test/fetch.ts",
|
|
20
|
-
"
|
|
20
|
+
"privateKey": "tsx test/privateKey.ts",
|
|
21
|
+
"mcpclient": "tsx test/mcpclient.ts",
|
|
22
|
+
"pluginWallet": "tsx test/pluginWallet.ts",
|
|
21
23
|
"format": "prettier -c .prettierrc --write \"**/*.{ts,js,cjs,json,md}\"",
|
|
22
24
|
"format:check": "prettier -c .prettierrc --check \"**/*.{ts,js,cjs,json,md}\"",
|
|
23
25
|
"lint": "eslint . --fix",
|
|
@@ -50,5 +52,10 @@
|
|
|
50
52
|
"prettier": "3.5.2",
|
|
51
53
|
"tsx": "^4.7.0",
|
|
52
54
|
"typescript": "^5.3.0"
|
|
55
|
+
},
|
|
56
|
+
"homepage": "https://github.com/gate/gatepay-local-mcp",
|
|
57
|
+
"repository": {
|
|
58
|
+
"type": "git",
|
|
59
|
+
"url": "https://github.com/gate/gatepay-local-mcp"
|
|
53
60
|
}
|
|
54
61
|
}
|
|
@@ -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"}
|
package/dist/test/fetch.d.ts
DELETED
package/dist/test/fetch.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../test/fetch.ts"],"names":[],"mappings":""}
|
package/dist/test/fetch.js
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { config } from "dotenv";
|
|
2
|
-
import { X402ClientStandalone, ExactEvmScheme, createSignerFromPrivateKey, wrapFetchWithPayment, } from "../src/x402-standalone/index.js";
|
|
3
|
-
import { safeBase64Decode } from "../src/x402-standalone/utils.js";
|
|
4
|
-
config();
|
|
5
|
-
const evmPrivateKey = process.env.EVM_PRIVATE_KEY;
|
|
6
|
-
const baseURL = process.env.RESOURCE_SERVER_URL || "http://localhost:4021";
|
|
7
|
-
const endpointPath = process.env.ENDPOINT_PATH || "/weather";
|
|
8
|
-
const url = `${baseURL}${endpointPath}`;
|
|
9
|
-
function getPaymentSettleResponse(getHeader) {
|
|
10
|
-
const raw = getHeader("PAYMENT-RESPONSE") ?? getHeader("X-PAYMENT-RESPONSE") ?? null;
|
|
11
|
-
if (!raw)
|
|
12
|
-
return null;
|
|
13
|
-
try {
|
|
14
|
-
return JSON.parse(safeBase64Decode(raw));
|
|
15
|
-
}
|
|
16
|
-
catch {
|
|
17
|
-
return { raw };
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Example: use project-internal x402-standalone to request x402-protected endpoints.
|
|
22
|
-
*
|
|
23
|
-
* Registers gatelayer_testnet + exact EVM scheme only (no @x402/* deps).
|
|
24
|
-
*
|
|
25
|
-
* Required environment variables:
|
|
26
|
-
* - EVM_PRIVATE_KEY: The private key of the EVM signer
|
|
27
|
-
*/
|
|
28
|
-
async function main() {
|
|
29
|
-
const evmSigner = createSignerFromPrivateKey(evmPrivateKey);
|
|
30
|
-
const client = new X402ClientStandalone();
|
|
31
|
-
client.register("eth", new ExactEvmScheme(evmSigner));
|
|
32
|
-
client.register("base", new ExactEvmScheme(evmSigner));
|
|
33
|
-
const fetchWithPayment = wrapFetchWithPayment(fetch, client);
|
|
34
|
-
console.log(`Making request to: ${url}\n`);
|
|
35
|
-
const response = await fetchWithPayment(url, {
|
|
36
|
-
method: "POST",
|
|
37
|
-
headers: { "Content-Type": "application/json" },
|
|
38
|
-
body: JSON.stringify({}),
|
|
39
|
-
});
|
|
40
|
-
const body = await response.json();
|
|
41
|
-
console.log("Response body:", body);
|
|
42
|
-
if (response.ok) {
|
|
43
|
-
const paymentResponse = getPaymentSettleResponse((name) => response.headers.get(name));
|
|
44
|
-
console.log("\nPayment response:", paymentResponse);
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
console.log(`\nNo payment settled (response status: ${response.status})`);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
main().catch(error => {
|
|
51
|
-
console.error(error?.response?.data?.error ?? error);
|
|
52
|
-
process.exit(1);
|
|
53
|
-
});
|
|
54
|
-
//# sourceMappingURL=fetch.js.map
|
package/dist/test/fetch.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../test/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,MAAM,EAAE,CAAC;AAET,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,eAAgC,CAAC;AACnE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,uBAAuB,CAAC;AAC3E,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,UAAU,CAAC;AAC7D,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,YAAY,EAAE,CAAC;AAExC,SAAS,wBAAwB,CAAC,SAA0C;IAC1E,MAAM,GAAG,GACP,SAAS,CAAC,kBAAkB,CAAC,IAAI,SAAS,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC;IAC3E,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAY,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,GAAG,EAAE,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,0BAA0B,CAAC,aAAa,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC1C,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;IACtD,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;IAEvD,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAE7D,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;IAE3C,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE;QAC3C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;KACzB,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;IAEpC,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;QAChB,MAAM,eAAe,GAAG,wBAAwB,CAAC,CAAC,IAAI,EAAE,EAAE,CACxD,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAC3B,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,0CAA0C,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,IAAI,KAAK,CAAC,CAAC;IACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|