交易签名MCP服务器

这是一个本地运行的多区块链交易签名MCP服务器,支持EVM、UTXO、Tron、XRP、Kaspa、Solana和Tezos的离线签名,适用于需要安全私钥管理和本地构建签名交易的开发场景。

  • by CryptoAPIs-io
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 CryptoAPIs-io/cryptoapis-mcp-signer

使用说明

@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

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).

Action Description
sign-from-details Sign from structured transaction fields (to, value, gasLimit, etc.)
sign-unsigned-hex Sign a pre-built unsigned transaction hex
sign-typed-data Sign 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).

Action Description
sign-from-details Sign from a prepared transaction object (inputs, outputs). For zcash, produces a v5 (ZIP 225/244) transaction and requires exactly one of targetHeight (current chain tip + 1) or consensusBranchId (e.g. a node's getblockchaininfo consensus.nextblock)
sign-unsigned-hex Sign a raw unsigned transaction hex with input descriptors. Does not support zcash

tron_sign

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

Action Description
sign-from-details Sign from a transaction object with raw_data_hex
sign-unsigned-hex Sign a pre-built unsigned transaction hex

xrp_sign

Sign an XRP transaction.

Action Description
sign-from-details Sign from structured XRP transaction fields
sign-unsigned-hex Sign a pre-built unsigned transaction hex

kaspa_sign

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

Action Description
sign-from-details Sign 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).

Action Description
partial-sign Deserialize 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…).

Action Description
sign-forged-operation Sign 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

Package Purpose
ethers EVM transaction signing
bitcoinjs-lib + ecpair + tiny-secp256k1 UTXO transaction signing
elliptic Tron transaction signing (secp256k1)
xrpl XRP transaction signing

License

MIT