一个模型上下文协议(MCP)服务器,使Claude能够通过自然语言对话访问、分析和可视化Solana区块链数据。
git clone https://github.com/yourusername/GOATsolana-mcp.git
cd GOATsolana-mcp
npm install
# 或
pnpm install
npm run build
# 或
pnpm build
.env文件,包含以下环境变量(或从.env.example复制):BIRDEYE_API_KEY=your_birdeye_api_key
COINGECKO_API_KEY=your_coingecko_api_key
ALLORA_API_KEY=your_allora_api_key
HELIUS_RPC_URL=your_helius_rpc_url
DEFAULT_WALLET_ADDRESS=optional_default_wallet_address
claude_desktop_config.json文件:~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json添加以下内容,将/path/to/GOATsolana-mcp替换为您项目的绝对路径:
{
"mcpServers": {
"solana-viz-mcp": {
"command": "node",
"args": ["--input-type=module", "/path/to/GOATsolana-mcp/build/index.js"],
"env": {
"BIRDEYE_API_KEY": "your_birdeye_api_key",
"COINGECKO_API_KEY": "your_coingecko_api_key",
"ALLORA_API_KEY": "your_allora_api_key",
"HELIUS_RPC_URL": "your_helius_rpc_url",
"DEFAULT_WALLET_ADDRESS": "optional_default_wallet_address"
}
}
}
}
重要:
--input-type=module标志对于Node.js正确加载ES模块至关重要。如果没有这个标志,即使文件存在,Claude Desktop也会遇到“无法找到模块”的错误。
npm start
该项目使用ES模块(import/export)而不是CommonJS(require/module.exports)。Claude Desktop配置包括--input-type=module标志,这对于Node.js正确加载模块是必不可少的。
当前实现使用了一些GOAT SDK插件的模拟实现。这是因为插件API与代码中预期接口之间的不匹配。在未来更新中,这些模拟将被替换为实际实现的适配器。
set_wallet:设置或更改用于分析的活动钱包地址get_token_data:检索全面的代币信息和指标get_wallet_tokens:分析钱包地址中的代币持有情况get_price_history:获取代币的历史价格数据get_token_pairs:分析跨DEX的交易对get_trending_tokens:识别当前在Solana上流行的代币get_price_prediction:生成代币的AI驱动价格预测get_token_security:评估代币和协议的安全风险generate_sankey_diagram:可视化实体(代币、协议、钱包)之间的流动generate_treemap:使用嵌套矩形可视化分层数据generate_heatmap:可视化各类别的数据强度generate_network_graph:可视化实体之间的关系和连接generate_radar_chart:比较多个实体的多个变量generate_bubble_chart:可视化三维数据(x, y, 大小)generate_temporal_heatmap:可视化时间段内的数据模式generate_donut_chart:可视化部分与整体的关系这里有一些如何使用SolanaViz MCP与Claude的示例:
请将我的钱包地址设置为FtG3emhAqBC8Rr9vdCqTJHxaNNuQVt7B7HvujJrQEj7Y,并分析我持有的代币。
你能告诉我更多关于BONK代币的信息吗?投资它是安全的吗?
目前Solana上的热门代币有哪些?你能展示它们的价格表现吗?
分析我的钱包,并将我的投资组合分配可视化为甜甜圈图。
你对未来24小时内SOL代币的价格预测是什么?
这里是一些使用不同工具时可以期望看到的内容示例:
当你询问像BONK这样的代币时:
BONK代币(地址:DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263)具有以下详情:
📊 市场数据:
• 当前价格:$0.00002981
• 市值:$294,152,890
• 24小时成交量:$26,843,751
• 24小时变化:+7.3%
• 历史最高价:$0.00003241(2024年1月5日)
💰 代币经济学:
• 总供应量:99,508,123,523,595
• 流通供应量:56,123,876,231,175
• 持有人数:842,391个地址
• 前十大持有人控制:47.2%的供应量
🔍 安全分析:
• 跑路风险:低
• 合约审计:通过(Certik)
• 流动性评分:9.2/10
• 社区信任度:高
• 风险评估:中等
当你请求分析钱包持有情况时:
钱包FtG3emhAqBC8Rr9vdCqTJHxaNNuQVt7B7HvujJrQEj7Y包含以下代币:
1. SOL
• 数量:12.45 SOL
• 价值:$1,431.75
• 占投资组合比例:68.2%
2. BONK
• 数量:13,521,340.93 BONK
• 价值:$402.87
• 占投资组合比例:19.2%
3. JTO
• 数量:38.72 JTO
• 价值:$264.15
• 占投资组合比例:12.6%
总投资组合价值:$2,098.77
当请求价格历史时:
过去30天内SOL的价格历史:
日期 | 价格(美元) | 24小时成交量 | 市值
------------|-------------|-------------|-------------
2025-03-15 | $115.32 | $1.42B | $49.73B
2025-03-08 | $109.78 | $1.27B | $47.38B
2025-03-01 | $103.65 | $1.15B | $44.73B
2025-02-22 | $114.21 | $1.33B | $49.27B
2025-02-15 | $95.83 | $0.98B | $41.35B
该代币在过去30天内总体呈上升趋势,尽管期间有些波动,但涨幅达20.3%。
当你询问代币安全性时:
BONK代币(DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263)的安全分析:
✅ 合约分析:
• 未检测到后门函数
• 无代理实现风险
• 无过度所有者权限
• 无异常费用机制
⚖️ 流动性分析:
• 总流动性:$18.52M,分布在5个DEX中
• 最大池:Raydium SOL/BONK,$7.82M
• 流动性集中度评分:8.4/10(分布良好)
🔍 所有权结构:
• 创始人所有权:12%(三年内逐步释放)
• DAO国库:18%
• 社区分配:70%
⚠️ 风险因素:
• 营销代币波动性
• 显著的社会媒体影响价格
• 与整体市场情绪高度相关
🔐 总体安全评分:8.2/10(低风险)
当你请求可视化投资组合分配时:
FtG3emhAqBC8Rr9vdCqTJHxaNNuQVt7B7HvujJrQEj7Y的投资组合分配
╭───────────────────────────╮
/ SOL 68.2% \
/ ████████████████ \
| ████████████████ |
| ████████████████ |
| BONK ████████████████ JTO |
| 19.2% ███ ████████████████ ███ |
\ ███ ████████████████ ███ /
\ ███ ███/
╰───███───────────────────███╯
12.6%
总投资组合价值:$2,098.77
当你请求可视化代币在不同时间框架的表现时:
代币表现热力图(%变化)
| 24h | 7d | 30d | 90d |
-----------+--------+--------+--------+--------|
SOL | +3.2% | +12.5% | +20.3% | +65.7% |
BONK | +7.3% | -3.8% | +41.2% | +18.5% |
JTO | -1.5% | +5.7% | +9.2% | +32.1% |
PYTH | +2.7% | +8.2% | +15.7% | +27.5% |
RENDER | +0.5% | -2.3% | +11.3% | +42.8% |
图例:█ >30% █ 10-30% █ 0-10% █ -10-0% █ <-10%
当你可视化代币关系时:
网络图:Solana DeFi代币关系
┌────────┐
│ SOL │
└────────┘
│
┌──────────────┼──────────────┐
│ │ │
┌─────▼─────┐ ┌─────▼─────┐ ┌─────▼─────┐
│ BONK │ │ USDC │ │ JTO │
└─────┬─────┘ └─────┬─────┘ └─────┬─────┘
│ │ │
┌───▼───┐ ┌───▼───┐ ┌───▼───┐
│ wBTC │ │ ETH │ │ PYTH │
└───────┘ └───────┘ └───────┘
图例:
- 节点大小表示市值
- 边缘粗细表示代币之间的流动性
当你可视化代币流时:
串联图:主要钱包之间代币流(最近7天)
交易所钱包 DeFi协议
┌───────────────────┐ ┌─────────────────────┐
│ │ 12,500 SOL │ │
│ Binance ├───────────────────► Marinade Finance │
│ │ │ │
└───────────────────┘ └─────────────────────┘
│
┌───────────────────┐ │ 9,300 SOL
│ │ 7,800 SOL ┌───────▼─────────────┐
│ Coinbase ├────────────────────► │
│ │ │ Orca Pools │
└───────────────────┘ │ │
└─────────────────────┘
┌───────────────────┐ ▲
│ │ 15,200 SOL │
│ Kraken ├────────────────────────────┘
│ │
└───────────────────┘
以下是获取所需API密钥的方法:
项目结构如下:
src/:MCP服务器的源代码
index.ts:服务器的主要入口点tools/:各种功能工具的实现utils/:实用函数和辅助工具types/:TypeScript类型定义build/:编译后的JavaScript代码(运行npm run build后生成).env:API密钥的环境变量claude_desktop_config.json:Claude Desktop的配置如果您在Claude Desktop中遇到“无法找到模块”错误,请确保:
claude_desktop_config.json中指向您的index.js文件的路径正确args数组中包含--input-type=module标志npm run build重新构建了项目如果工具因API错误而失败:
.env和claude_desktop_config.json中MIT
本项目使用了: