MCP server: One MCP server.

Signer

@cryptoapis-ioRun by its publisher: served from their own domain, namespace checked by the registry.MCP server · External

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

Crypto wallets & DeFiv0.5.0MITTypeScript
Freeno charge per call

Runs on your machine from its package; the steps are below.

What it does

  1. Reads
  2. Writes
  3. High impact

At most: moves money, runs code or commands, deletes data, or sends messages for you.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Runs locally over stdio

This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).

npm@cryptoapis-io/mcp-signerv0.5.0

Run

npx -y @cryptoapis-io/mcp-signer

MCP client config

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

@cryptoapis-io/mcp-signer

MCP server for local transaction signing across EVM, UTXO, Tron, XRP, Kaspa, Solana and Tezos. 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

bash
npm install @cryptoapis-io/mcp-signer

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

Usage

bash
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):

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

Cursor

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

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

MCP Inspector

bash
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 }.

tezos_sign

Sign a Tezos operation for tz1 (ed25519), tz2 (secp256k1) or tz3 (P-256) keys (edsk… / spsk… / p2sk…).

ActionDescription
sign-forged-operationSign the forgedOperation hex from prepare_transactions_tezos. The operation is decoded first: only reveal/transaction ops from the key's own address are signed, and the optional expected (destination, amount in mutez, maxFee) must match. Returns { signedOperation, operationHash, signature, … }; broadcast signedOperation.

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

Similar modules

Browse Crypto wallets & DeFi