Solana Web3.js MCP Server について
Solana Web3.js MCP Serverは、AIアシスタントにSolanaのアカウント、トランザクション、鍵、プログラム、トークン操作を提供します。Solanaの開発やデプロイ向けで、機密性の高い操作にはユーザーの承認が必要です。
主な機能
- 01アカウントと残高の照会
- 02トランザクションの作成・シミュレーション・送信
- 03キーペアの生成と導出
- 04Solanaプログラムのデプロイと更新
- 05SPLトークン操作
活用シーン
- 01アカウント情報とSOL残高の確認
- 02送信前のトランザクション作成と検証
- 03Solanaプログラムのデプロイや更新
- 04SPLトークンの作成や移転
MCP 対応
MCPツールを通じてSolanaブロックチェーンの操作を提供し、Claude Desktopなどのクライアントにサーバーとして設定できます。リソースとプロンプト機能は記載されていますが、実装予定です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Solana Web3.js MCP サーバー
Claude などの AI アシスタントが、Solana のスマートコントラクトをエンドツーエンドで開発・デプロイできるようにする、Model Context Protocol(MCP)サーバーです。このサーバーは、AI 言語モデルと Solana ブロックチェーンの橋渡し役として機能し、ブロックチェーンとのやり取りに標準化されたインターフェースを提供します。
重要なお知らせ:このプロジェクトでは現在、パフォーマンスの向上、型安全性の改善、最新の関数型プログラミングパターンの活用を目的に、Solana web3.js v1.x から v2.0 への移行を進めています。詳細は移行計画をご覧ください。
MCP とは?
Model Context Protocol(MCP)は、AI アシスタントが外部のツールやデータソースに安全かつ制御された方法でアクセスできるようにするオープン標準です。このサーバーは MCP の仕様を実装し、Solana ブロックチェーンの機能を AI アシスタントに公開します。
このサーバーでできること
この MCP サーバーは、AI アシスタントに次の機能を提供します。
-
Solana ブロックチェーンとのやり取り:アカウントデータの照会、残高の確認、取引履歴の表示、さまざまな Solana クラスター(mainnet、testnet、devnet)のネットワークステータスの取得
-
トランザクションの作成と管理:適切なエラー処理と手数料の見積もりを行いながら、トランザクションを構築、シミュレーション、署名し、Solana ブロックチェーンに送信
-
スマートコントラクトの開発:Solana SDK または Pinocchio フレームワークを使用して Rust で記述された Solana プログラムのテンプレートへのアクセス、コンパイル、テスト、デプロイ
-
ウォレットとキーの管理:セキュリティのベストプラクティスを維持しながら、キーペアの生成、アドレスの導出、ウォレットアダプターとの連携
-
トークンの操作:SPL トークンとトークンアカウントの作成、送信、管理
アーキテクチャ
このサーバーは、3 種類の MCP 機能を公開します。
- ツール:トランザクションの送信、プログラムのデプロイ、キーペアの生成などの操作を実行する関数
- リソース:ドキュメント、コードテンプレート、ブロックチェーンの状態情報などのデータソース
- プロンプト:スマートコントラクト開発などの複雑なワークフローを AI が進めるためのテンプレート
すべてのブロックチェーンとのやり取りは、@solana/web3.js ライブラリと関連 SDK を通じて実行されます。MCP サーバーは、AI とブロックチェーンの間で安全な仲介役として機能します。
インストール
# Clone the repository
git clone https://github.com/FrankGenGo/solana-web3js-mcp-server.git
cd solana-web3js-mcp-server
# Install dependencies
npm install
# Build the server
npm run build
# Start the server
npm start
Claude Desktop での使用方法
-
Claude Desktop をインストールします
-
Claude Desktop の設定ファイルに以下を追加します。
macOS の場合:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows の場合:%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"solana": {
"command": "node",
"args": ["/absolute/path/to/solana-web3js-mcp-server/dist/index.js"]
}
}
}
-
Claude Desktop を再起動します
-
Claude に Solana 関連のタスクを依頼できるようになります。たとえば、次のように依頼できます。
- 「新しい Solana アカウントを作成して、キーペアを表示してください」
- 「アドレス X の現在の残高はいくらですか?」
- 「Solana devnet 上で簡単なトークンコントラクトを作成してデプロイするのを手伝ってください」
セキュリティに関する考慮事項
- このサーバーは、デフォルトでは秘密鍵を保存しません
- 署名や mainnet へのデプロイなどの機密性の高い操作には、ユーザーの明示的な承認が必要です
- このサーバーは、ブロックチェーンとの安全なやり取りに関するベストプラクティスに従います
利用可能なツール
アカウント管理(実装済み)
getAccountInfo:アカウント情報を取得してデコードcheckAccountBalance:アドレスの SOL 残高を取得findProgramAccounts:プログラムが所有するアカウントを検索getRentExemption:レンタル免除に必要な最小残高を計算
トランザクション管理(実装済み)
createTransaction:指定された命令でトランザクションを構築signTransaction:1 つ以上のキーペアでトランザクションに署名sendTransaction:トランザクションをオンチェーンに送信し、確定simulateTransaction:送信せずにトランザクションをシミュレーションgetTransactionStatus:トランザクションのステータスを確認
キー管理(実装済み)
generateKeypair:新しい Solana キーペアを作成しますimportKeypair:さまざまな形式の既存のキーペアをインポートしますderiveKeypair:シード、ニーモニック、またはパスからキーペアを導出します
プログラム開発(実装済み)
deployProgram:Solana クラスターにプログラムをデプロイしますupgradeProgram:既存のアップグレード可能なプログラムをアップグレードしますgenerateProgramAddress:プログラム派生アドレス(PDA)を導出します
トークン操作(実装済み)
createToken:新しい SPL トークンを作成しますmintTokens:トークンアカウントにトークンを発行しますtransferTokens:アカウント間でトークンを転送しますgetTokenAccountInfo:トークンアカウントの情報を取得しますgetTokenSupply:トークンの総供給量を取得します
設定管理(予定)
getConfig:現在の設定を取得しますsetConfig:設定パラメーターを更新しますgetClusterVersion:Solana クラスターのバージョンを取得します
拡張キー管理(予定)
saveKeypair:キーペアを安全なストレージに保存しますrecoverKeypair:シードフレーズからキーペアを復元しますverifyKeypair:キーペアの整合性を検証します
ネットワーク操作(予定)
requestAirdrop:devnet/testnet のフォーセットから SOL をリクエストしますmanageStake:ステークアカウントを作成、管理しますgetValidators:バリデーター情報を取得します
ブロックチェーンデータの検査(予定)
getBlock:スロット番号でブロックの詳細を取得しますgetBlockProduction:ブロック生成統計を取得しますgetRecentBlockhash:手数料計算機能付きで最新のブロックハッシュを取得しますgetEpochInfo:現在のエポック情報を取得しますgetInflationRate:現在のインフレ率を取得します
ログとモニタリング(予定)
getLogs:トランザクションログをストリーミングしてフィルタリングしますgetProgramLogs:プログラム実行ログを監視します
開発
# Run in development mode (with auto-reload)
npm run dev
# Run tests (including integration tests against devnet)
npm test
# Lint the code
npm run lint
テスト環境のセットアップ
テストスイートには、Solana devnet に対して実行する統合テストが含まれています。テスト環境をセットアップするには、次の手順に従ってください。
-
Solana CLI をインストールする:公式のインストール手順に従ってください
-
テスト用キーペアを生成する:
mkdir -p ~/solana-web3js-tests solana-keygen new --force --no-bip39-passphrase -o ~/solana-web3js-tests/test-keypair.json -
テスト用キーペアに devnet SOL を入金する:
solana airdrop 1 $(solana address -k ~/solana-web3js-tests/test-keypair.json) --url devnet -
残高を確認する:
solana balance -k ~/solana-web3js-tests/test-keypair.json --url devnet
テストスイートは、devnet に対する統合テストでこのキーペアを自動的に使用します。
プロジェクト構成
src/index.ts:メインのエントリーポイント(実装済み)src/solana-server.ts:サーバーのコア実装(実装済み)src/core/connection-manager.ts:Solana 接続管理(実装済み)src/transport/:トランスポート層の実装src/transport/stdio.ts:標準入出力トランスポート(実装済み)src/transport/http.ts:HTTP/SSE トランスポート(実装済み)src/transport/index.ts:トランスポートのエクスポート(実装済み)
src/tools/:Solana 操作用ツールの実装src/tools/accounts/:アカウント管理ツール(実装済み)src/tools/transactions/:トランザクション操作ツール(実装済み)src/tools/keys/:キー管理ツール(実装済み)src/tools/programs/:プログラム開発ツール(実装済み)
src/resources/:Solana データ用リソースの実装(予定)src/prompts/:一般的なワークフロー向けの再利用可能なプロンプト(予定)src/types/:TypeScript 型定義src/types/solana.ts:Solana 固有の型定義(一部実装済み)src/types/tools.ts:ツールの入出力型定義(予定)src/types/config.ts:設定の型定義(予定)
src/utils/:ユーティリティ関数とクラスsrc/utils/errors.ts:エラー処理システム(実装済み)src/utils/logging.ts:ログ記録システム(実装済み)
サーバーの拡張
このサーバーは拡張可能な設計です。新しい機能を追加するには、次の手順に従ってください。
toolsディレクトリ内の適切なファイルに新しいツールを作成しますsolana-server.tsにツールを登録します- 単体テストと統合テストの両方でツールをテストします
コントリビューション
コントリビューションを歓迎します。お気軽にプルリクエストを送信してください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。