一个全面的模型上下文协议(MCP)服务器,用于完整的Polkadot开发,提供与Pop CLI无缝集成的智能合约、平行链、模块和链交互功能。
源代码: https://github.com/r0gue-io/pop-mcp
通过与AI助手的自然对话,在Polkadot上构建任何内容:
通过您的AI助手直接访问综合指南:
强大的工具,用于完整的Polkadot开发:
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 - 在所有文档中搜索主题和关键词从GitHub Releases下载适用于您平台的最新预构建二进制文件:
# macOS ARM64 (Apple Silicon)
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
# macOS Intel
curl -L https://github.com/r0gue-io/pop-mcp/releases/latest/download/pop-m-erver-x86_64-apple-darwin.tar.gz | tar xz
chmod +x pop-mcp-server-x86_64-apple-darwin
# Linux
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
# 使用Rust构建
cargo build --release
# 二进制文件位于target/release/pop-mcp-server
添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"pop-cli": {
"type": "stdio",
"command": "/path/to/pop-mcp-server",
"args": [],
"env": {}
}
}
}
替换/path/to/pop-mcp-server为您二进制的实际路径,或者如果它在PATH中,则只需pop-mcp-server。
Claude Code可在VS Code中使用!要使用Pop MCP服务器:
将MCP服务器添加到全局Claude设置文件~/.claude.json中:
{
"mcpServers": {
"pop-cli": {
"type": "stdio",
"command": "/path/to/pop-mcp-server",
"args": [],
"env": {}
}
}
}
或者,在您的项目目录中添加.mcp.json文件:
{
"mcpServers": {
"pop-cli": {
"type": "stdio",
"command": "node",
"args": [
"/absolute/path/to/pop-mcp/build/index.js"
],
"env": {}
}
}
}
/mcp命令在Claude Code中验证服务器是否已加载pop-cli及其可用工具现在您可以直接在IDE中使用Claude的帮助进行Polkadot项目的开发!
对于其他MCP客户端(如Cline、Zed等),请参阅它们的文档以添加MCP服务器。通常,您需要提供:
node(或如果全局安装了pop-mcp-server)["/path/to/build/index.js"](如果使用本地路径)用户:Pop CLI是否已安装?
助手:[使用check_pop_installation工具]
用户:创建名为MyToken的ERC20代币合约
助手:[使用create_contract,name="MyToken",template="erc20"]
用户:构建并测试./my-contract中的合约
助手:[使用build_contract和test_contract工具]
用户:将合约部署到我的本地节点
助手:[使用deploy_contract,并提供适当的参数]
文档自动可用 - 只需提问:
用户:如何在ink!中实现存储?
助手:[Claude从ink!文档中阅读并解释存储实现]
用户:XCM的最佳实践是什么?
助手:[Claude访问XCM综合指南并提供最佳实践]
使用搜索工具进行特定查询:
用户:查找关于合约测试的信息
助手:[使用search_documentation,query="testing"来查找相关部分]
用户:在ink!文档中查找跨合约调用的例子
助手:[搜索ink!文档并返回具有上下文的相关示例]
检查Pop CLI是否已安装并返回版本信息。
// 不需要参数
提供平台特定的安装指南。
{
platform?: "macos" | "linux" | "source" // 可选,默认为macos
}
列出所有可用的ink!合约模板。
// 不需要参数
从模板创建新合约。
{
name: string, // 合约项目名称
template: string, // 模板名称(见可用模板)
path?: string // 目标目录(默认为当前目录)
}
使用可选优化构建合约。
{
path: string, // 合约目录路径
release?: boolean // 使用优化构建(默认:false)
}
运行合约测试(单元或端到端)。
{
path: string, // 合约目录路径
e2e?: boolean, // 运行端到端测试(默认:false)
node?: string // 自定义端到端测试节点路径(可选)
}
删除构建工件。
{
path: // 合约目录路径
}
检索合约元数据和信息。
{
path: string // 合约目录或.contract文件路径
}
部署并实例化合约。
{
path: string, // 合约目录或.contract捆绑包
constructor?: string, // 构造函数名称(默认:"new")
args?: string, // 构造函数参数(空格分隔)
suri?: string, // 签名密钥URI(默认://Alice)
url?: string, // 节点WebSocket URL(默认:ws://localhost:9944)
dryRun?: boolean, // 不提交的模拟运行(默认:false)
uploadOnly?: boolean // 仅上传代码,不实例化(默认:false)
}
调用已部署合约上的方法。
{
contract: string, // 合约地址
message: string, // 要调用的方法名称
args?: string, // 方法参数(空格分隔)
suri?: string, // 签名密钥URI(默认://Alice)
url?: string, // 节点WebSocket URL(默认:ws://localhost:9944)
dryRun?: boolean // 不提交的模拟运行(默认:false)
}
提供启动本地平行链网络的说明。
{
path?: string // 平行链目录(可选)
}
获取任何Pop CLI命令的帮助。
{
command?: string // 要获取帮助的命令(例如:"new contract")
}
在所有Polkadot文档中搜索特定主题或关键词。
{
query: string, // 搜索查询(例如:"storage","testing","XCM")
scope?: string // 可选:"ink","pop","xcm"或"all"(默认:"all")
}
Pop MCP服务器提供了Claude可以访问的综合Polkadot文档,有三种方式:
当加载MCP服务器时,Claude自动拥有对所有文档的访问权限。只需自然地提问:
如何在ink!合约中定义存储?
解释XCM及其在合约中的使用
合约和平行链的区别是什么?
展示如何实现跨合约调用
使用search_documentation工具查找特定信息:
在文档中搜索"存储宏"
查找文档中的XCM信息
查阅ink!中的测试模式
通过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助手对以下内容有全面的知识:
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提供了一个UI来测试您的服务器:
npm run inspector
这将打开一个Web界面,您可以在其中:
npm run buildpop --version在macOS/Linux上,确保构建输出是可执行的:
chmod +x build/index.js
此MCP服务器旨在用于黑客马拉松和快速开发。欢迎贡献!
ListToolsRequestSchema处理器中添加工具定义CallToolRequestSchema处理器中实现工具逻辑.claude/docs/中DOCS数组中添加资源定义MIT
对于问题和疑问:
为Polkadot黑客马拉松和开发者设计🚀