🚀 Pop MCP Server
Pop MCP Server是一個全面的模型上下文協議(MCP)服務器,專為完整的波卡(Polkadot)開發而設計。它能與Pop CLI無縫集成,支持智能合約、平行鏈、模塊和鏈交互等開發場景。
源代碼:https://github.com/r0gue-io/pop-mcp
🚀 快速開始
通過與AI助手進行自然對話,你可以在波卡上構建任何項目:
- 🔷 智能合約 - 創建、構建、測試和部署ink!合約
- ⛓️ 平行鏈 - 構建並啟動自定義平行鏈/應用鏈
- 🧩 模塊 - 創建自定義運行時模塊
- 🔗 鏈交互 - 調用外部函數、查詢存儲、讀取常量
- 📚 文檔 - 提供完整的波卡、ink!、XCM和Substrate指南
- 🛠️ 開發工具 - 涵蓋從創意到部署的完整生命週期
✨ 主要特性
📚 文檔資源
通過AI助手直接訪問全面的指南:
- ink!綜合指南 - 完整的智能合約語言文檔
- ink!技術指南 - 深入的技術實現細節
- Pop CLI指南 - 適用於合約、平行鏈和模塊的完整工具
- XCM綜合指南 - 跨鏈消息傳遞理論和模式
- XCM ink!示例 - 帶有代碼的實際XCM合約示例
🛠️ 開發工具
為完整的波卡開發提供強大的工具:
安裝與設置
check_pop_installation - 驗證Pop CLI是否安裝
install_pop_instructions - 提供特定平臺的安裝指南
智能合約開發
list_templates - 查看所有可用的合約模板(ERC20、ERC721、ERC1155、DNS、多重簽名等)
create_contract - 根據模板創建合約
build_contract - 優化構建合約
test_contract - 運行單元測試和端到端測試
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
💻 使用示例
檢查Pop CLI安裝情況
用戶:Pop CLI是否已安裝?
助手:[使用check_pop_installation工具]
創建新合約
用戶:創建一個名為MyToken的ERC20代幣合約
助手:[使用create_contract,名稱="MyToken",模板="erc20"]
構建和測試
用戶:構建並測試./my-contract目錄下的合約
助手:[使用build_contract和test_contract工具]
部署合約
用戶:將合約部署到我的本地節點
助手:[使用deploy_contract並使用適當的參數]
訪問文檔
文檔可自動獲取 - 只需提出問題:
用戶:如何在ink!中實現存儲?
助手:[Claude從ink!文檔中讀取並解釋存儲實現]
用戶:XCM的最佳實踐有哪些?
助手:[Claude訪問XCM綜合指南並提供最佳實踐]
搜索文檔
使用搜索工具進行特定查詢:
用戶:搜索有關測試合約的信息
助手:[使用search_documentation,查詢="testing"以查找相關部分]
用戶:在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
運行合約測試(單元測試或端到端測試)。
{
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
在所有波卡文檔中搜索特定主題或關鍵詞。
{
query: string,
scope?: string
}
文檔資源
Pop MCP服務器提供全面的波卡文檔,Claude可以通過三種方式訪問:
1. 自動上下文(推薦)
當MCP服務器加載後,Claude可以自動訪問所有文檔。只需自然地提出問題:
如何在ink!合約中定義存儲?
解釋XCM以及如何在合約中使用它
合約和平行鏈有什麼區別?
展示如何實現跨合約調用
2. 搜索工具
使用search_documentation工具查找特定信息:
在文檔中搜索"存儲宏"
在文檔中查找有關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、多重簽名、跨合約調用
- 測試:單元測試、端到端測試、測試模式和最佳實踐
- 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 Inspector進行測試
MCP Inspector提供了一個用於測試服務器的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 Inspector進行測試
添加文檔資源
- 將文檔文件放在
.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 Protocol: https://github.com/modelcontextprotocol/specification
專為波卡黑客松和開發者打造 🚀