项目简介
Surfpool是一个强大的Solana本地网络模拟器,专为Solana开发者设计。它允许您在不下载整个主网状态的情况下,快速启动一个镜像主网状态的本地网络(称为Surfnet)。Surfpool提供了一系列高级功能,包括:将链上IDL转换为可查询的SQL模式(IDL-to-SQL)、Web3基础设施即代码(IaC)以及各种开发者作弊码(如Stream Oracles、通用水龙头、时间旅行等)。
Surfpool MCP服务器是Surfpool的一个内置接口,旨在让AI助手(LLM客户端)能够以标准化的方式,通过JSON-RPC协议与Surfpool的核心功能进行交互。这使得AI助手能够自动化Solana本地网络的设置、代币配置、RPC调用和测试场景管理,极大地提高了Solana开发和测试的效率。
主要功能点
- 启动本地Solana网络 (Surfnet): AI助手可以指令启动一个功能完备的Solana本地网络实例,用于您的开发和测试工作。
- 设置代币账户余额: 能够轻松地为Solana本地网络上的任何指定账户(包括新创建的或现有账户)设置SOL或SPL代币(如USDC, JUP)的余额。
- 组合操作:启动网络并设置代币: 提供一个便捷的工具,可以将启动Solana本地网络和初始化用户账户代币余额这两个步骤合并为一次指令,简化操作。
- 调用Surfnet RPC方法: 允许AI助手调用Surfpool本地网络提供的所有Solana RPC方法,包括Surfpool特有的用于调试和模拟的“作弊码”RPC方法,例如 'surfnet_setAccount'。
- 创建测试场景 (Scenarios): 能够根据预定义的模板(例如Pyth价格喂价模板)创建和注册复杂的测试场景。这些场景用于模拟特定的链上状态,以对您的协议进行压力测试或重现特定条件。
- 获取资源与模板: AI助手可以访问服务器提供的资源,例如“可用的RPC端点列表”和“账户覆盖模板列表”,以更好地理解可用的功能和如何构建请求。
安装步骤
要使用Surfpool MCP服务器,您首先需要在您的系统上安装 'surfpool' 命令行工具。以下是几种常见的安装方式:
-
macOS (使用Homebrew): 打开终端并运行以下命令:
brew install txtx/taps/surfpool如果您需要更新Surfpool,请运行:
brew tap txtx/taps brew reinstall surfpool -
Linux (从源代码安装): 由于Snap Store的更新问题,建议Linux用户从源代码安装:
# 克隆Surfpool仓库 git clone https://github.com/txtx/surfpool.git # 进入仓库目录 cd surfpool # 构建并安装 cargo surfpool-install -
Docker: 您也可以通过Docker镜像运行Surfpool:
docker run surfpool/surfpool --version
验证安装: 安装完成后,在终端运行以下命令验证Surfpool是否正确安装:
surfpool --version
如果显示版本信息,则表示安装成功。
服务器配置
MCP客户端需要以下信息来连接到Surfpool MCP服务器。您通常会在MCP客户端的配置界面或文件中输入这些信息:
- 服务器名称: 'surfpool'
- 命令 (command): 'surfpool'
- 说明: 这是用于启动Surfpool程序的命令行可执行文件路径。如果 'surfpool' 已添加到您的系统PATH中,直接使用 'surfpool' 即可。
- 参数 (args): 'mcp'
- 说明: 这是传递给 'surfpool' 命令的参数,用于指示Surfpool以MCP服务器模式启动,而不是其默认的本地Solana验证器模式。
示例 MCP 客户端配置(通常在客户端的设置中以界面或JSON格式提供):
您的MCP客户端可能需要您在特定的输入框或JSON文件中填入这些值。以下是一个JSON格式的示例,展示了如何配置一个名为 "surfpool" 的MCP服务器:
// 这只是一个示例JSON结构,展示了MCP客户端可能需要的信息。 // 请根据您实际使用的MCP客户端的要求,在界面或配置文件中输入这些值。 { "mcpServers": { "surfpool": { "command": "surfpool", // 启动Surfpool MCP服务器的命令 "args": ["mcp"] // 指示Surfpool以MCP服务器模式运行的参数 } } }
基本使用方法
一旦您的MCP客户端成功配置并连接到Surfpool MCP服务器,您就可以通过自然语言向您的AI助手发出指令,AI助手将根据您的请求调用相应的Surfpool MCP工具或读取资源:
-
示例1:启动带有预设代币的本地网络
- 您可以说:“启动一个本地Solana网络,给我创建一个有100个SOL、50个USDC和20个JUP代币的账户。”
- AI助手将调用 'start_surfnet_with_token_accounts' 工具,自动处理网络的启动和代币的配置。
-
示例2:设置特定账户的SOL余额
- 您可以说:“将地址为 'some_pubkey_address' 的账户SOL余额设置为1000万 lamports。”
- AI助手将调用 'call_surfnet_rpc' 工具,并使用 'surfnet_setAccount' RPC方法来更新账户余额。
-
示例3:查询可用RPC端点
- 您可以说:“告诉我Surfnet支持哪些Solana RPC方法?”
- AI助手将读取 'str:///rpc_endpoints' 资源,获取并展示可用的RPC方法列表。
-
示例4:创建测试场景
- 您可以说:“创建一个Pyth BTC/USD价格喂价场景,将价格设置为30000,并在下一槽位应用。”
- AI助手将首先读取 'str:///override_templates' 资源以获取Pyth模板信息,然后调用 'create_scenario' 工具来创建和注册该测试场景。
信息
分类
开发者工具