这是一个通过 Cline 提供全面访问 Solana 区块链数据的 Model Context Protocol (MCP) 服务器。该服务器实现了广泛的 Solana RPC 方法,使得可以直接通过自然语言对话查询区块链信息。
Solana MCP 服务器支持两种操作模式:
用于与 Claude Desktop 和其他 MCP 客户端集成:
solana-mcp-server stdio # 或者:solana-mcp-server
用于 HTTP API 访问和与 Web 应用程序集成:
# 在默认端口 3000 上运行
solana-mcp-server web
# 在自定义端口上运行
solana-mcp-server web --port 8080
Web 服务端点:
POST /api/mcp - MCP JSON-RPC APIGET /health - 健康检查GET /metrics - Prometheus 指标🚀 通过一个命令安装 Solana MCP 服务器以供 Claude Desktop 使用:
curl -fsSL https://raw.githubusercontent.com/opensvm/solana-mcp-server/main/scripts/install.sh | bash
这将:
替代安装方法:
# 使用 wget
wget -qO- https://raw.githubusercontent.com/opensvm/solana-mcp-server/main/scripts/install.sh | bash
# 手动下载并运行
curl -fsSL https://raw.githubusercontent.com/opensvm/solana-mcp-server/main/scripts/install.sh -o install.sh
chmod +x install.sh
./install.sh
安装后,请重启 Claude Desktop 并开始直接查询 Solana 数据!
solana-mcp-server-linux-amd64solana-mcp-server-macos-amd64solana-mcp-server-macos-arm64solana-mcp-server-windows-amd64.exechmod +x solana-mcp-server-*
CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/claude"
mkdir -p "$CONFIG_DIR"
echo "{\"mcpServers\":{\"solana\":{\"command\":\"$PWD/solana-mcp-server-*\",\"env\":{\"SOLANA_RPC_URL\":\"https://api.mainnet-beta.solana.com\"}}}}" > "$CONFIG_DIR/config.json"
git clone https://github.com/opensvm/solana-mcp-server.git
cd solana-mcp-server
cargo build --release
然后使用 target/release/solana-mcp-server 的路径来配置 Claude Desktop。
🚀 适用于所有平台的一行脚本部署:
# 本地开发
./scripts/deploy-local.sh
# Docker 容器
./scripts/deploy-docker.sh
# Kubernetes 自动扩展
./scripts/deploy-k8s.sh
# AWS Lambda
./scripts/deploy-lambda.sh
# Google Cloud Functions
./scripts/deploy-gcf.sh
# Vercel Edge Functions
./scripts/deploy-vercel.sh
请参阅 scripts/README.md 获取每个部署选项的详细使用说明和需求。
Solana MCP 服务器支持动态扩展以高效处理变化负载:
/metrics 端点暴露/health 端点服务器现在同时支持传统的标准输入输出传输和 HTTP JSON-RPC 模式:
# 作为标准输入输出传输运行(默认)
solana-mcp-server stdio
# 作为 Web 服务运行
solana-mcp-server web --port 3000
API 端点:
POST /api/mcp - 完整的 MCP JSON-RPC 2.0 APIGET /health - 带有功能信息的健康检查GET /metrics - Prometheus 指标solana_mcp_rpc_requests_total - 按方法和网络统计的总 RPC 请求solana_mcp_rpc_request_duration_seconds - 请求延迟直方图solana_mcp_rpc_requests_failed_total - 按错误类型统计的失败请求# 使用 Kubernetes 自动扩展部署
kubectl apply -f k8s/deployment.yaml
kubectl apply -f k8s/hpa.yaml
# 查看自动扩展状态
kubectl get hpa solana-mcp-server-hpa --watch
# 访问指标
kubectl port-forward svc/solana-mcp-service 8080:8080
curl http://localhost:8080/metrics
📊 完整的自动扩展文档 | 🐳 Docker 扩展指南
getAccountInfo: 返回提供的 Pubkey 账户的所有相关信息
pubkey(字符串)- 要查询的账户的 Pubkey,以 base-58 编码的字符串形式getMultipleAccounts: 返回一组 Pubkeys 的账户信息
pubkeys(字符串数组)- 要查询的 Pubkeys 列表getProgramAccounts: 返回由提供的程序 Pubkey 拥有的所有账户
programId(字符串)- 要查询的程序 PubkeygetBalance: 返回一个账户的 SOL 余额
pubkey(字符串)- 要查询的账户的 PubkeygetLargestAccounts: 返回按 lamports 余额排序的 20 个最大账户
filter(字符串)- 按账户类型过滤(circulating|nonCirculating)getMinimumBalanceForRentExemption: 返回租金豁免所需的最小余额
dataSize(整数)- 账户数据大小(字节)getBlock: 返回已确认区块的身份和交易信息
slot(整数)- 要查询的槽位编号getBlocks: 返回两个槽位之间的已确认区块列表
start_slot(整数),end_slot(整数)getBlocksWithLimit: 返回从给定槽位开始的已确认区块列表
start_slot(整数),limit(整数)getBlockTime: 返回一个区块的估计生产时间
slot(整数)getBlockHeight: 返回当前区块高度
getBlockCommitment: 返回特定区块的承诺
slot(整数)getBlockProduction: 返回最近的区块生产信息
identity(字符串)- 验证者身份,range(对象)getSlot: 返回节点正在处理的当前槽位
commitment(字符串)- 承诺级别getSlotLeaders: 返回给定槽位范围内的槽位领导者
startSlot(整数),limit(整数)getFirstAvailableBlock: 返回最低的仍可用的已确认区块
getGenesisHash: 返回账本的创世哈希
getHealth: 返回节点当前的健康状况
getVersion: 返回当前 Solana 版本
getIdentity: 返回当前节点的身份公钥
getClusterNodes: 返回有关所有集群节点的信息
getLeaderSchedule: 返回一个时期的领导者计划
slot(整数),identity(字符串)getVoteAccounts: 返回所有投票账户的信息和质押
votePubkey(字符串),配置参数getEpochInfo: 返回当前时期的有关信息
getEpochSchedule: 返回时期计划信息
getInflationGovernor: 返回当前通胀治理者
getInflationRate: 返回当前时期的特定通胀值
getInflationReward: 返回一系列地址的通胀奖励
addresses(字符串数组),可选 epoch(整数)getTokenAccountBalance: 返回 SPL Token 账户的代币余额
accountAddress(字符串)- 要查询的代币账户getTokenAccountsByDelegate: 返回由批准的委托人拥有的所有代币账户
delegateAddress(字符串)getTokenAccountsByOwner: 返回由代币所有者拥有的所有代币账户
ownerAddress(字符串)getTokenLargestAccounts: 返回某种代币类型的 20 个最大账户
mint(字符串)- 要查询的代币铸造getTokenSupply: 返回某种 SPL Token 类型的总供应量
mint(字符串)- 要查询的代币铸造getTransaction: 返回已确认交易的详细信息
signature(字符串)- 交易签名getSignaturesForAddress: 返回地址的交易签名
address(字符串),可选 limit(整数)getSignatureStatuses: 返回一系列签名的状态
signatures(字符串数组)getTransactionCount: 返回当前的交易计数
simulateTransaction: 模拟发送交易
transaction(字符串)- 编码的交易sendTransaction: 发送交易
transaction(字符串)- 已签名编码的交易getFeeForMessage: 获取消息的费用
message(字符串)- 编码的消息getLatestBlockhash: 返回最新的区块哈希
isBlockhashValid: 返回一个区块哈希是否仍然有效
blockhash(字符串)getStakeMinimumDelegation: 返回质押的最小委托
getSupply: 返回有关当前供应的信息
requestAirdrop: 请求向一个 Pubkey 分发 lamports
pubkey(字符串),lamports(整数)配置完成后,您可以通过 Cline 中的自然语言与 Solana 区块链进行交互。以下是一些示例查询:
该项目定期使用 cargo audit 进行安全审计。我们的 CI/CD 管道会自动扫描漏洞并生成报告。
docs/security-audit.md 中提供如需详细的网络安全信息、漏洞评估和风险分析,请参阅:
📋 安全审计文档
要查看包括架构、部署指南和完整的 API 参考在内的综合文档,请参阅:
📚 完整的文档
🚀 开发者入门指南 - 如果您是新加入项目,请从此处开始!
SOLANA_RPC_URL:(可选)使用的 Solana RPC 端点。如果没有指定,默认为 "https://api.mainnet-beta.solana.com"。SOLANA_COMMITMENT:(可选)承诺级别(processed|confirmed|finalized)。默认为 "confirmed"。SOLANA_PROTOCOL_VERSION:(可选)MCP 协议版本。默认为最新版本。cargo build
cargo run
MIT 许可证