Skip to main content
Glama
CryptoAPIs-io

@cryptoapis-io/mcp-signer

Official

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

Related MCP server: local-kms-mcp-server

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)

sign-unsigned-hex

Sign a raw unsigned transaction hex with input descriptors

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

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

Available Tools

6 tools
evm_signA

Sign an EVM transaction or EIP-712 typed-data message. Three actions: (1) sign-unsigned-hex: sign pre-built unsigned tx hex; (2) sign-from-details: build and sign from fields (blockchain, network, toAddress, value, gas, fee, etc.); (3) sign-typed-data: sign an EIP-712 typed-data message — the x402 GASLESS path, e.g. the EIP-3009 TransferWithAuthorization returned by the x402 buyer /authorize (scheme eip712). For (3) pass domain/types/primaryType/message verbatim; it returns a 65-byte signature (no tx built). Network names (e.g. ethereum+sepolia, polygon+mainnet) are mapped to chainId internally. Private key is always passed as parameter (never from env). SECURITY: Private keys may be logged by MCP clients or stored in conversation history — use only in trusted local environments.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses private key handling, security risks (MCP logging/conversation history), network-to-chainId mapping, and the return signature format for typed-data. It does not fully specify the returned value for transaction-signing modes, but the security and mode behaviors are well covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than typical but every sentence adds useful operational or security context. It front-loads the purpose and enumerates the three actions clearly. The security warning is essential given the sensitive nature of the tool, so length is justified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, security-sensitive EVM signing tool with multiple modes and no output schema, the description covers most key aspects: actions, relevant parameters, network mapping, security caveats, and the typed-data signature return. It omits explicit return value details for broadcast/transaction-signing modes, but overall it is sufficiently complete for an agent to select and call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is empty, so the description must compensate—and it does. It names key parameters (blockchain, network, toAddress, value, gas, fee, domain/types/primaryType/message) and explains network mapping and the private-key parameter convention. It does not provide a full parameter spec, but it gives enough semantic guidance for invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a specific verb+resource: "Sign an EVM transaction or EIP-712 typed-data message." It clearly differentiates from sibling tools (utxo_sign, tron_sign, etc.) by scoping to EVM chains, and further distinguishes three internal operation modes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context for each of the three modes, including the x402 GASLESS path and how to pass EIP-712 fields verbatim. It does not explicitly compare against sibling tools, but the EVM scope and mode-specific instructions offer strong practical guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kaspa_signA

Sign a Kaspa (native KAS) transaction locally. Kaspa is a UTXO/blockDAG chain (schnorr signatures, mainnet only). Action sign-from-details: sign from a prepared transaction object (data.item from the Kaspa prepare-transaction API) — each input carries its prevout script + sompi. Returns the signed tx as JSON (the form the Kaspa broadcast service expects). Private keys (one per input) are passed as parameters (never from env). SECURITY: Private keys may be logged by MCP clients or stored in conversation history — use only in trusted local environments.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully carries the behavioral burden. It discloses local signing, mainnet-only constraint, expected input structure, output format, and a critical security warning about private key exposure. This is thorough and directly actionable for an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-organized, covering purpose, input, output, and security in four sentences. Every sentence adds value, and the security note is clearly separated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the workflow and output, but without an output schema or explicit parameter names, an agent still lacks full invocation details. It references the prepare-transaction API but does not specify how to map private keys to inputs or inject them as parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is empty, so baseline is 4. The description adds meaningful semantics by stating private keys are passed as parameters, one per input, and never from env. However, it does not name the exact parameters, leaving a gap in how to construct the call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool signs a Kaspa transaction locally, specifying the chain (UTXO/blockDAG, schnorr, mainnet-only) and the exact action (sign-from-details). It is distinct from sibling signing tools by naming Kaspa and its specific workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool: with a prepared transaction object from the Kaspa prepare-transaction API and by passing private keys as parameters. It does not explicitly exclude other signing tools, but the context is clear enough for an agent to select it for Kaspa transactions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

svm_signA

Partial-sign a Solana (SVM) x402 payment transaction locally (@solana/web3.js). One action: partial-sign — deserialize the base64 UNSIGNED TransferChecked tx from the x402 buyer /authorize (scheme svm-transaction), add ONLY the source-authority (buyer) signature, and re-serialize to base64. The feePayer slot stays UNSIGNED — the facilitator signs it at settle. Returns { transaction } (base64). Secret key is base58, passed as parameter (never from env). SECURITY: keys may be logged by MCP clients or stored in conversation history — use only in trusted local environments.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden and does so well: it states the tool is local, adds only the source-authority signature, leaves feePayer unsigned for the facilitator, returns base64, and includes a security warning about key exposure. No contradictions with annotations exist since none are provided.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but each sentence provides necessary information: what it does, how it works, return value, and security context. It is slightly long, but the content earns its place and it is front-loaded with the primary purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple signer with no output schema and no params, the description covers the workflow, the exact behavior (partial-sign), the return shape, and the security caveat. It lacks error-condition details, but those are not essential for a single-action tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is empty, so the description is the only source of parameter info. It adds the secret key format (base58) and the policy that it is passed as a parameter (never from env), which is valuable. However, the transaction input itself is only implied, not explicitly named as a parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Partial-sign a Solana (SVM) x402 payment transaction locally'. It uses a specific verb (partial-sign) and resource (Solana SVM x402 transaction), and it distinguishes itself from sibling chain-specific sign tools by focusing on the SVM/x402 context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It says exactly when to use it: when you have a base64 UNSIGNED TransferChecked tx from the x402 buyer /authorize, and explains the single action flow. It does not explicitly call out alternatives (e.g., 'use evm_sign for EVM'), but the sibling naming and chain-specific focus imply them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tron_signA

Sign a Tron transaction (no TronWeb): Node crypto (sha256) + elliptic (secp256k1) + minimal protobuf encode/decode. Two actions: (1) sign-from-details: sign from transaction object (must include raw_data_hex); (2) sign-unsigned-hex: sign from raw unsigned tx hex. Returns signedTransactionHex. Private key is passed as parameter (never from env). SECURITY: Private keys may be logged by MCP clients or stored in conversation history — use only in trusted local environments.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden and does so excellently. It discloses internal cryptographic components, two working modes, the return value, and a critical security warning about private key exposure in MCP clients and conversation history. This far exceeds minimal behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, introducing the tool's purpose and then enumerating actions and security. Every sentence contributes meaningful information, including the security note, with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the absence of output schema and annotations, the description covers purpose, internal process, input requirements, output, and security. However, the lack of explicit parameter names and the empty input schema mean an agent may not be able to construct a correct invocation, so completeness is not perfect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is empty (0 params), so the description is the sole source of parameter information. It mentions required data (raw_data_hex, raw unsigned tx hex, private key) but does not provide explicit parameter names or types, leaving invocation ambiguous. It adds value over the schema but not complete parameter clarity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Sign a Tron transaction' with specific implementation details (Node crypto, sha256, secp256k1) and lists two distinct action modes. This distinguishes it from sibling sign tools for other chains and gives a precise verb+resource scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear context (Tron signing) and outlines two actions, but does not explicitly state when to use this tool versus alternatives or how to choose between sign-from-details and sign-unsigned-hex. There are no exclusions or alternative tool references, but the chain-specific name is helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

utxo_signA

Sign a UTXO transaction (bitcoin, bitcoin-cash, litecoin, dogecoin, dash, zcash). Two actions: (1) sign-from-details: sign from prepared transaction object (e.g. HD wallet prepare-transaction); (2) sign-unsigned-hex: sign from raw unsigned tx hex (provide inputs metadata: script, satoshis per input). Private key is passed as parameter (never from env). SECURITY: Private keys may be logged by MCP clients or stored in conversation history — use only in trusted local environments.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral disclosure burden and does so by warning that private keys may be logged or stored in conversation history, and restricting use to trusted local environments. It also clarifies that the private key comes from a parameter, never an environment variable. A minor gap is the absence of return-format or broadcast-behavior details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only three sentences, front-loaded with the core purpose, then the two action modes, and finally a crucial security warning. Every sentence earns its place without repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a multi-chain, multi-mode signing tool with no annotations and no output schema, the description covers the essential aspects: supported assets, two invocation paths, required input metadata, and the private-key security caveat. It would be stronger if it stated the return value (e.g., signed transaction hex) and whether broadcasting occurs, but overall it is quite complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema exposes no properties, so the description is the only source of parameter meaning. It explains the key data required: a prepared transaction object for one action, or raw unsigned hex with script and satoshis-per-input metadata for the other, plus the private-key parameter. However, exact parameter names or the action-selection identifier are not specified, so full invocation cannot be constructed from the description alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Sign a UTXO transaction' and explicitly lists the supported chains (bitcoin, bitcoin-cash, litecoin, dogecoin, dash, zcash), making the tool's purpose unmistakable. It also naturally distinguishes itself from sibling signing tools by scoping to UTXO-chain assets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly outlines two usage modes: 'sign-from-details' for prepared transaction objects and 'sign-unsigned-hex' for raw unsigned hex with inputs metadata, giving the agent actionable guidance on when to use each. It does not explicitly name alternative tools like evm_sign, but the chain scope and mode breakdown provide sufficient context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

xrp_signA

Sign an XRP (Ripple) transaction. Two actions: (1) sign-from-details: sign from transaction object (JSON); (2) sign-unsigned-hex: sign from raw unsigned tx hex (XRPL serialized). Returns signedTransactionHex and signedTransactionHash. Secret is passed as parameter (never from env). SECURITY: Private keys may be logged by MCP clients or stored in conversation history — use only in trusted local environments.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full transparency burden. It discusses return values (signedTransactionHex, signedTransactionHash), secret handling (passed as parameter, never env), and a security warning about private key logging. This goes beyond minimal disclosure, though it does not cover error scenarios or off-chain behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is succinct and front-loaded with the primary purpose, then efficiently lays out actions, return values, and security in a few sentences. No redundant content; the SECURITY note is essential and earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema or annotations, the description covers purpose, actions, returns, and security, which is solid for a signing tool. However, it lacks parameter structure details and example usage, which is significant because the schema is empty and the tool has two distinct invocation modes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is empty with 0 parameters, so the description must compensate. It mentions secret, transaction object, and raw hex, but does not provide actual parameter names, types, or how the action is selected, leaving ambiguity on how to invoke the tool. The description adds meaning but is not fully precise.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Sign an XRP (Ripple) transaction,' which is a specific verb and resource. It distinguishes from siblings by naming XRP, and further details two action modes (transaction object or raw hex), making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description outlines two actions with distinct inputs (transaction object vs. raw hex), giving clear context for when to use each. It does not explicitly mention alternatives, but the XRP-specific language implies this is for XRP only, and sibling tools are for other chains.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 6 tool updatesv0.4.0
    • First observedevm_sign
    • First observedkaspa_sign
    • First observedsvm_sign
    • First observedtron_sign
    • First observedutxo_sign
    • First observedxrp_sign

TDQS

A4.4/5.0
Disambiguation5/5

Each tool targets a distinct blockchain (EVM, UTXO, Tron, XRP, Kaspa, SVM), so there is no ambiguity about which tool to use for a given chain. Even within UTXO, the tool covers multiple coins but is clearly scoped to UTXO networks.

Naming Consistency5/5

All tools follow a consistent pattern: a chain identifier prefix followed by '_sign' (e.g., evm_sign, utxo_sign). This makes the naming predictable and easy to navigate.

Tool Count5/5

Six tools is well within the ideal range for a blockchain signing server. Each tool covers a major blockchain family, and no redundant or excessive tools are present.

Completeness4/5

The toolset provides signing capabilities for the most prominent blockchains and supports both transaction signing and typed-data/EIP-712 signing for EVM. Minor gaps exist (e.g., no Cosmos or other chains), but the surface is complete for its stated scope.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/CryptoAPIs-io/cryptoapis-mcp-signer'

If you have feedback or need assistance with the MCP directory API, please join our Discord server