🚀 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
专为波卡黑客松和开发者打造 🚀