🚀 Pop MCP Server
Pop MCP Serverは、完全なPolkadot開発をサポートする包括的なModel Context Protocol (MCP)サーバーです。Pop CLIとシームレスに統合され、スマートコントラクト、パラチェーン、パレット、およびチェーンとの相互作用をサポートします。
ソースコード: https://github.com/r0gue-io/pop-mcp
🚀 クイックスタート
Pop MCP Serverを使用することで、Polkadot上で様々な開発を行うことができます。以下のセクションでは、このサーバーの概要、機能、インストール方法、使用例などを詳しく説明します。
✨ 主な機能
📚 ドキュメントリソース
AIアシスタントを通じて包括的なガイドに直接アクセスできます。
- ink!総合ガイド - 完全なスマートコントラクト言語のドキュメント
- ink!技術ガイド - 詳細な技術実装の詳細
- Pop CLIガイド - コントラクト、パラチェーン、およびパレットの完全なツール
- XCM総合ガイド - クロスチェーンメッセージングの理論とパターン
- XCM ink!サンプル - 実際のコードを含むXCMコントラクトの例
🛠️ 開発ツール
完全なPolkadot開発に必要な強力なツールを提供します。
インストールとセットアップ
check_pop_installation - Pop CLIのインストールを確認します。
install_pop_instructions - プラットフォーム固有のインストールガイドを提供します。
スマートコントラクト開発
list_templates - 利用可能なコントラクトテンプレート(ERC20、ERC721、ERC1155、DNS、マルチシグなど)を表示します。
create_contract - テンプレートからコントラクトを作成します。
build_contract - 最適化を行ってコントラクトをビルドします。
test_contract - ユニットテストとe2eテストを実行します。
deploy_contract - 任意のネットワークにコントラクトをデプロイします。
call_contract - コントラクトのメソッドを実行します。
get_contract_info - コントラクトのメタデータを調べます。
パラチェーン開発
create_parachain - 新しいパラチェーン/アプチェーンプロジェクトを作成します。
build_parachain - パラチェーンのバイナリとランタイムをビルドします。
launch_parachain - ローカルのパラチェーンネットワークを起動します。
パレット開発
create_pallet - カスタムランタイムパレットを作成します。
benchmark_pallet - パレットのベンチマークを実行します。
チェーン相互作用
call_chain - エクストリンシックを呼び出し、ストレージをクエリし、定数を読み取ります。
query_chain_storage - チェーンの状態を読み取ります。
read_chain_constant - ランタイム定数を読み取ります。
ユーティリティ
clean_project - ビルドアーティファクトをクリーンアップします。
pop_help - 任意のPop CLIコマンドのヘルプを取得します。
search_documentation - すべてのドキュメントを検索して、特定のトピックやキーワードを見つけます。
📦 インストール
MCPサーバーのインストール
GitHub Releasesから、あなたのプラットフォーム用の最新の事前ビルド済みバイナリをダウンロードします。
curl -L https://github.com/r0gue-io/pop-mcp/releases/latest/download/pop-mcp-server-aarch64-apple-darwin.tar.gz | tar xz
chmod +x pop-mcp-server-aarch64-apple-darwin
curl -L https://github.com/r0gue-io/pop-mcp/releases/latest/download/pop-mcp-server-x86_64-apple-darwin.tar.gz | tar xz
chmod +x pop-mcp-server-x86_64-apple-darwin
curl -L https://github.com/r0gue-io/pop-mcp/releases/latest/download/pop-mcp-server-x86_64-unknown-linux-gnu.tar.gz | tar xz
chmod +x pop-mcp-server-x86_64-unknown-linux-gnu
バイナリをPATH内の場所に移動することもできます(オプション)。
sudo mv pop-mcp-server-* /usr/local/bin/pop-mcp-server
ソースからビルドする場合
以下の手順でソースからビルドできます。
git clone https://github.com/r0gue-io/pop-mcp.git
cd pop-mcp
cargo build --release
📚 詳細ドキュメント
Claude Desktopの設定
Claude Desktopの設定ファイルに以下を追加します。
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"pop-mcp": {
"type": "stdio",
"command": "/path/to/pop-mcp-server",
"args": [],
"env": {}
}
}
}
/path/to/pop-mcp-serverを実際のバイナリのパスに置き換えるか、パスに含まれている場合は単にpop-mcp-serverにします。
Claude Codeの設定
Claude CodeはVS Codeで利用できます。Pop MCP Serverを使用するには、以下の手順を行います。
グローバル設定(推奨)
グローバルなClaude設定ファイル~/.claude.jsonにMCPサーバーを追加します。
{
"mcpServers": {
"pop-mcp": {
"type": "stdio",
"command": "/path/to/pop-mcp-server",
"args": [],
"env": {}
}
}
}
オプション2:プロジェクト固有の設定
代わりに、プロジェクトディレクトリに.mcp.jsonファイルを追加することもできます。
{
"mcpServers": {
"pop-mcp": {
"type": "stdio",
"command": "/path/to/pop-mcp-server",
"args": [],
"env": {}
}
}
}
設定後の手順
- Claude Codeを再起動する(またはVS Codeウィンドウを再読み込みする)
- Claude Codeで
/mcpコマンドを使用して、サーバーがロードされていることを確認する
- 利用可能なツールとともに
pop-mcpが表示されるはずです
ドキュメントリソースの自動ロード(オプション)
Claudeが各会話の開始時にink!、Pop CLI、およびXCMのドキュメントを自動的にロードするには、プロジェクトルートにCLAUDE.mdファイルを作成します。
# Polkadot開発コンテキスト
ink!スマートコントラクトとPolkadot開発の包括的なドキュメントを自動的にロードします。
@pop-mcp:ink://docs/llm-guide
@pop-mcp:pop://docs/cli-guide
XCMクロスチェーン開発について:
@pop-mcp:xcm://docs/comprehensive-guide
@pop-mcp:xcm://docs/ink-examples
これにより、Claudeは各会話で手動でリソースを@メンションする必要なく、ink!、Pop CLI、およびXCMのドキュメントに完全にアクセスできます。
これで、Claudeの助けを借りてIDE内で直接Polkadotプロジェクトを開発できます!
Cursorの設定
CursorはMCPサーバーをサポートするAIパワードのIDEです。Pop MCPを設定するには、以下の手順を行います。
1. MCPサーバーを追加する
- 設定(⌘/Ctrl + ,)を開く
- ツールとMCPに移動する
- 新しいMCPサーバーを追加をクリックする
- 以下の設定を貼り付ける
{
"pop-mcp": {
"type": "stdio",
"command": "/path/to/pop-mcp-server",
"args": [],
"env": {}
}
}
/path/to/pop-mcp-serverを実際のバイナリのパスに置き換えるか、パスに含まれている場合は単にpop-mcp-serverにします。
2. ドキュメントの自動ロード(推奨)
ink!スマートコントラクトを開発する際にCursorが自動的にPolkadotのドキュメントをロードするには、以下の手順を行います。
- 設定(⌘/Ctrl + ,)を開く
- ルール、メモリ、コマンドに移動する
- プロジェクトルールを追加をクリックする
- アプリケーションモードをインテリジェントに適用に設定する
- 名前をink!スマートコントラクトを開発するときに設定する
- 以下の内容を追加する
ink!スマートコントラクトとPolkadot開発の包括的なドキュメントを自動的にロードします。
@pop-mcp:ink://docs/llm-guide
@pop-mcp:pop://docs/cli-guide
XCMクロスチェーン開発について:
@pop-mcp:xcm://docs/comprehensive-guide
@pop-mcp:xcm://docs/ink-examples
これにより、CursorのAIはPolkadotプロジェクトを開発する際に、ink!、Pop CLI、およびXCMのドキュメントに完全にアクセスできます。
ヒント: Cursorで新しいチャットを開始するときは、コンポーザー内のルール名をクリックして、会話に手動で追加します。これにより、Polkadotのドキュメントがチャットコンテキストにロードされます。
その他のMCPクライアント
他のMCPクライアント(Cline、Zedなど)の場合は、MCPサーバーを追加する方法についてそれらのドキュメントを参照してください。一般的に、以下を提供する必要があります。
- コマンド:
pop-mcp-server(または完全なパス: /path/to/pop-mcp-server)
- 引数:
[](空)
💻 使用例
Pop CLIのインストールを確認する
ユーザー: Pop CLIはインストールされていますか?
アシスタント: [check_pop_installationツールを使用する]
新しいコントラクトを作成する
ユーザー: MyTokenという名前のERC20トークンコントラクトを作成してください。
アシスタント: [name="MyToken" および template="erc20" でcreate_contractを使用する]
ビルドとテスト
ユーザー: ./my-contractのコントラクトをビルドしてテストしてください。
アシスタント: [build_contractおよびtest_contractツールを使用する]
コントラクトをデプロイする
ユーザー: コントラクトをローカルノードにデプロイしてください。
アシスタント: [適切なパラメータでdeploy_contractを使用する]
ドキュメントにアクセスする
ドキュメントは自動的に利用可能です - 質問するだけです。
ユーザー: ink!でストレージを実装するにはどうすればいいですか?
アシスタント: [Claudeがink!ドキュメントを読み取り、ストレージの実装を説明する]
ユーザー: XCMのベストプラクティスは何ですか?
アシスタント: [ClaudeがXCM総合ガイドにアクセスし、ベストプラクティスを提供する]
ドキュメントを検索する
特定のクエリに対して検索ツールを使用します。
ユーザー: コントラクトのテストに関する情報を検索してください。
アシスタント: [query="testing"でsearch_documentationを使用して、関連するセクションを見つける]
ユーザー: ink!ドキュメント内のコントラクト間呼び出しの例を見つけてください。
アシスタント: [ink!ドキュメントを検索し、関連する例をコンテキスト付きで返す]
利用可能なテンプレート
- standard - 基本的なフリッパーコントラクト(ブール値の切り替え)
- erc20 - ファンジブルトークンの実装
- erc721 - NFTの実装
- erc1155 - マルチトークン標準
- dns - ドメインネームサービスの例
- cross-contract-calls - コントラクト間通信
- multisig - マルチシグウォレット
ツールリファレンス
インストールツール
check_pop_installation
Pop CLIがインストールされているかどうかを確認し、バージョン情報を返します。
install_pop_instructions
プラットフォーム固有のインストール手順を提供します。
{
platform?: "macos" | "linux" | "source"
}
プロジェクト作成ツール
list_templates
利用可能なすべてのink!コントラクトテンプレートをリストします。
create_contract
テンプレートから新しいコントラクトを作成します。
{
name: string,
template: string,
path?: string
}
開発ツール
build_contract
オプションの最適化を行ってコントラクトをビルドします。
{
path: string,
release?: boolean
}
test_contract
コントラクトのテスト(ユニットまたはe2e)を実行します。
{
path: string,
e2e?: boolean,
node?: string
}
clean_contract
ビルドアーティファクトを削除します。
{
path: string
}
get_contract_info
コントラクトのメタデータと情報を取得します。
{
path: string
}
デプロイツール
deploy_contract
コントラクトをデプロイしてインスタンス化します。
{
path: string,
constructor?: string,
args?: string,
suri?: string,
url?: string,
dryRun?: boolean,
uploadOnly?: boolean
}
call_contract
デプロイされたコントラクトのメソッドを呼び出します。
{
contract: string,
message: string,
args?: string,
suri?: string,
url?: string,
dryRun?: boolean
}
ネットワークツール
pop_up_parachain
ローカルのパラチェーンネットワークを起動するための手順を提供します。
{
path?: string
}
ユーティリティツール
pop_help
任意のPop CLIコマンドのヘルプを取得します。
{
command?: string
}
search_documentation
すべてのPolkadotドキュメントを検索して、特定のトピックまたはキーワードを見つけます。
{
query: string,
scope?: string
}
ドキュメントリソース
Pop MCP Serverは、Claudeが3つの方法でアクセスできる包括的なPolkadotドキュメントを提供します。
1. 自動コンテキスト(推奨)
MCPサーバーがロードされると、Claudeはすべてのドキュメントに自動的にアクセスできます。自然に質問をしてください。
ink!コントラクトでストレージを定義するにはどうすればいいですか?
XCMとは何で、コントラクトでどのように使用するのですか?
コントラクトとパラチェーンの違いは何ですか?
コントラクト間呼び出しを実装する方法を教えてください。
2. 検索ツール
search_documentationツールを使用して、特定の情報を見つけます。
ドキュメント内で「storage macros」を検索する
ドキュメント内でXCMに関する情報を見つける
ink!内のテストパターンを調べる
3. 直接のリソースURI
MCPリソースプロトコルを介して特定のドキュメントファイルにアクセスします。
ink://docs/llm-guide - ink!総合ガイド(完全な言語リファレンス)
ink://docs/technical-guide - ink!技術リファレンス(詳細な実装詳細)
pop://docs/cli-guide - Pop CLIドキュメント(ツールとワークフロー)
xcm://docs/comprehensive-guide - XCM理論とパターン(クロスチェーンメッセージング)
xcm://docs/ink-examples - XCMコントラクトの例(実際のコード)
利用可能なドキュメントトピック
AIアシスタントは以下に関する包括的な知識を持っています。
- ink!スマートコントラクト: 言語構文、マクロ、ストレージ、イベント、エラー
- コントラクトパターン: ERC20、ERC721、ERC1155、DNS、マルチシグ、コントラクト間呼び出し
- テスト: ユニットテスト、e2eテスト、テストパターンとベストプラクティス
- XCM: クロスチェーンメッセージング、統合パターン、実際の例
- Pop CLI: すべてのコマンド、ワークフロー、およびツール
- デプロイ: ローカルノード、テストネット、メインネットのデプロイ戦略
- 最適化: ガス最適化、ストレージ効率、ベストプラクティス
プロジェクト構造
pop-mcp/
├── src/
│ └── index.ts # メインのMCPサーバー実装
├── build/ # コンパイルされたJavaScript(生成される)
├── .claude/
│ └── docs/ # ドキュメントリソース
│ ├── ink-llms.txt
│ ├── ink-technical-guide.txt
│ ├── pop-cli-comprehensive-guide.txt
│ ├── xcm-comprehensive-guide.txt
│ └── xcm-ink-examples-guide.txt
├── package.json
├── tsconfig.json
└── README.md
開発
ビルド
npm run build
変更の監視
npm run watch
MCPインスペクターでのテスト
MCPインスペクターは、サーバーをテストするためのUIを提供します。
npm run inspector
これにより、以下のことができるWebインターフェースが開きます。
- 個々のツールをテストする
- 利用可能なリソースを表示する
- リクエスト/レスポンスペイロードを調べる
- サーバーの動作をデバッグする
トラブルシューティング
サーバーが接続されない場合
- ビルドが正常に完了したことを確認する:
npm run build
- MCPクライアントの設定内のパスを確認する
- クライアントの開発者コンソールまたはログ内のエラーを確認する
- 設定を変更した後、MCPクライアントを再起動する
Pop CLIコマンドが失敗する場合
- Pop CLIがインストールされていることを確認する:
pop --version
- コントラクト操作のために正しいディレクトリにいることを確認する
- ツールに提供されるパスが絶対パスであることを確認する
- Pop CLIの出力を確認して、特定のエラーメッセージを確認する
パーミッションの問題
macOS/Linuxでは、ビルド出力が実行可能であることを確認してください。
chmod +x build/index.js
コントリビュート
このMCPサーバーはハッカソンや迅速な開発を目的として設計されています。コントリビューションは歓迎されます!
新しいツールを追加する
ListToolsRequestSchemaハンドラーにツール定義を追加する
CallToolRequestSchemaハンドラーにツールロジックを実装する
- READMEドキュメントを更新する
- MCPインスペクターでテストする
ドキュメントリソースを追加する
- ドキュメントファイルを
.claude/docs/に配置する
DOCS配列にリソース定義を追加する
- サーバーを再ビルドする
リソース
📄 ライセンス
MIT
サポート
問題や質問については、以下を参照してください。
- Pop MCP Server: https://github.com/r0gue-io/pop-mcp/issues
- Pop CLI: https://github.com/r0gue-io/pop-cli/issues
- MCPプロトコル: https://github.com/modelcontextprotocol/specification
Polkadotのハッカソンや開発者のために構築されました 🚀