关于 Solana Web3.js MCP Server
Solana Web3.js MCP Server 向 AI 助手提供 Solana 账户、交易、密钥、程序和代币操作,适用于 Solana 开发与部署;敏感操作需用户批准。
主要功能
- 01查询账户与余额
- 02创建、模拟和发送交易
- 03生成和派生密钥对
- 04部署及升级 Solana 程序
- 05SPL 代币操作
适用场景
- 01查看账户数据和 SOL 余额
- 02提交前构建并验证交易
- 03部署或升级 Solana 程序
- 04创建或转移 SPL 代币
MCP 相关
它通过 MCP 工具提供 Solana 区块链操作,可配置为 Claude Desktop 等客户端的服务。资源和提示词功能虽有规划,但尚未实现。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Solana Web3.js MCP 服务
一个 Model Context Protocol(MCP)服务,可让 Claude 等 AI 助手端到端地开发和部署 Solana 智能合约。此服务充当 AI 大模型与 Solana 区块链之间的桥梁,为区块链交互提供标准化接口。
重要更新:此项目目前正从 Solana web3.js v1.x 迁移到 v2.0,以利用更高的性能、更好的类型安全性和现代函数式编程模式。详情请参阅迁移计划。
什么是 MCP?
Model Context Protocol(MCP)是一种开放标准,可让 AI 助手以安全、可控的方式访问外部工具和数据源。此服务实现了 MCP 规范,可向 AI 助手开放 Solana 区块链功能。
此服务的功能
此 MCP 服务为 AI 助手提供以下能力:
-
与 Solana 区块链交互:查询账户数据、检查余额、查看交易历史记录,以及获取各种 Solana 集群(mainnet、testnet、devnet)的网络状态
-
创建和管理交易:构建、模拟、签名并向 Solana 区块链发送交易,同时妥善处理错误并估算费用
-
开发智能合约:访问模板、编译、测试和部署使用 Solana SDK 或 Pinocchio 框架编写的 Rust 程序
-
管理钱包和密钥:生成密钥对、派生地址,并在遵循安全最佳实践的同时与钱包适配器交互
-
使用代币:创建、转移和管理 SPL 代币及代币账户
架构
此服务提供三种 MCP 能力:
- 工具:执行操作的函数,例如发送交易、部署程序或生成密钥对
- 资源:数据源,例如文档、代码模板和区块链状态信息
- 提示词:用于引导 AI 完成智能合约开发等复杂工作流的模板
所有区块链交互均通过 @solana/web3.js 库及相关 SDK 执行,MCP 服务则充当 AI 与区块链之间的安全中介。
安装
# Clone the repository
git clone https://github.com/FrankGenGo/solana-web3js-mcp-server.git
cd solana-web3js-mcp-server
# Install dependencies
npm install
# Build the server
npm run build
# Start the server
npm start
在 Claude Desktop 中使用
-
将以下内容添加到 Claude Desktop 配置文件中:
在 macOS 上:
~/Library/Application Support/Claude/claude_desktop_config.json在 Windows 上:%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"solana": {
"command": "node",
"args": ["/absolute/path/to/solana-web3js-mcp-server/dist/index.js"]
}
}
}
-
重启 Claude Desktop
-
现在可以让 Claude 执行 Solana 相关任务,例如:
- “创建一个新的 Solana 账户并显示密钥对”
- “地址 X 的当前余额是多少?”
- “帮我在 Solana devnet 上编写并部署一个简单的代币合约”
安全注意事项
- 此服务默认不会存储私钥
- 敏感操作(签名、部署到 mainnet)需要用户明确批准
- 此服务遵循区块链安全交互的最佳实践
可用工具
账户管理(已实现)
getAccountInfo:获取并解码账户信息checkAccountBalance:获取指定地址的 SOL 余额findProgramAccounts:查找由某个程序拥有的账户getRentExemption:计算免租金所需的最低余额
交易管理(已实现)
createTransaction:使用指定指令构建交易signTransaction:使用一个或多个密钥对签署交易sendTransaction:在链上发送并确认交易simulateTransaction:模拟交易,但不发送交易getTransactionStatus:检查交易状态
密钥管理(已实现)
generateKeypair:创建新的 Solana 密钥对importKeypair:从各种格式导入现有密钥对deriveKeypair:从种子、助记词或路径派生密钥对
程序开发(已实现)
deployProgram:将程序部署到 Solana 集群upgradeProgram:升级现有的可升级程序generateProgramAddress:派生程序派生地址(PDA)
代币操作(已实现)
createToken:创建新的 SPL 代币mintTokens:向代币账户铸造代币transferTokens:在账户之间转移代币getTokenAccountInfo:获取代币账户信息getTokenSupply:获取代币的总供应量
配置管理(计划中)
getConfig:获取当前配置设置setConfig:更新配置参数getClusterVersion:获取 Solana 集群版本
扩展密钥对管理(计划中)
saveKeypair:将密钥对保存到安全存储中recoverKeypair:从种子短语恢复密钥对verifyKeypair:验证密钥对完整性
网络交互(计划中)
requestAirdrop:从 devnet/testnet 水龙头请求 SOLmanageStake:创建和管理质押账户getValidators:获取验证者信息
区块链数据检查(计划中)
getBlock:按插槽编号获取区块详情getBlockProduction:获取区块生成统计信息getRecentBlockhash:获取最新区块哈希及费用计算器getEpochInfo:获取当前纪元信息getInflationRate:获取当前通胀率
日志与监控(计划中)
getLogs:流式传输和筛选交易日志getProgramLogs:监控程序执行日志
开发
# Run in development mode (with auto-reload)
npm run dev
# Run tests (including integration tests against devnet)
npm test
# Lint the code
npm run lint
设置测试环境
测试套件包含针对 Solana devnet 运行的集成测试。请按以下步骤设置测试环境:
-
安装 Solana CLI:按照官方安装说明操作
-
生成测试密钥对:
mkdir -p ~/solana-web3js-tests solana-keygen new --force --no-bip39-passphrase -o ~/solana-web3js-tests/test-keypair.json -
为测试密钥对注入 devnet SOL:
solana airdrop 1 $(solana address -k ~/solana-web3js-tests/test-keypair.json) --url devnet -
验证余额:
solana balance -k ~/solana-web3js-tests/test-keypair.json --url devnet
测试套件会自动使用此密钥对针对 devnet 运行集成测试。
项目结构
src/index.ts:主入口点(已实现)src/solana-server.ts:核心服务实现(已实现)src/core/connection-manager.ts:Solana 连接管理(已实现)src/transport/:传输层实现src/transport/stdio.ts:标准输入/输出传输(已实现)src/transport/http.ts:HTTP/SSE 传输(已实现)src/transport/index.ts:传输导出(已实现)
src/tools/:Solana 操作的工具实现src/tools/accounts/:账户管理工具(已实现)src/tools/transactions/:交易操作工具(已实现)src/tools/keys/:密钥管理工具(已实现)src/tools/programs/:程序开发工具(已实现)
src/resources/:Solana 数据的资源实现(计划中)src/prompts/:适用于常见工作流的可复用提示词(计划中)src/types/:TypeScript 类型定义src/types/solana.ts:Solana 专用类型定义(部分实现)src/types/tools.ts:工具输入/输出类型定义(计划中)src/types/config.ts:配置类型定义(计划中)
src/utils/:实用函数和类src/utils/errors.ts:错误处理系统(已实现)src/utils/logging.ts:日志系统(已实现)
扩展服务
此服务旨在支持扩展。添加新功能的步骤如下:
- 在
tools目录中的相应文件里创建新工具 - 在
solana-server.ts中注册该工具 - 使用单元测试和集成测试测试该工具
贡献
欢迎贡献!欢迎提交 Pull Request。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。