Non-custodial MCP server for approving EVM and TRON transactions and signatures through browser wallets.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by MCP Wallet Signer.
connect_walletConnect wallet, return address
send_transactionSend ETH/tokens, call contracts
sign_messageSign arbitrary message (personal_sign)
sign_typed_dataSign EIP-712 typed data
get_balanceRead ETH balance (via RPC)
get_token_balanceRead ERC-20 balance (`balanceOf`/`decimals`/`symbol`)
[!WARNING] Superseded by browser-web3-signer β the same browser-wallet signing flow, reimplemented in Rust with a CLI plus Rust/TypeScript/Go libraries. mcp-wallet-signer still works, but new development happens there.
Your private keys never leave your browser. Every transaction requires explicit user approval in your wallet.
Most blockchain MCPs require you to paste a private key into a config file β giving the AI agent full, unsupervised access to your funds. MCP Wallet Signer takes a different approach: it routes every transaction to your actual browser wallet β EVM wallets (MetaMask, Rabby, β¦) via EIP-6963, and TRON via TronLink β so you review and approve each action just like any other dapp interaction. No keys in config files, no risk of silent transactions.
Works with any MCP-compatible client via stdio transport.
(The name wallet-signer is just the MCP server identifier β pick anything you like. Legacy evm-wallet still works for users who installed before TRON support landed.)
Add to your claude_desktop_config.json:
| Tool | Description | Browser Required |
|---|---|---|
connect_wallet | Connect wallet, return address | Yes |
send_transaction | Send ETH/tokens, call contracts | Yes |
sign_message | Sign arbitrary message (personal_sign) | Yes |
sign_typed_data | Sign EIP-712 typed data | Yes |
get_balance | Read ETH balance (via RPC) | No |
get_token_balance | Read ERC-20 balance (balanceOf/decimals/symbol) | No |
| Tool | Description | Browser Required |
|---|---|---|
tron_connect_wallet | Connect TronLink, return Base58 (Tβ¦) address | Yes |
tron_send_transaction | Native TRX transfer | Yes |
tron_trigger_contract | TRC-20 / smart-contract call via triggerSmartContract | Yes |
tron_sign_message | Sign arbitrary message (signMessageV2) | Yes |
tron_sign_typed_data | Sign TIP-712 typed data | Yes |
tron_get_balance | Read TRX balance (via TronGrid) | No |
tron_get_token_balance | Read TRC-20 balance (balanceOf/decimals/symbol) | No |
send_transaction or tron_send_transaction)Screenshots below show the EVM approval UI; the TRON UI mirrors the same card layout with TronLink-specific copy and TRX denomination.
| Connect Wallet | Send Transaction | Sign Message |
|---|---|---|
![]() | ![]() | ![]() |
Built-in RPC URLs for:
Environment variables (optional):
| Variable | Description | Default |
|---|---|---|
EVM_MCP_PORT | EVM HTTP server port | 3847 |
EVM_MCP_DEFAULT_CHAIN | Default EVM chain ID | 1 |
TRON_MCP_PORT | TRON HTTP server port | 3848 |
TRON_MCP_DEFAULT_NETWORK | Default TRON network (mainnet/shasta/nile) | mainnet |
This is a monorepo with three published packages plus one internal one:
| Package | Published | Description |
|---|---|---|
wallet-signer-core | internal | Chain-agnostic primitives (PendingStore, HTTP bridge, errors). Bundled into each chain package at build time β never installed directly. |
browser-evm-signer | npm + JSR | Standalone library β sign EVM transactions via MetaMask/Rabby/any EIP-6963 wallet |
browser-tron-signer | npm + JSR | Standalone library β sign TRON transactions via TronLink |
mcp-wallet-signer | npm | MCP server β exposes the EVM and TRON signers as MCP tools for AI agents |
Use the chain-specific packages directly if you want browser-based signing in your own Node.js/Deno app without MCP.
Requires Deno v2.0+.
A signer-cli script triggers the same flows that the MCP tools do, but from your shell β
useful for smoke-testing against a real wallet without going through an MCP client.
The approval URL is always printed up-front, and every browser-interacting subcommand (both chains, every flow except get-balance which doesn't open a browser) accepts --browser <name> and --print:
--browser <name> accepts chrome, firefox, edge, safari, or a binary path. Useful when your system default doesn't have the wallet extension installed.
Per-package deno task trigger ... works too if you're already inside packages/browser-evm-signer/ or packages/browser-tron-signer/.
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/nikicat-mcp-wallet-signer)<a href="https://allmcps.com/mcp/nikicat-mcp-wallet-signer"><img src="https://allmcps.com/api/badge/nikicat-mcp-wallet-signer?style=directory" alt="MCP Wallet Signer on AllMCPs" /></a>