mcpField
E
Ethereum MCP Server

Ethereum MCP Server

ローカル
github.com/ethpandaops金融データ170 週間前に更新

Ethereum MCP Server について

Ethereum MCP Serverは、FastAPIとWeb3.pyでEthereumのウォレット、トランザクション、スマートコントラクト操作を扱う実験的なサーバーです。MCP経由でこれらを試す開発者向けですが、READMEでは現在動作しない可能性があると警告しています。

主な機能

  1. 01ウォレットの作成、インポート、一覧表示
  2. 02ETH残高の確認
  3. 03トランザクションの送信と監視
  4. 04ガス見積もりとNonce管理
  5. 05コントラクトのデプロイと読み込み
  6. 06コントラクト状態の読み取りとイベント照会

活用シーン

  1. 01Ethereumウォレットの管理
  2. 02トランザクション送信とレシート確認
  3. 03コントラクトのデプロイや操作
  4. 04コントラクトデータと過去イベントの読み取り

MCP 対応

サーバーメソッドを通じて、Ethereumのウォレット、トランザクション、コントラクト操作をMCPクライアントに公開します。高度に実験的で、現時点では動作しない可能性があります。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Ethereum MCP サーバー

警告:このリポジトリは非常に実験的なものであり、現時点では動作しない可能性が高いです。現在も開発中で、安全に実行できると判断された時点でこの警告を更新します。

ウォレット管理、トランザクション処理、コントラクトとのやり取り機能を備えた、包括的な Ethereum MCP サーバーの実装です。FastAPI と Web3.py で構築されています。

機能

ウォレット管理
  • 新しいウォレットの作成
  • 既存のウォレットのインポート
  • 管理対象のウォレットの一覧表示
  • ETH 残高の確認
  • 秘密鍵の安全な取り扱い
トランザクション管理
  • ETH トランザクションの送信
  • トランザクション詳細の取得
  • トランザクションレシートの取得
  • ガスの見積もり
  • ノンスの管理
  • トランザクションの監視
コントラクトとのやり取り
  • ABI を使用したコントラクトのデプロイ
  • 既存コントラクトの読み込み
  • 状態を変更するメソッドの呼び出し
  • コントラクトの状態の読み取り
  • コントラクトイベントのクエリ
  • ABI の管理
コントラクトのデプロイ

バイトコードと ABI を使用して新しいコントラクトをデプロイします:

{
  "method": "eth_deployContract",
  "params": {
    "from": "0x742d35Cc6634C0532925a3b844Bc9e7595f62b8e",
    "abi": [...],  // Contract ABI array
    "bytecode": "0x608060...",  // Contract bytecode
    "constructorArgs": ["arg1", 123]  // Optional constructor arguments
  }
}
コントラクトの読み込み

デプロイ済みの既存コントラクトを読み込みます:

{
  "method": "eth_loadContract",
  "params": {
    "address": "0x1234567890123456789012345678901234567890",
    "abi": [...]  // Contract ABI array
  }
}
コントラクトメソッドの呼び出し(状態変更)

コントラクトの状態を変更するトランザクションを実行します:

{
  "method": "eth_callContractMethod",
  "params": {
    "contractAddress": "0x1234567890123456789012345678901234567890",
    "methodName": "transfer",
    "args": ["0x742d35Cc6634C0532925a3b844Bc9e7595f62b8e", 1000],
    "from": "0x742d35Cc6634C0532925a3b844Bc9e7595f62b8e"
  }
}
コントラクトの状態の読み取り

トランザクションを送信せずに view/pure 関数を呼び出します:

{
  "method": "eth_readContract",
  "params": {
    "contractAddress": "0x1234567890123456789012345678901234567890",
    "methodName": "balanceOf",
    "args": ["0x742d35Cc6634C0532925a3b844Bc9e7595f62b8e"]
  }
}
コントラクトイベントのクエリ

コントラクトから過去のイベントを取得します:

{
  "method": "eth_getContractEvents",
  "params": {
    "contractAddress": "0x1234567890123456789012345678901234567890",
    "eventName": "Transfer",
    "fromBlock": 0,
    "toBlock": "latest",
    "filters": {  // Optional event filters
      "from": "0x742d35Cc6634C0532925a3b844Bc9e7595f62b8e"
    }
  }
}

注: すべてのコントラクトとのやり取りには、関数呼び出しやイベントを適切にエンコード/デコードするために、コントラクト ABI(Application Binary Interface)が必要です。ABI は、標準的な Ethereum ABI 形式に従った JSON 配列として指定する必要があります。

トークン管理(近日公開)
  • ERC20 残高の確認
  • ERC20 の送金
  • NFT メタデータの取得
  • NFT の送金
  • トークン承認の管理
高度な機能(近日公開)
  • EIP-7702 委任
  • イベントログの取得
  • 部分的な引き出し
  • 全額の引き出し
  • バッチ操作

クイックスタート

  1. 依存関係をインストールします:
uv venv
source .venv/bin/activate
uv pip install -e .
  1. 環境変数を設定します:
cp .env.example .env
# Edit .env with your configuration
  1. サーバーを起動します:
python src/server.py

API メソッド

ウォレットメソッド
{
  "method": "eth_createWallet",
  "params": {}
}

{
  "method": "eth_importWallet",
  "params": {
    "privateKey": "0x..."
  }
}

{
  "method": "eth_listWallets",
  "params": {}
}

{
  "method": "eth_getBalance",
  "params": {
    "address": "0x..."
  }
}
トランザクションメソッド
{
  "method": "eth_sendTransaction",
  "params": {
    "from": "0x...",
    "to": "0x...",
    "value": "0x...",
    "gas": "0x...",
    "gasPrice": "0x..."
  }
}

{
  "method": "eth_getTransaction",
  "params": {
    "hash": "0x..."
  }
}

{
  "method": "eth_getTransactionReceipt",
  "params": {
    "hash": "0x..."
  }
}

{
  "method": "eth_estimateGas",
  "params": {
    "from": "0x...",
    "to": "0x...",
    "value": "0x..."
  }
}

開発

プロジェクト構成
src/
├── server.py           # Main FastAPI server
├── core/              # Core functionality
│   ├── wallet.py      # Wallet management
│   ├── transaction.py # Transaction handling
│   ├── contract.py    # Contract interaction
│   └── token.py       # Token/NFT handling
├── models/            # Data models
└── utils/             # Utilities
テストの実行
pytest
コードスタイル
ruff check .
ruff format .

貢献

  1. リポジトリをフォークします
  2. 機能ブランチを作成します
  3. 変更をコミットします
  4. ブランチにプッシュします
  5. プルリクエストを作成します

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。