返回市场
流行-MCP服务器

流行-MCP服务器

作者:r0gue-io2 星标更新:2025-11-07

项目介绍

Pop MCP Server

一个全面的模型上下文协议(MCP)服务器,用于完整的Polkadot开发,提供与Pop CLI无缝集成的智能合约、平行链、模块和链交互功能。

源代码: https://github.com/r0gue-io/pop-mcp

概述

通过与AI助手的自然对话,在Polkadot上构建任何内容:

  • 🔷 智能合约 - 创建、构建、测试和部署ink!合约
  • ⛓️ 平行链 - 构建和启动自定义平行链/应用链
  • 🧩 模块 - 创建自定义运行时模块
  • 🔗 链交互 - 调用外在函数、查询存储、读取常量
  • 📚 文档 - 完整的Polkadot、ink!、XCM和Substrate指南
  • 🛠️ 开发工具 - 从想法到部署的全生命周期

功能

📚 文档资源

通过您的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 - 运行单元和端到端测试
  • 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下载适用于您平台的最新预构建二进制文件:

# 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配置

添加到您的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配置

Claude Code可在VS Code中使用!要使用Pop MCP服务器:

全局配置(推荐)

将MCP服务器添加到全局Claude设置文件~/.claude.json中:

{
  "mcpServers": {
    "pop-cli": {
      "type": "stdio",
      "command": "/path/to/pop-mcp-server",
      "args": [],
      "env": {}
    }
  }
}

选项2:项目特定配置

或者,在您的项目目录中添加.mcp.json文件:

{
  "mcpServers": {
    "pop-cli": {
      "type": "stdio",
      "command": "node",
      "args": [
        "/absolute/path/to/pop-mcp/build/index.js"
      ],
      "env": {}
    }
  }
}

配置后

  1. 重启Claude Code(或重新加载VS Code窗口)
  2. 使用/mcp命令在Claude Code中验证服务器是否已加载
  3. 您应该看到列出的pop-cli及其可用工具

现在您可以直接在IDE中使用Claude的帮助进行Polkadot项目的开发!

其他MCP客户端

对于其他MCP客户端(如Cline、Zed等),请参阅它们的文档以添加MCP服务器。通常,您需要提供:

  • 命令:node(或如果全局安装了pop-mcp-server
  • 参数:["/path/to/build/index.js"](如果使用本地路径)

使用示例

检查Pop CLI安装

用户: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!文档并返回具有上下文的相关示例]

可用模板

  • 标准 - 基本翻转器合约(布尔切换)
  • erc20 - 可替代代币实现
  • erc721 - NFT实现
  • erc1155 - 多令牌标准
  • dns - 域名服务示例
  • 跨合约调用 - 跨合约通信
  • 多重签名 - 多重签名钱包

工具参考

安装工具

check_pop_installation

检查Pop CLI是否已安装并返回版本信息。

// 不需要参数

install_pop_instructions

提供平台特定的安装指南。

{
  platform?: "macos" | "linux" | "source"  // 可选,默认为macos
}

项目创建工具

list_templates

列出所有可用的ink!合约模板。

// 不需要参数

create_contract

从模板创建新合约。

{
  name: string,           // 合约项目名称
  template: string,       // 模板名称(见可用模板)
  path?: string          // 目标目录(默认为当前目录)
}

开发工具

build_contract

使用可选优化构建合约。

{
  path: string,          // 合约目录路径
  release?: boolean      // 使用优化构建(默认:false)
}

test_contract

运行合约测试(单元或端到端)。

{
  path: string,          // 合约目录路径
  e2e?: boolean,        // 运行端到端测试(默认:false)
  node?: string         // 自定义端到端测试节点路径(可选)
}

clean_contract

删除构建工件。

{
  path:  // 合约目录路径
}

get_contract_info

检索合约元数据和信息。

{
  path: string          // 合约目录或.contract文件路径
}

部署工具

deploy_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)
}

call_contract

调用已部署合约上的方法。

{
  contract: string,         // 合约地址
  message: string,          // 要调用的方法名称
  args?: string,           // 方法参数(空格分隔)
  suri?: string,           // 签名密钥URI(默认://Alice)
  url?: string,            // 节点WebSocket URL(默认:ws://localhost:9944)
  dryRun?: boolean         // 不提交的模拟运行(默认:false)
}

网络工具

pop_up_parachain

提供启动本地平行链网络的说明。

{
  path?: string            // 平行链目录(可选)
}

实用工具

pop_help

获取任何Pop CLI命令的帮助。

{
  command?: string         // 要获取帮助的命令(例如:"new contract")
}

search_documentation

在所有Polkadot文档中搜索特定主题或关键词。

{
  query: string,           // 搜索查询(例如:"storage","testing","XCM")
  scope?: string          // 可选:"ink","pop","xcm"或"all"(默认:"all")
}

文档资源

Pop MCP服务器提供了Claude可以访问的综合Polkadot文档,有三种方式:

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界面,您可以在其中:

  • 测试单个工具
  • 查看可用资源
  • 检查请求/响应负载
  • 调试服务器行为

故障排除

服务器无法连接

  1. 验证构建是否成功完成:npm run build
  2. 检查MCP客户端配置中的路径
  3. 查看客户端开发者控制台或日志中的错误
  4. 配置更改后重启您的MCP客户端

Pop CLI命令失败

  1. 验证Pop CLI是否已安装:pop --version
  2. 确保您处于正确的目录以执行合约操作
  3. 检查提供给工具的路径是否为绝对路径
  4. 查看Pop CLI输出中的具体错误信息

权限问题

在macOS/Linux上,确保构建输出是可执行的:

chmod +x build/index.js

贡献

此MCP服务器旨在用于黑客马拉松和快速开发。欢迎贡献!

添加新工具

  1. ListToolsRequestSchema处理器中添加工具定义
  2. CallToolRequestSchema处理器中实现工具逻辑
  3. 更新README文档
  4. 使用MCP Inspector测试

添加文档资源

  1. 将文档文件放置在.claude/docs/
  2. DOCS数组中添加资源定义
  3. 重建服务器

资源

许可

MIT

支持

对于问题和疑问:


为Polkadot黑客马拉松和开发者设计🚀