返回市场
索拉纳Web3JS MCP服务器

索拉纳Web3JS MCP服务器

作者:FrankGenGo2 星标更新:2025-03-23

项目介绍

Solana Web3.js MCP 服务器

这是一个模型上下文协议(MCP)服务器,使像Claude这样的AI助手能够从头到尾开发和部署Solana智能合约。该服务器充当AI语言模型与Solana区块链之间的桥梁,提供了一个标准化的接口用于区块链交互。

重要更新:此项目正在从Solana web3.js v1.x迁移到v2.0,以利用改进的性能、更好的类型安全性和现代函数式编程模式。详情请参阅迁移计划

什么是MCP?

模型上下文协议(MCP)是一个开放标准,允许AI助手在安全、受控的方式下访问外部工具和数据源。此服务器实现了MCP规范,向AI助手暴露Solana区块链功能。

此服务器的功能

此MCP服务器为AI助手提供了以下能力:

  1. 与Solana区块链交互:查询账户数据、检查余额、查看交易历史以及获取来自各种Solana集群(主网、测试网、开发网)的网络状态。
  2. 创建和管理交易:构建、模拟、签名并发送交易至Solana区块链,并进行适当的错误处理和费用估算。
  3. 开发智能合约:访问模板、编译、测试并使用Solana SDK或Pinocchio框架部署用Rust编写的Solana程序。
  4. 管理钱包和密钥:生成密钥对、派生地址并与钱包适配器交互,同时遵循最佳安全实践。
  5. 处理代币:创建、转移和管理SPL代币及代币账户。

架构

服务器公开了三种类型的MCP能力:

  • 工具:执行如发送交易、部署程序或生成密钥对等操作的函数。
  • 资源:数据源,例如文档、代码模板和区块链状态信息。
  • 提示:引导AI通过复杂工作流(如智能合约开发)的模板。

所有区块链交互均通过@solana/web3.js库及相关SDK进行,MCP服务器作为AI与区块链之间的安全中介。

安装

# 克隆仓库
git clone https://github.com/FrankGenGo/solana-web3js-mcp-server.git
cd solana-web3js-m-服务器

# 安装依赖
npm install

# 构建服务器
npm run build

# 启动服务器
npm start

与Claude Desktop一起使用

  1. 安装Claude Desktop

  2. 在您的Claude Desktop配置文件中添加以下内容:

    在macOS上~/Library/Application Support/Claude/claude_desktop_config.json 在Windows上%APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "solana": {
      "command": "node",
      "args": ["/绝对路径到/solana-web3js-mcp-server/dist/index.js"]
    }
  }
}
  1. 重启Claude Desktop

  2. 您现在可以要求Claude执行与Solana相关的任务,例如:

    • “创建一个新的Solana账户并显示密钥对”
    • “地址X的当前余额是多少?”
    • “帮助我在Solana开发网上编写并部署一个简单的代币合约”

安全注意事项

  • 此服务器默认不存储私钥
  • 敏感操作(签名、部署到主网)需要明确的用户批准
  • 服务器遵循安全区块链交互的最佳实践

可用工具

账户管理(已实现)

  • 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水龙头的SOL
  • manageStake:创建和管理质押账户
  • getValidators:获取验证者信息

区块链数据检查(计划)

  • getBlock:根据槽位号获取区块详细信息
  • getBlockProduction:获取区块生产统计信息
  • getRecentBlockhash:获取带有费用计算器的最近区块哈希
  • getEpochInfo:获取当前纪元信息
  • getInflationRate:获取当前通胀率

日志与监控(计划)

  • getLogs:流式传输并过滤交易日志
  • getProgramLogs:监控程序执行日志

开发

# 在开发模式下运行(自动重载)
npm run dev

# 运行测试(包括针对开发网的集成测试)
npm test

# 检查代码
npm run lint

设置测试环境

测试套件包括针对Solana开发网的集成测试。要设置测试环境:

  1. 安装Solana CLI:遵循官方安装说明

  2. 生成测试密钥对

    mkdir -p ~/solana-web3js-tests
    solana-keygen new --force --no-bip39-passphrase -o ~/solana-web3js-tests/test-keypair.json
    
  3. 用开发网SOL资助测试密钥对

    solana airdrop 1 $(solana address -k ~/solana-web3js-tests/test-keypair.json) --url devnet
    
  4. 验证余额

    solana balance -k ~/solana-web3js-tests/test-keypair.json --url devnet
    

测试套件将自动使用此密钥对进行针对开发网的集成测试。

项目结构

  • src/index.ts:主要入口点(已实现)
  • src/solana-server.ts:核心服务器实现(已实现)
  • src/core/connection-manager.ts:Solana连接管理(已实现)
  • src/transport/:传输层实现
    • src/transport/stdio.ts:标准I/O传输(已实现)
    • 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:日志系统(已实现)

扩展服务器

此服务器设计为可扩展。要添加新功能:

  1. tools目录下的适当文件中创建一个新工具
  2. solana-server.ts中注册该工具
  3. 使用单元测试和集成测试测试该工具

贡献

欢迎贡献!请随时提交Pull Request。

许可证

MIT