mcp-signer について
mcp-signerは、対応するブロックチェーン取引を扱う開発者向けのローカル署名MCPサーバーです。ネットワーク通信やAPIキーなしで複数のチェーンに署名でき、stdioのみで動作します。
主な機能
- 01ネットワーク通信なしのローカル署名
- 02EVM取引と型付きデータの署名
- 03UTXO取引の署名
- 04TronとXRPの署名
- 05Kaspa、Solana、Tezosの署名
- 06ツール入力として秘密鍵を受け取り
活用シーン
- 01ブロードキャスト前に準備済み取引へ署名
- 02未署名の取引HEXにローカルで署名
- 03EIP-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 | あらかじめ構築された未署名の取引 hex に署名します |
sign-typed-data | EIP-712 の型付きデータメッセージに署名します(x402 のガス代不要パス。例:x402 購入者の /authorize から取得する EIP-3009 TransferWithAuthorization)。{ signature } を返します。取引ではありません。 |
utxo_sign
UTXO 取引に署名します(Bitcoin、Bitcoin Cash、Litecoin、Dogecoin、Dash、Zcash)。
| アクション | 説明 |
|---|---|
sign-from-details | 準備済みの取引オブジェクト(inputs、outputs)から署名します。Zcash の場合は v5(ZIP 225/244)取引を生成し、targetHeight(現在のチェーン先端 + 1)または consensusBranchId(例:ノードの getblockchaininfo の consensus.nextblock)のいずれか一方を必ず指定する必要があります |
sign-unsigned-hex | 入力の記述子を指定して、未署名の生の取引 hex に署名します。Zcash はサポートされていません |
tron_sign
Tron の取引に署名します。secp256k1 を使用し、TronWeb への依存はありません。
| アクション | 説明 |
|---|---|
sign-from-details | raw_data_hex を含む取引オブジェクトから署名します |
sign-unsigned-hex | あらかじめ構築された未署名の取引 hex に署名します |
xrp_sign
XRP 取引に署名します。
| アクション | 説明 |
|---|---|
sign-from-details | 構造化された XRP 取引フィールドから署名します |
sign-unsigned-hex | あらかじめ構築された未署名の取引 hex に署名します |
kaspa_sign
kaspa-wasm を介して schnorr(BIP340)を使用し、Kaspa 取引に署名します。メインネットのみ対応しています。
| アクション | 説明 |
|---|---|
sign-from-details | 準備済みの Kaspa 取引(prepare-transaction API から取得)に署名します |
svm_sign
Solana(SVM)の x402 支払い取引に部分署名します。署名するのは購入者の source-authority 署名のみです (ファシリテーターの 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 の16進数表記に署名します。オペレーションは最初にデコードされます。キー自身のアドレスからの 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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。