web3-tools-mcp 2.0.0 → 2.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/CHANGELOG.md +34 -0
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/log.d.ts +16 -0
- package/dist/log.d.ts.map +1 -0
- package/dist/log.js +20 -0
- package/dist/log.js.map +1 -0
- package/dist/tools/transactions.d.ts.map +1 -1
- package/dist/tools/transactions.js +6 -2
- package/dist/tools/transactions.js.map +1 -1
- package/dist/walletconnect.d.ts +12 -1
- package/dist/walletconnect.d.ts.map +1 -1
- package/dist/walletconnect.js +36 -16
- package/dist/walletconnect.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +5 -5
- package/src/log.ts +25 -0
- package/src/tools/transactions.ts +6 -2
- package/src/walletconnect.ts +39 -16
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,40 @@
|
|
|
2
2
|
|
|
3
3
|
Notable changes per release. Dates are release dates; unreleased work sits at the top.
|
|
4
4
|
|
|
5
|
+
## [2.0.2] — 2026-09-22
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- **Phone signing hung, for real this time.** 2.0.1 had the right symptom but the wrong
|
|
10
|
+
cause, and did not fix it. Naming the agent in `pair_phone_wallet` started a second
|
|
11
|
+
WalletConnect client, because the handler had already started one to check for an
|
|
12
|
+
existing session. The first client's engine kept running, and its heartbeat sweeps
|
|
13
|
+
"orphaned" subscriptions against its own, empty session list — so two seconds after the
|
|
14
|
+
new session settled, it unsubscribed the session's topic. Every reply the wallet sent
|
|
15
|
+
after that went nowhere. Closing the old transport, which is what 2.0.1 did, never
|
|
16
|
+
stopped that heartbeat.
|
|
17
|
+
|
|
18
|
+
Now there is only ever one client. The agent's name is set before it starts, and a
|
|
19
|
+
running client is never replaced. If one already exists, the wallet dialog keeps the
|
|
20
|
+
earlier name, which costs far less than signing that silently hangs.
|
|
21
|
+
|
|
22
|
+
Found by trapping every `unsubscribe` with a stack trace. If you paired under 2.0.0 or
|
|
23
|
+
2.0.1, run `disconnect_phone_wallet` and pair again.
|
|
24
|
+
|
|
25
|
+
## [2.0.1] — 2026-09-22
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
|
|
29
|
+
- **A phone signature could never come back.** Naming the agent in `pair_phone_wallet`
|
|
30
|
+
replaces the WalletConnect client, because its metadata is fixed at init — but the old
|
|
31
|
+
one was dropped without being closed. Two clients then shared one storage directory and
|
|
32
|
+
overwrote each other's subscription record, so the surviving session was left subscribed
|
|
33
|
+
to nothing: a request reached the wallet, you approved it, and the reply was published
|
|
34
|
+
where nobody was listening. The tool simply hung. The replaced client is closed now.
|
|
35
|
+
|
|
36
|
+
If you hit this, re-pair after upgrading — the stored session's subscription is what was
|
|
37
|
+
lost, and a fresh client rebuilds it.
|
|
38
|
+
|
|
5
39
|
## [2.0.0] — 2026-09-21
|
|
6
40
|
|
|
7
41
|
The theme is signing: where a transaction can be signed, and what you are told before you
|
package/dist/index.js
CHANGED
|
@@ -5,6 +5,7 @@ import { WalletRelay } from 'web3-wallet-relay';
|
|
|
5
5
|
import packageJson from '../package.json' with { type: 'json' };
|
|
6
6
|
import { initializeClientManager, SUPPORTED_CHAINS } from './client.js';
|
|
7
7
|
import { startHttpServer } from './http-server.js';
|
|
8
|
+
import { attachLogServer } from './log.js';
|
|
8
9
|
import { registerAllTools } from './tools/index.js';
|
|
9
10
|
import { parseCommandLineArgs } from './utils.js';
|
|
10
11
|
import { getWalletClient } from './wallet-client.js';
|
|
@@ -86,10 +87,7 @@ if (config.customRpcUrls) {
|
|
|
86
87
|
// Initialize client manager
|
|
87
88
|
initializeClientManager(config);
|
|
88
89
|
function createMcpServer() {
|
|
89
|
-
const server = new McpServer({
|
|
90
|
-
name: 'web3-tools-mcp',
|
|
91
|
-
version: packageJson.version
|
|
92
|
-
});
|
|
90
|
+
const server = new McpServer({ name: 'web3-tools-mcp', version: packageJson.version }, { capabilities: { logging: {} } });
|
|
93
91
|
registerAllTools(server);
|
|
94
92
|
return server;
|
|
95
93
|
}
|
|
@@ -147,7 +145,9 @@ async function main() {
|
|
|
147
145
|
return;
|
|
148
146
|
}
|
|
149
147
|
const transport = new StdioServerTransport();
|
|
150
|
-
|
|
148
|
+
const server = createMcpServer();
|
|
149
|
+
attachLogServer(server);
|
|
150
|
+
await server.connect(transport);
|
|
151
151
|
console.error('Web3 Tools MCP Server running on stdio');
|
|
152
152
|
// The relay may still be picking a free port, and its URL carries the pairing token.
|
|
153
153
|
await walletReady;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,WAAW,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAC/D,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD,sBAAsB;AACtB,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAA;AAErC,yBAAyB;AACzB,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;IACpB,OAAO,CAAC,GAAG,CAAC;yBACW,WAAW,CAAC,OAAO;EAC1C,WAAW,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgCrB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;YAcnB,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAClE,WAAW,CAAC,IAAI,CAAC,GAAG;;;CAG/B,CAAC,CAAA;IACA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED,yBAAyB;AACzB,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;IAC3B,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAA;AACrD,CAAC;AACD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;IACzB,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAA;AACnD,CAAC;AACD,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;IACxB,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;AAClD,CAAC;AACD,IAAI,MAAM,CAAC,sBAAsB,EAAE,CAAC;IAClC,OAAO,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAA;AACtF,CAAC;AACD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;IACzB,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAA;AAC5E,CAAC;AAED,4BAA4B;AAC5B,uBAAuB,CAAC,MAAM,CAAC,CAAA;AAE/B,SAAS,eAAe;IACtB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/log.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
type Level = 'debug' | 'info' | 'warning' | 'error';
|
|
3
|
+
/**
|
|
4
|
+
* Forward logs to the MCP client as well as stderr. Only stdio attaches: it has one server
|
|
5
|
+
* for the life of the process, while HTTP builds one per request and answers in plain JSON,
|
|
6
|
+
* with no stream to push a notification down.
|
|
7
|
+
*/
|
|
8
|
+
export declare function attachLogServer(mcp: McpServer): void;
|
|
9
|
+
/**
|
|
10
|
+
* Always stderr, so a host's log capture sees it; stdout is the JSON-RPC stream in stdio
|
|
11
|
+
* mode and must carry nothing else. Also sent to the client as `notifications/message`,
|
|
12
|
+
* because some clients keep a server's messages but not its stderr.
|
|
13
|
+
*/
|
|
14
|
+
export declare function log(level: Level, logger: string, message: string): void;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAExE,KAAK,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAA;AAInD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAEpD;AAED;;;;GAIG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAIvE"}
|
package/dist/log.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
let server;
|
|
2
|
+
/**
|
|
3
|
+
* Forward logs to the MCP client as well as stderr. Only stdio attaches: it has one server
|
|
4
|
+
* for the life of the process, while HTTP builds one per request and answers in plain JSON,
|
|
5
|
+
* with no stream to push a notification down.
|
|
6
|
+
*/
|
|
7
|
+
export function attachLogServer(mcp) {
|
|
8
|
+
server = mcp;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Always stderr, so a host's log capture sees it; stdout is the JSON-RPC stream in stdio
|
|
12
|
+
* mode and must carry nothing else. Also sent to the client as `notifications/message`,
|
|
13
|
+
* because some clients keep a server's messages but not its stderr.
|
|
14
|
+
*/
|
|
15
|
+
export function log(level, logger, message) {
|
|
16
|
+
console.error(`[${logger}] ${message}`);
|
|
17
|
+
// Before the client has initialised there is nothing to send to; losing those is fine.
|
|
18
|
+
server?.sendLoggingMessage({ level, logger, data: message }).catch(() => { });
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=log.js.map
|
package/dist/log.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAIA,IAAI,MAA6B,CAAA;AAEjC;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,GAAc;IAC5C,MAAM,GAAG,GAAG,CAAA;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,GAAG,CAAC,KAAY,EAAE,MAAc,EAAE,OAAe;IAC/D,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC,CAAA;IACvC,uFAAuF;IACvF,MAAM,EAAE,kBAAkB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;AAC9E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../../src/tools/transactions.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../../src/tools/transactions.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0HvB,wBA0UC"}
|
|
@@ -3,6 +3,7 @@ import qrcode from 'qrcode-terminal';
|
|
|
3
3
|
import { encodeFunctionData, isAddress, parseAbiItem, parseUnits, toHex } from 'viem';
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { getClientManager, SUPPORTED_CHAINS } from '../client.js';
|
|
6
|
+
import { log } from '../log.js';
|
|
6
7
|
import { buildTxPreview } from '../preview.js';
|
|
7
8
|
import { createTool, formatResponse } from '../utils.js';
|
|
8
9
|
import { getWalletClient } from '../wallet-client.js';
|
|
@@ -50,6 +51,7 @@ async function signOnPhone(chain, tx) {
|
|
|
50
51
|
return { txHash, preview, signedWith: 'phone' };
|
|
51
52
|
}
|
|
52
53
|
async function requestSignature(chain, tx, signWith) {
|
|
54
|
+
log('info', 'Transaction', `${chain} → ${tx.to}, signing with ${signWith}`);
|
|
53
55
|
if (signWith === 'phone')
|
|
54
56
|
return signOnPhone(chain, tx);
|
|
55
57
|
const wallet = getWalletClient();
|
|
@@ -94,7 +96,7 @@ function describeError(error) {
|
|
|
94
96
|
return String(error);
|
|
95
97
|
}
|
|
96
98
|
function failure(error, message) {
|
|
97
|
-
|
|
99
|
+
log('warning', 'Transaction', `${message} — ${describeError(error)}`);
|
|
98
100
|
return formatResponse({
|
|
99
101
|
success: false,
|
|
100
102
|
error: describeError(error),
|
|
@@ -261,6 +263,8 @@ export default {
|
|
|
261
263
|
});
|
|
262
264
|
}
|
|
263
265
|
try {
|
|
266
|
+
// Before anything starts the client: its name is fixed the moment it does.
|
|
267
|
+
phone.nameAgent(args.agent);
|
|
264
268
|
const existing = await phone.session();
|
|
265
269
|
if (existing) {
|
|
266
270
|
return formatResponse({
|
|
@@ -271,7 +275,7 @@ export default {
|
|
|
271
275
|
});
|
|
272
276
|
}
|
|
273
277
|
const chains = (args.chains ?? SUPPORTED_CHAINS.filter((c) => c !== 'localhost'));
|
|
274
|
-
const uri = await phone.pair(chains
|
|
278
|
+
const uri = await phone.pair(chains);
|
|
275
279
|
const projectId = getClientManager().getConfig().walletConnectProjectId;
|
|
276
280
|
return formatResponse({
|
|
277
281
|
qr: await qrFor(uri),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactions.js","sourceRoot":"","sources":["../../src/tools/transactions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transactions.js","sourceRoot":"","sources":["../../src/tools/transactions.ts"],"names":[],"mappings":"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"}
|
package/dist/walletconnect.d.ts
CHANGED
|
@@ -22,7 +22,18 @@ export declare class PhoneSigner {
|
|
|
22
22
|
* background — a tool result only reaches the user once it returns, so blocking here
|
|
23
23
|
* would hide the QR they are supposed to scan.
|
|
24
24
|
*/
|
|
25
|
-
|
|
25
|
+
/**
|
|
26
|
+
* Name who is asking, for the wallet's approval dialog. Takes effect only before the
|
|
27
|
+
* client starts, because WalletConnect fixes metadata at init — call it first.
|
|
28
|
+
*
|
|
29
|
+
* There is deliberately no way to relabel a running client. Replacing it leaves the old
|
|
30
|
+
* one's engine alive, and its heartbeat sweeps "orphaned" subscriptions against its own,
|
|
31
|
+
* empty session list — unsubscribing the new session's topic two seconds after it
|
|
32
|
+
* settles, so every reply the wallet sends goes to a topic nobody is listening on. A
|
|
33
|
+
* stale name in the dialog is a far smaller cost than signing that silently hangs.
|
|
34
|
+
*/
|
|
35
|
+
nameAgent(agent?: string): void;
|
|
36
|
+
pair(chains: ChainName[]): Promise<string>;
|
|
26
37
|
/** Send a request to the paired wallet. Throws if the chain is outside the session. */
|
|
27
38
|
request(chain: ChainName, method: string, params: unknown[]): Promise<unknown>;
|
|
28
39
|
/** Every live session, not just the one that would be used for signing. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletconnect.d.ts","sourceRoot":"","sources":["../src/walletconnect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"walletconnect.d.ts","sourceRoot":"","sources":["../src/walletconnect.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAiB3C,UAAU,OAAO;IACf,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAsBD,qBAAa,WAAW;IAOV,OAAO,CAAC,SAAS;IAN7B,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,OAAO,CAAgD;IAC/D,mFAAmF;IACnF,OAAO,CAAC,KAAK,CAAoB;gBAEb,SAAS,EAAE,MAAM;YAEvB,KAAK;IA8BnB,2EAA2E;IACrE,OAAO,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAiBvC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAIlC;;;;OAIG;IACH;;;;;;;;;OASG;IACH,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAIzB,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBhD,uFAAuF;IACjF,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAgCpF,2EAA2E;IACrE,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAUpC;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAqBhE,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAG9B;AAiCD;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAcnH;AAID,kEAAkE;AAClE,wBAAgB,cAAc,IAAI,WAAW,GAAG,IAAI,CAKnD"}
|
package/dist/walletconnect.js
CHANGED
|
@@ -3,6 +3,7 @@ import { homedir } from 'node:os';
|
|
|
3
3
|
import { join } from 'node:path';
|
|
4
4
|
import { getClientManager } from './client.js';
|
|
5
5
|
import { getKeyValueStorage } from './kv-storage.js';
|
|
6
|
+
import { log } from './log.js';
|
|
6
7
|
async function importSignClient() {
|
|
7
8
|
// Imported lazily: several MB of SDK that is pointless to load without a project ID.
|
|
8
9
|
const { SignClient } = await import('@walletconnect/sign-client');
|
|
@@ -91,15 +92,23 @@ export class PhoneSigner {
|
|
|
91
92
|
* background — a tool result only reaches the user once it returns, so blocking here
|
|
92
93
|
* would hide the QR they are supposed to scan.
|
|
93
94
|
*/
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
95
|
+
/**
|
|
96
|
+
* Name who is asking, for the wallet's approval dialog. Takes effect only before the
|
|
97
|
+
* client starts, because WalletConnect fixes metadata at init — call it first.
|
|
98
|
+
*
|
|
99
|
+
* There is deliberately no way to relabel a running client. Replacing it leaves the old
|
|
100
|
+
* one's engine alive, and its heartbeat sweeps "orphaned" subscriptions against its own,
|
|
101
|
+
* empty session list — unsubscribing the new session's topic two seconds after it
|
|
102
|
+
* settles, so every reply the wallet sends goes to a topic nobody is listening on. A
|
|
103
|
+
* stale name in the dialog is a far smaller cost than signing that silently hangs.
|
|
104
|
+
*/
|
|
105
|
+
nameAgent(agent) {
|
|
106
|
+
if (agent && !this.client)
|
|
101
107
|
this.agent = agent;
|
|
108
|
+
}
|
|
109
|
+
async pair(chains) {
|
|
102
110
|
await this.start();
|
|
111
|
+
log('info', 'WalletConnect', `Pairing as "${this.agent ?? 'default name'}" for ${chains.length} chain(s)`);
|
|
103
112
|
if (!this.client)
|
|
104
113
|
throw new Error('WalletConnect failed to start');
|
|
105
114
|
const clientManager = getClientManager();
|
|
@@ -113,8 +122,8 @@ export class PhoneSigner {
|
|
|
113
122
|
throw new Error('WalletConnect did not return a pairing URI');
|
|
114
123
|
this.pairing = { uri, expiresAt: Date.now() + APPROVAL_TIMEOUT };
|
|
115
124
|
approval()
|
|
116
|
-
.then((session) =>
|
|
117
|
-
.catch((error) =>
|
|
125
|
+
.then((session) => log('info', 'WalletConnect', `Paired with ${session.peer?.metadata?.name ?? 'a wallet'}`))
|
|
126
|
+
.catch((error) => log('warning', 'WalletConnect', `Pairing was not completed: ${error.message}`));
|
|
118
127
|
return uri;
|
|
119
128
|
}
|
|
120
129
|
/** Send a request to the paired wallet. Throws if the chain is outside the session. */
|
|
@@ -126,11 +135,22 @@ export class PhoneSigner {
|
|
|
126
135
|
if (!session.chains.includes(chainId)) {
|
|
127
136
|
throw new Error(`The paired wallet did not approve ${chain} (chain ${chainId}). It approved: ${session.chains.join(', ')}. Re-pair to add it.`);
|
|
128
137
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
138
|
+
const started = Date.now();
|
|
139
|
+
log('info', 'WalletConnect', `→ ${method} on ${chain}, session ${session.topic.slice(0, 8)}, waiting for ${session.peer ?? 'wallet'}`);
|
|
140
|
+
try {
|
|
141
|
+
const result = await this.client.request({
|
|
142
|
+
topic: session.topic,
|
|
143
|
+
chainId: `eip155:${chainId}`,
|
|
144
|
+
request: { method, params }
|
|
145
|
+
});
|
|
146
|
+
log('info', 'WalletConnect', `← ${method} answered in ${Date.now() - started}ms`);
|
|
147
|
+
return result;
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
const reason = error?.message ?? String(error);
|
|
151
|
+
log('warning', 'WalletConnect', `← ${method} failed after ${Date.now() - started}ms: ${reason}`);
|
|
152
|
+
throw error;
|
|
153
|
+
}
|
|
134
154
|
}
|
|
135
155
|
/** Every live session, not just the one that would be used for signing. */
|
|
136
156
|
async sessions() {
|
|
@@ -155,13 +175,13 @@ export class PhoneSigner {
|
|
|
155
175
|
for (const session of sessions) {
|
|
156
176
|
await this.client
|
|
157
177
|
.disconnect({ topic: session.topic, reason: { code: 6000, message: 'User disconnected' } })
|
|
158
|
-
.catch((error) =>
|
|
178
|
+
.catch((error) => log('warning', 'WalletConnect', `Could not disconnect a session: ${error.message}`));
|
|
159
179
|
}
|
|
160
180
|
const pairings = this.client.core.pairing.getPairings();
|
|
161
181
|
for (const pairing of pairings) {
|
|
162
182
|
await this.client.core.pairing
|
|
163
183
|
.disconnect({ topic: pairing.topic })
|
|
164
|
-
.catch((error) =>
|
|
184
|
+
.catch((error) => log('warning', 'WalletConnect', `Could not drop a pairing: ${error.message}`));
|
|
165
185
|
}
|
|
166
186
|
return { sessions: sessions.length, pairings: pairings.length };
|
|
167
187
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletconnect.js","sourceRoot":"","sources":["../src/walletconnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"walletconnect.js","sourceRoot":"","sources":["../src/walletconnect.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "web3-tools-mcp",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"description": "Model Context Protocol server for blockchain data and transaction signing — sign in a browser wallet or on your phone, with simulation and ERC-7730 clear signing before you approve",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
package/src/index.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { WalletRelay } from 'web3-wallet-relay'
|
|
|
6
6
|
import packageJson from '../package.json' with { type: 'json' }
|
|
7
7
|
import { initializeClientManager, SUPPORTED_CHAINS } from './client.js'
|
|
8
8
|
import { startHttpServer } from './http-server.js'
|
|
9
|
+
import { attachLogServer } from './log.js'
|
|
9
10
|
import { registerAllTools } from './tools/index.js'
|
|
10
11
|
import { parseCommandLineArgs } from './utils.js'
|
|
11
12
|
import { getWalletClient } from './wallet-client.js'
|
|
@@ -92,10 +93,7 @@ if (config.customRpcUrls) {
|
|
|
92
93
|
initializeClientManager(config)
|
|
93
94
|
|
|
94
95
|
function createMcpServer() {
|
|
95
|
-
const server = new McpServer({
|
|
96
|
-
name: 'web3-tools-mcp',
|
|
97
|
-
version: packageJson.version
|
|
98
|
-
})
|
|
96
|
+
const server = new McpServer({ name: 'web3-tools-mcp', version: packageJson.version }, { capabilities: { logging: {} } })
|
|
99
97
|
registerAllTools(server)
|
|
100
98
|
return server
|
|
101
99
|
}
|
|
@@ -161,7 +159,9 @@ async function main() {
|
|
|
161
159
|
}
|
|
162
160
|
|
|
163
161
|
const transport = new StdioServerTransport()
|
|
164
|
-
|
|
162
|
+
const server = createMcpServer()
|
|
163
|
+
attachLogServer(server)
|
|
164
|
+
await server.connect(transport)
|
|
165
165
|
console.error('Web3 Tools MCP Server running on stdio')
|
|
166
166
|
// The relay may still be picking a free port, and its URL carries the pairing token.
|
|
167
167
|
await walletReady
|
package/src/log.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'
|
|
2
|
+
|
|
3
|
+
type Level = 'debug' | 'info' | 'warning' | 'error'
|
|
4
|
+
|
|
5
|
+
let server: McpServer | undefined
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Forward logs to the MCP client as well as stderr. Only stdio attaches: it has one server
|
|
9
|
+
* for the life of the process, while HTTP builds one per request and answers in plain JSON,
|
|
10
|
+
* with no stream to push a notification down.
|
|
11
|
+
*/
|
|
12
|
+
export function attachLogServer(mcp: McpServer): void {
|
|
13
|
+
server = mcp
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Always stderr, so a host's log capture sees it; stdout is the JSON-RPC stream in stdio
|
|
18
|
+
* mode and must carry nothing else. Also sent to the client as `notifications/message`,
|
|
19
|
+
* because some clients keep a server's messages but not its stderr.
|
|
20
|
+
*/
|
|
21
|
+
export function log(level: Level, logger: string, message: string): void {
|
|
22
|
+
console.error(`[${logger}] ${message}`)
|
|
23
|
+
// Before the client has initialised there is nothing to send to; losing those is fine.
|
|
24
|
+
server?.sendLoggingMessage({ level, logger, data: message }).catch(() => {})
|
|
25
|
+
}
|
|
@@ -3,6 +3,7 @@ import qrcode from 'qrcode-terminal'
|
|
|
3
3
|
import { type AbiFunction, type Address, encodeFunctionData, isAddress, parseAbiItem, parseUnits, toHex } from 'viem'
|
|
4
4
|
import { z } from 'zod'
|
|
5
5
|
import { getClientManager, SUPPORTED_CHAINS } from '../client.js'
|
|
6
|
+
import { log } from '../log.js'
|
|
6
7
|
import { buildTxPreview, type RawTx, type TxPreview } from '../preview.js'
|
|
7
8
|
import type { ChainName } from '../types.js'
|
|
8
9
|
import { createTool, formatResponse } from '../utils.js'
|
|
@@ -66,6 +67,7 @@ async function signOnPhone(chain: ChainName, tx: RawTx & { data?: string }) {
|
|
|
66
67
|
}
|
|
67
68
|
|
|
68
69
|
async function requestSignature(chain: ChainName, tx: RawTx & { data?: string }, signWith: SignWith) {
|
|
70
|
+
log('info', 'Transaction', `${chain} → ${tx.to}, signing with ${signWith}`)
|
|
69
71
|
if (signWith === 'phone') return signOnPhone(chain, tx)
|
|
70
72
|
|
|
71
73
|
const wallet = getWalletClient()
|
|
@@ -113,7 +115,7 @@ function describeError(error: unknown): string {
|
|
|
113
115
|
}
|
|
114
116
|
|
|
115
117
|
function failure(error: unknown, message: string) {
|
|
116
|
-
|
|
118
|
+
log('warning', 'Transaction', `${message} — ${describeError(error)}`)
|
|
117
119
|
return formatResponse({
|
|
118
120
|
success: false,
|
|
119
121
|
error: describeError(error),
|
|
@@ -330,6 +332,8 @@ export default {
|
|
|
330
332
|
}
|
|
331
333
|
|
|
332
334
|
try {
|
|
335
|
+
// Before anything starts the client: its name is fixed the moment it does.
|
|
336
|
+
phone.nameAgent(args.agent)
|
|
333
337
|
const existing = await phone.session()
|
|
334
338
|
if (existing) {
|
|
335
339
|
return formatResponse({
|
|
@@ -341,7 +345,7 @@ export default {
|
|
|
341
345
|
}
|
|
342
346
|
|
|
343
347
|
const chains = (args.chains ?? SUPPORTED_CHAINS.filter((c) => c !== 'localhost')) as ChainName[]
|
|
344
|
-
const uri = await phone.pair(chains
|
|
348
|
+
const uri = await phone.pair(chains)
|
|
345
349
|
const projectId = getClientManager().getConfig().walletConnectProjectId as string
|
|
346
350
|
|
|
347
351
|
return formatResponse({
|
package/src/walletconnect.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { homedir } from 'node:os'
|
|
|
3
3
|
import { join } from 'node:path'
|
|
4
4
|
import { getClientManager } from './client.js'
|
|
5
5
|
import { getKeyValueStorage } from './kv-storage.js'
|
|
6
|
+
import { log } from './log.js'
|
|
6
7
|
import type { ChainName } from './types.js'
|
|
7
8
|
|
|
8
9
|
/**
|
|
@@ -113,15 +114,23 @@ export class PhoneSigner {
|
|
|
113
114
|
* background — a tool result only reaches the user once it returns, so blocking here
|
|
114
115
|
* would hide the QR they are supposed to scan.
|
|
115
116
|
*/
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
117
|
+
/**
|
|
118
|
+
* Name who is asking, for the wallet's approval dialog. Takes effect only before the
|
|
119
|
+
* client starts, because WalletConnect fixes metadata at init — call it first.
|
|
120
|
+
*
|
|
121
|
+
* There is deliberately no way to relabel a running client. Replacing it leaves the old
|
|
122
|
+
* one's engine alive, and its heartbeat sweeps "orphaned" subscriptions against its own,
|
|
123
|
+
* empty session list — unsubscribing the new session's topic two seconds after it
|
|
124
|
+
* settles, so every reply the wallet sends goes to a topic nobody is listening on. A
|
|
125
|
+
* stale name in the dialog is a far smaller cost than signing that silently hangs.
|
|
126
|
+
*/
|
|
127
|
+
nameAgent(agent?: string): void {
|
|
128
|
+
if (agent && !this.client) this.agent = agent
|
|
129
|
+
}
|
|
123
130
|
|
|
131
|
+
async pair(chains: ChainName[]): Promise<string> {
|
|
124
132
|
await this.start()
|
|
133
|
+
log('info', 'WalletConnect', `Pairing as "${this.agent ?? 'default name'}" for ${chains.length} chain(s)`)
|
|
125
134
|
if (!this.client) throw new Error('WalletConnect failed to start')
|
|
126
135
|
|
|
127
136
|
const clientManager = getClientManager()
|
|
@@ -137,8 +146,8 @@ export class PhoneSigner {
|
|
|
137
146
|
this.pairing = { uri, expiresAt: Date.now() + APPROVAL_TIMEOUT }
|
|
138
147
|
|
|
139
148
|
approval()
|
|
140
|
-
.then((session) =>
|
|
141
|
-
.catch((error) =>
|
|
149
|
+
.then((session) => log('info', 'WalletConnect', `Paired with ${session.peer?.metadata?.name ?? 'a wallet'}`))
|
|
150
|
+
.catch((error) => log('warning', 'WalletConnect', `Pairing was not completed: ${error.message}`))
|
|
142
151
|
|
|
143
152
|
return uri
|
|
144
153
|
}
|
|
@@ -155,11 +164,25 @@ export class PhoneSigner {
|
|
|
155
164
|
)
|
|
156
165
|
}
|
|
157
166
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
167
|
+
const started = Date.now()
|
|
168
|
+
log(
|
|
169
|
+
'info',
|
|
170
|
+
'WalletConnect',
|
|
171
|
+
`→ ${method} on ${chain}, session ${session.topic.slice(0, 8)}, waiting for ${session.peer ?? 'wallet'}`
|
|
172
|
+
)
|
|
173
|
+
try {
|
|
174
|
+
const result = await this.client.request({
|
|
175
|
+
topic: session.topic,
|
|
176
|
+
chainId: `eip155:${chainId}`,
|
|
177
|
+
request: { method, params }
|
|
178
|
+
})
|
|
179
|
+
log('info', 'WalletConnect', `← ${method} answered in ${Date.now() - started}ms`)
|
|
180
|
+
return result
|
|
181
|
+
} catch (error) {
|
|
182
|
+
const reason = (error as { message?: string })?.message ?? String(error)
|
|
183
|
+
log('warning', 'WalletConnect', `← ${method} failed after ${Date.now() - started}ms: ${reason}`)
|
|
184
|
+
throw error
|
|
185
|
+
}
|
|
163
186
|
}
|
|
164
187
|
|
|
165
188
|
/** Every live session, not just the one that would be used for signing. */
|
|
@@ -186,14 +209,14 @@ export class PhoneSigner {
|
|
|
186
209
|
for (const session of sessions) {
|
|
187
210
|
await this.client
|
|
188
211
|
.disconnect({ topic: session.topic, reason: { code: 6000, message: 'User disconnected' } })
|
|
189
|
-
.catch((error) =>
|
|
212
|
+
.catch((error) => log('warning', 'WalletConnect', `Could not disconnect a session: ${error.message}`))
|
|
190
213
|
}
|
|
191
214
|
|
|
192
215
|
const pairings = this.client.core.pairing.getPairings()
|
|
193
216
|
for (const pairing of pairings) {
|
|
194
217
|
await this.client.core.pairing
|
|
195
218
|
.disconnect({ topic: pairing.topic })
|
|
196
|
-
.catch((error) =>
|
|
219
|
+
.catch((error) => log('warning', 'WalletConnect', `Could not drop a pairing: ${error.message}`))
|
|
197
220
|
}
|
|
198
221
|
|
|
199
222
|
return { sessions: sessions.length, pairings: pairings.length }
|