关于 mcp-signer
mcp-signer 是面向处理受支持区块链交易的开发者的本地签名 MCP 服务。它无需网络调用或 API 密钥即可为多类链签名,并且仅通过 stdio 运行。
主要功能
- 01无需网络调用的本地签名
- 02EVM 交易和类型化数据签名
- 03UTXO 交易签名
- 04Tron 和 XRP 签名
- 05Kaspa、Solana 和 Tezos 签名
- 06通过工具输入提供私钥
适用场景
- 01广播前签署已准备好的交易
- 02在本地签署未签名的交易十六进制数据
- 03签署 EIP-712 消息或 Solana 部分付款
MCP 相关
通过仅支持 stdio 的 MCP 工具,为受支持网络上的交易和消息签名。服务不会监听端口;私钥作为工具输入提供,签名在本地完成。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
7收录的工具列表 · 更新于 3 周前
此工具无需参数。
详细介绍
@cryptoapis-io/mcp-signer
适用于 EVM、UTXO、Tron、XRP、Kaspa、Solana 和 Tezos 的本地交易签名 MCP 服务。不调用 Crypto APIs HTTP 接口——签名完全在你的设备上完成。无需 API 密钥。
安全性
- 仅使用 Stdio——无 HTTP 传输。服务不会监听任何端口。
- 工具输入中的私钥——每个工具都将
privateKey/privateKeys/secret作为参数接收。绝不会从环境变量读取密钥。 - 不进行网络调用——所有签名均使用加密库在本地完成。
安装
npm install @cryptoapis-io/mcp-signer
或者安装所有 Crypto APIs MCP 服务:npm install @cryptoapis-io/mcp
使用方法
npx @cryptoapis-io/mcp-signer
Claude Desktop
添加到 Claude Desktop 配置中(macOS 上为 ~/Library/Application Support/Claude/claude_desktop_config.json,Windows 上为 %APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"cryptoapis-signer": {
"command": "npx",
"args": ["-y", "@cryptoapis-io/mcp-signer"]
}
}
}
Cursor
添加到 .cursor/mcp.json(项目级)或 ~/.cursor/mcp.json(全局):
{
"mcpServers": {
"cryptoapis-signer": {
"command": "npx",
"args": ["-y", "@cryptoapis-io/mcp-signer"]
}
}
}
MCP Inspector
npx @modelcontextprotocol/inspector npx @cryptoapis-io/mcp-signer
可用工具
evm_sign
对 EVM 交易签名(Ethereum、Ethereum Classic、BSC、Polygon、Avalanche (C-Chain)、Arbitrum、Base、Optimism、Tron)。
| 操作 | 说明 |
|---|---|
sign-from-details | 根据结构化交易字段(to、value、gasLimit 等)进行签名 |
sign-unsigned-hex | 对预先构建的未签名交易十六进制数据进行签名 |
sign-typed-data | 对 EIP-712 类型化数据消息进行签名(x402 免 Gas 路径——例如 x402 买家的 /authorize 中的 EIP-3009 TransferWithAuthorization)。返回 { signature },而非交易。 |
utxo_sign
对 UTXO 交易签名(Bitcoin、Bitcoin Cash、Litecoin、Dogecoin、Dash、Zcash)。
| 操作 | 说明 |
|---|---|
sign-from-details | 根据已准备好的交易对象(输入、输出)进行签名。对于 zcash,会生成 v5(ZIP 225/244)交易,并且要求 targetHeight(当前链顶高度 + 1)和 consensusBranchId(例如节点 getblockchaininfo 中的 consensus.nextblock)二选一 |
sign-unsigned-hex | 使用输入描述符对原始未签名交易十六进制数据进行签名。不支持 zcash |
tron_sign
使用 secp256k1 对 Tron 交易签名(不依赖 TronWeb)。
| 操作 | 说明 |
|---|---|
sign-from-details | 根据包含 raw_data_hex 的交易对象进行签名 |
sign-unsigned-hex | 对预先构建的未签名交易十六进制数据进行签名 |
xrp_sign
对 XRP 交易签名。
| 操作 | 说明 |
|---|---|
sign-from-details | 根据结构化 XRP 交易字段进行签名 |
sign-unsigned-hex | 对预先构建的未签名交易十六进制数据进行签名 |
kaspa_sign
通过 kaspa-wasm 使用 schnorr(BIP340)对 Kaspa 交易签名。仅限主网。
| 操作 | 说明 |
|---|---|
sign-from-details | 对已准备好的 Kaspa 交易进行签名(来自 prepare-transaction API) |
svm_sign
对 Solana(SVM)x402 支付交易进行部分签名——仅签名买家的源权限(facilitator 的 feePayer 槽位保持未签名,在 settle 时签名)。
| 操作 | 说明 |
|---|---|
partial-sign | 将来自 x402 买家 /authorize(方案 svm-transaction)的 base64 未签名 TransferChecked 交易反序列化,添加买家签名,然后重新序列化为 base64。返回 { transaction }。 |
tezos_sign
使用 tz1(ed25519)、tz2(secp256k1)或 tz3(P-256)密钥(edsk… / spsk… / p2sk…)对 Tezos 操作进行签名。
| 操作 | 描述 |
|---|---|
sign-forged-operation | 对 prepare_transactions_tezos 返回的 forgedOperation 十六进制数据进行签名。首先会解码操作:仅对来自该密钥自身地址的 reveal/transaction 操作进行签名,且可选的 expected(destination、以 mutez 为单位的 amount、maxFee)必须匹配。返回 { signedOperation, operationHash, signature, … };广播 signedOperation。 |
大多数工具会返回 signedTransactionHex,可直接用于通过 @cryptoapis-io/mcp-broadcast 广播。x402 路径则会返回 { signature }(EVM typed-data)或 { transaction }(SVM)。
依赖项
| 软件包 | 用途 |
|---|---|
ethers | EVM 交易签名 |
bitcoinjs-lib + ecpair + tiny-secp256k1 | UTXO 交易签名 |
elliptic | Tron 交易签名(secp256k1) |
xrpl | XRP 交易签名 |
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。