这是一个模型上下文协议(MCP)服务器,使像Claude这样的AI助手能够从头到尾开发和部署Solana智能合约。该服务器充当AI语言模型与Solana区块链之间的桥梁,提供了一个标准化的接口用于区块链交互。
重要更新:此项目正在从Solana web3.js v1.x迁移到v2.0,以利用改进的性能、更好的类型安全性和现代函数式编程模式。详情请参阅迁移计划。
模型上下文协议(MCP)是一个开放标准,允许AI助手在安全、受控的方式下访问外部工具和数据源。此服务器实现了MCP规范,向AI助手暴露Solana区块链功能。
此MCP服务器为AI助手提供了以下能力:
服务器公开了三种类型的MCP能力:
所有区块链交互均通过@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配置文件中添加以下内容:
在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"]
}
}
}
重启Claude Desktop
您现在可以要求Claude执行与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水龙头的SOLmanageStake:创建和管理质押账户getValidators:获取验证者信息getBlock:根据槽位号获取区块详细信息getBlockProduction:获取区块生产统计信息getRecentBlockhash:获取带有费用计算器的最近区块哈希getEpochInfo:获取当前纪元信息getInflationRate:获取当前通胀率getLogs:流式传输并过滤交易日志getProgramLogs:监控程序执行日志# 在开发模式下运行(自动重载)
npm run dev
# 运行测试(包括针对开发网的集成测试)
npm test
# 检查代码
npm run lint
测试套件包括针对Solana开发网的集成测试。要设置测试环境:
安装Solana CLI:遵循官方安装说明
生成测试密钥对:
mkdir -p ~/solana-web3js-tests
solana-keygen new --force --no-bip39-passphrase -o ~/solana-web3js-tests/test-keypair.json
用开发网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
测试套件将自动使用此密钥对进行针对开发网的集成测试。
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:日志系统(已实现)此服务器设计为可扩展。要添加新功能:
tools目录下的适当文件中创建一个新工具solana-server.ts中注册该工具欢迎贡献!请随时提交Pull Request。
MIT