Back to Directory/Developer Tools

io.github.CryptoAPIs-io/mcp-signer

Local transaction signing for EVM, UTXO, Tron, XRP, Kaspa, Solana and Tezos — no API calls

Developer ToolsTypeScriptv0.5.0

@cryptoapis-io/mcp-signer

MCP server for local transaction signing across EVM, UTXO, Tron, and XRP blockchains. No Crypto APIs HTTP calls — signing happens entirely on your machine. No API key required.

Security

  • Stdio only — no HTTP transport. The server does not listen on any port.
  • Private keys in tool input — each tool receives privateKey / privateKeys / secret as parameters. Keys are never read from environment variables.
  • No network calls — all signing is done locally using cryptographic libraries.

Installation

npm install @cryptoapis-io/mcp-signer

Or install all Crypto APIs MCP servers: npm install @cryptoapis-io/mcp

Usage

npx @cryptoapis-io/mcp-signer

Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS, %APPDATA%\Claude\claude_desktop_config.json on Windows):

{
  "mcpServers": {
    "cryptoapis-signer": {
      "command": "npx",
      "args": ["-y", "@cryptoapis-io/mcp-signer"]
    }
  }
}

Cursor

Add to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):

{
  "mcpServers": {
    "cryptoapis-signer": {
      "command": "npx",
      "args": ["-y", "@cryptoapis-io/mcp-signer"]
    }
  }
}

MCP Inspector

npx @modelcontextprotocol/inspector npx @cryptoapis-io/mcp-signer

Available Tools

evm_sign

Sign an EVM transaction (Ethereum, Ethereum Classic, BSC, Polygon, Avalanche (C-Chain), Arbitrum, Base, Optimism, Tron).

ActionDescription
sign-from-detailsSign from structured transaction fields (to, value, gasLimit, etc.)
sign-unsigned-hexSign a pre-built unsigned transaction hex
sign-typed-dataSign an EIP-712 typed-data message (the x402 gasless path — e.g. the EIP-3009 TransferWithAuthorization from the x402 buyer /authorize). Returns { signature }, not a tx.

utxo_sign

Sign a UTXO transaction (Bitcoin, Bitcoin Cash, Litecoin, Dogecoin, Dash, Zcash).

ActionDescription
sign-from-detailsSign from a prepared transaction object (inputs, outputs)
sign-unsigned-hexSign a raw unsigned transaction hex with input descriptors

tron_sign

Sign a Tron transaction using secp256k1 (no TronWeb dependency).

ActionDescription
sign-from-detailsSign from a transaction object with raw_data_hex
sign-unsigned-hexSign a pre-built unsigned transaction hex

xrp_sign

Sign an XRP transaction.

ActionDescription
sign-from-detailsSign from structured XRP transaction fields
sign-unsigned-hexSign a pre-built unsigned transaction hex

kaspa_sign

Sign a Kaspa transaction using schnorr (BIP340) via kaspa-wasm. Mainnet only.

ActionDescription
sign-from-detailsSign a prepared Kaspa transaction (from the prepare-transaction API)

svm_sign

Partial-sign a Solana (SVM) x402 payment transaction — the buyer's source-authority signature only (the facilitator's feePayer slot stays unsigned, signed at settle).

ActionDescription
partial-signDeserialize the base64 unsigned TransferChecked tx from the x402 buyer /authorize (scheme svm-transaction), add the buyer signature, re-serialize to base64. Returns { transaction }.

Most tools return signedTransactionHex — ready to broadcast with @cryptoapis-io/mcp-broadcast. The x402 paths return { signature } (EVM typed-data) or { transaction } (SVM) instead.

Dependencies

PackagePurpose
ethersEVM transaction signing
bitcoinjs-lib + ecpair + tiny-secp256k1UTXO transaction signing
ellipticTron transaction signing (secp256k1)
xrplXRP transaction signing

License

MIT

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y @cryptoapis-io/mcp-signer

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-cryptoapis-io-mcp-signer": {
      "command": "npx",
      "args": [
        "-y",
        "@cryptoapis-io/mcp-signer"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

@cryptoapis-io/mcp-signernpm

Compatible MCP Clients

io.github.CryptoAPIs-io/mcp-signer works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More