使用说明
Solana智能MCP服务器
一个综合的MCP服务器,将1001个Solana术语表术语与实时区块链数据相结合。16种工具,涵盖术语查找、模糊/语义搜索、基于图的概念探索、实时钱包余额、代币价格、交易分析、地址分类和掉期模拟。完全支持i18n(🇺🇸 🇧🇷 🇪🇸).
建于 @stbr/solana-glossary, @solana/web3.js,以及 Jupiter Lite API.
里面有什么
| 特性 | 描述 |
|---|---|
| 16工具 | 9个术语表+7个实时Solana(见下面的完整列表) |
| 模糊搜索 | Levenshtein+Dice系数用于拼写错误容忍匹配 |
| 语义搜索 | 自然语言查询的TF-IDF+余弦相似度 |
| 实时区块链 | SOL/代币余额、交易历史、通过Helius RPC的地址分类 |
| DeFi集成 | 通过Jupiter实时代币价格和掉期模拟 |
| 知识图谱 | 1200多个交叉引用上的BFS/DFS遍历 |
| 代码示例 | 实用的Solana关键术语代码片段 |
| 24个已知程序 | 系统、SPL、DeFi、NFT和基础设施程序标识 |
| 国际化 | 每个术语表工具都支持 en, pt,以及 es |
快速开始
安装并运行
git clone https://github.com/lamericano/Solana-Glossary-MCP-Server.git
cd Solana-Glossary-MCP-Server
npm install
npm run build
添加到您的MCP客户端
克劳德(claude_desktop_config.json 或 .claude/mcp.json)
{
"mcpServers": {
"solana-glossary": {
"command": "node",
"args": ["/absolute/path/to/Solana-Glossary-MCP-Server/dist/server.js"]
}
}
}
反重力(.gemini/settings.json)
{
"mcpServers": {
"solana-glossary": {
"command": "node",
"args": ["/absolute/path/to/Solana-Glossary-MCP-Server/dist/server.js"]
}
}
}
开发(带自动重新加载)
npm run dev
MCP检查员(目视调试)
npm run inspector
全部16个工具
术语表工具(9)
| 工具 | 说明 |
|---|---|
lookup_term |
按ID、姓名或别名查找。包括代码示例、标签和模糊回退建议 |
search_glossary |
对1001个术语进行全文搜索,并对结果进行排名 |
suggest_terms |
拼写错误或部分查询的模糊建议(Levenshtein+Dice) |
semantic_search |
基于TF-IDF余弦相似度的自然语言搜索 |
list_category |
按类别浏览术语(14个可用) |
explain_concept |
深度概念探索的DFS图遍历 |
get_learning_path |
BFS两个概念之间的最短路径 |
compare_terms |
2-5个术语的并排比较 |
random_term |
随机术语发现和测验生成 |
Solana实时工具(7)
| 工具 | 说明 |
|---|---|
get_wallet_balance |
SOL余额+通过Jupiter兑换美元 |
get_token_balance |
持有美元价值的SPL代币 |
get_token_price |
实时代币价格(14个已知代币+任何造币厂地址) |
get_recent_transactions |
带有状态和时间戳的交易历史记录 |
explain_transaction |
使用程序标识解析和解码事务 |
what_is_this_address |
对任何地址进行分类(钱包、程序、代币制造、赌注、投票) |
simulate_swap |
木星交换模拟,包括路线细节和价格影响 |
工具示例
lookup_term --通过代码示例增强
Input: { term: "pda" }
📖 **Program Derived Address (PDA)**
An account address derived deterministically from a program ID...
🏷️ Category: programming-model
🔤 Aliases: PDA
🏷️ Tags: accounts, security, anchor, seeds
💡 **Use case:** Deterministic account addresses derived from seeds — no private key needed
📝 **Code Example:**
const [pda, bump] = PublicKey.findProgramAddressSync(
[Buffer.from("user"), wallet.toBuffer()],
programId
);
🔗 Related Terms:
• Seeds: Byte arrays used as inputs to derive a PDA...
使用i18n(locale: "pt"):
Input: { term: "pda", locale: "pt" }
📖 **Endereço Derivado de Programa (PDA)**
Um endereço de conta derivado deterministicamente de um ID de programa
e um conjunto de seeds, sem necessidade de uma chave privada correspondente.
🏷️ Categoria: programming-model
🌐 Idioma: Português
suggest_terms --模糊匹配
Input: { query: "valdator" }
💡 **Suggestions for "valdator"** (3 matches):
1. **Validator** (89% match)
A node that validates transactions and produces blocks...
2. **Validator Client** (62% match)
Software that runs on validator hardware...
semantic_search --自然语言
Input: { query: "how does staking work on solana?" }
🧠 **Semantic Search Results** (5 matches):
1. **Staking** [core-protocol] — 82% relevance
2. **Stake Account** [core-protocol] — 71% relevance
3. **Delegation** [core-protocol] — 65% relevance
get_wallet_balance --实时SOL余额
Input: { address: "FhVd...2G8R" }
💰 **Wallet Balance**
• Address: FhVd...2G8R
• SOL: 12.5000 ($2,125.00 @ $170.00/SOL)
• Lamports: 12,500,000,000
simulate_swap --木星交换模拟
Input: { inputToken: "SOL", outputToken: "USDC", amount: 1 }
🔄 **Swap Simulation** (read-only, no execution)
• Input: 1 SOL
• Output: ~170.25 USDC
• Minimum received: 169.40 USDC
• Rate: 1 SOL = 170.25 USDC
• Price impact: 0.0012%
• Slippage: 0.50%
🗺️ **Route** (1 step):
100% → Raydium AMM
⚠️ This is a simulation only. No tokens were swapped.
建筑
src/
├── server.ts # MCP server — wires 16 tools, resources, prompts
├── graph.ts # BFS/DFS graph engine on term cross-references
├── i18n-resolver.ts # Locale resolution with caching
├── utils/
│ ├── config.ts # RPC + Jupiter API config
│ ├── format.ts # SOL/USD formatters, address shortener
│ └── fuzzy.ts # Levenshtein + Dice coefficient engine
├── services/
│ ├── solana-rpc.ts # @solana/web3.js wrapper (balance, tokens, TX)
│ ├── jupiter.ts # Jupiter Lite API (prices, swap quotes)
│ └── embeddings.ts # TF-IDF semantic search engine
├── data/
│ ├── known-programs.ts # 24 known Solana program IDs
│ └── glossary-index.ts # Code examples + tag system
├── tools/
│ ├── lookup.ts # lookup_term (enhanced)
│ ├── search.ts # search_glossary
│ ├── category.ts # list_category
│ ├── explain.ts # explain_concept (DFS)
│ ├── learning-path.ts # get_learning_path (BFS)
│ ├── compare.ts # compare_terms
│ ├── random.ts # random_term
│ ├── glossary/
│ │ ├── suggest.ts # suggest_terms (fuzzy)
│ │ └── semantic-search.ts # semantic_search (TF-IDF)
│ └── solana/
│ ├── wallet.ts # get_wallet_balance
│ ├── tokens.ts # get_token_balance + get_token_price
│ ├── transactions.ts # get_recent_transactions + explain_transaction
│ ├── address-info.ts # what_is_this_address
│ └── swap.ts # simulate_swap
└── resources/
└── index.ts # URI-based resource handlers
测试
npm test
108项测试涵盖:
- 所有16个工具(有效输入、错误处理、i18n、边缘情况)
- 模糊搜索引擎(Levenshtein、Dice、组合评分)
- TF-IDF语义搜索(索引、余弦相似度、排名)
- 图形引擎(BFS、DFS、统计、中心检测)
- i18n解析器(区域设置验证、缓存、回退)
- 资源(所有URI模式、本地化变体)
- 格式实用程序、已知程序、术语表索引、Jupiter服务、RPC服务
- SDK集成(术语计数、类别计数、模式验证)
环境变量
所有服务都使用默认值(不需要配置),但您可以覆盖:
| 变量 | 默认值 | 描述 |
|---|---|---|
SOLANA_RPC_URL |
Helius主网 | Solana RPC端点 |
JUPITER_API_KEY |
包含 | Jupiter API密钥,用于已验证的端点 |
REQUEST_TIMEOUT_MS |
10000 |
HTTP请求超时 |
发展
# Type-check
npm run lint
# Build
npm run build
# Run in dev mode (auto-reload)
npm run dev
# Visual debugging with MCP Inspector
npm run inspector
# Run tests
npm test
技术栈
| 技术 | 角色 |
|---|---|
| TypeScript | 主要语言 |
| @modelcontextprotocol/sdk | MCP官方sdk(v1.12+) |
| @stbr/solana术语表 | 术语表数据层(1001个术语) |
| @solana/web3.js | solana区块链交互 |
| Jupiter Lite API | 代币价格和掉期模拟 |
| Zod | 输入验证 |
| tsup | Bundler(ESM) |
| Vitest | 测试框架(108个测试) |
| Node.js 20+ | 运行时 |
