内容
# SQD 门户 MCP 服务器
[](https://glama.ai/mcp/servers/subsquid-labs/portal-mcp-server)
区块链数据查询的薄 MCP 包装器,围绕 [SQD 门户 API](https://portal.sqd.dev) 。
该服务器不索引链本身。它验证用户输入,将其映射到门户请求,并返回 MCP 友好的响应。
## 当前公共界面
- `25` 个公共工具
- `3` 个高级/调试工具
- 公共参数使用 `network`
- 发现过滤器使用 `vm`
- `v0.7.9` 中没有旧工具别名
原始查询工具默认使用紧凑的响应。只有在需要更大的负载时,才请求 `response_format: "full"` 。
实体问题可以使用 `portal_resolve_entity` 。它将 EVM 代币符号/地址、EVM 合约别名、池标识符、协议名称和 Hyperliquid 币名称解析为查询就绪的过滤器,同时保持模糊匹配明确。
代币符号解析和代币元数据来自开放的代币列表数据,而不是内置的代币地址常量。当代币列表数据不可用、过时或不支持某个网络时,响应中会包含明确的通知。
钱包问题应从 `portal_get_wallet_summary` 开始。它默认返回 `fund_flow` ,包括流入/流出、资产流动、对手方、最大观察到的流动和下一个证据枢纽,然后进行原始工具钻取。
## 工具组
发现:
- `portal_list_networks`
- `portal_get_network_info`
- `portal_get_head`
- `portal_resolve_entity`
跨链便利:
- `portal_get_recent_activity`
- `portal_get_wallet_summary`
- `portal_get_time_series`
EVM:
- `portal_evm_query_transactions`
- `portal_evm_query_logs`
- `portal_evm_query_token_transfers`
- `portal_evm_get_contract_deployment`
- `portal_evm_get_contract_activity`
- `portal_evm_get_analytics`
- `portal_evm_get_ohlc`
Solana:
- `portal_solana_query_transactions`
- `portal_solana_query_instructions`
- `portal_solana_get_analytics`
比特币:
- `portal_bitcoin_query_transactions`
- `portal_bitcoin_get_analytics`
Substrate:
- `portal_substrate_query_events`
- `portal_substrate_query_calls`
- `portal_substrate_get_analytics`
Hyperliquid:
- `portal_hyperliquid_query_fills`
- `portal_hyperliquid_get_analytics`
- `portal_hyperliquid_get_ohlc`
高级/调试:
- `portal_debug_query_blocks`
- `portal_debug_resolve_time_to_block`
- `portal_debug_hyperliquid_query_replica_commands`
## 支持的数据
- 门户索引的 EVM 网络,包括 Base、Ethereum、Optimism、Arbitrum、Monad、Hyperliquid EVM 等
- Solana 主网
- 比特币主网
- Hyperliquid 填充和副本命令
- 门户索引的 Substrate 网络
Substrate 支持目前仅限于历史数据。它没有实时的尾部。
## 响应形状
大多数工具在 MCP `structuredContent` 和旧客户端的紧凑 JSON 文本回退中返回相同的信封。信封包含一个正常的正文和共享的元数据,例如:
- `answer`
- `display`
- `next_steps`
- `investigation`
- `_freshness`
- `_coverage`
- `_pagination`
- `_ordering`
`investigation` 是代理的紧凑证据指南:它标识主要结果路径、有界窗口、有用的枢纽字段(如地址或交易哈希)、后续过滤器以及在将结果视为完整之前的结果限制。
当响应使用估计、部分、采样、限制或分页数据时,顶级答案和元数据会披露。安全的分页后续操作包括具有明确光标参数的可执行工具调用元数据;无法安全重建的建议被标记为不可执行。
面向图表的工具还会返回图表和表格描述符,以便 MCP 客户端或 LLM 可以在不逆向工程负载的情况下渲染它们。
服务器不提供自己的前端。它返回结构化数据和渲染提示,供客户端使用。
## 安装
```bash
npm install
npm run build
```
## 运行
stdio:
```bash
npm start
```
HTTP:
```bash
npm run start:http
```
## 开发者发现
服务器为客户端构建者公开了一个结构化的工具选择指南:
- MCP 资源 `sqd://tools` 返回分组的工具元数据、示例、起点和集成说明。
- MCP 资源 `sqd://tools/{name}` 返回一个工具的指南条目,例如 `sqd://tools/portal_get_time_series` 。
- HTTP `GET /tools` 或 `GET /tools.json` 返回带有输入模式的实时工具目录以及相同的结构化指南元数据。
## Codex 插件
Codex 插件包装器位于 `plugins/portal` ,默认使用托管的 MCP 端点 `https://portal.sqd.dev/mcp` 。
从此仓库本地市场安装:
```bash
codex plugin marketplace add .
codex plugin add portal@sqd
```
安装后打开一个新的 Codex 线程。首次使用提示包括 Hyperliquid BTC 永续合约填充、最近的 Base 交易量和 Base 上最大的 USDC 发送者。
## Claude Code 插件
Claude Code 插件使用相同的托管 MCP 端点和相同的公共选择器:
```bash
claude plugin marketplace add subsquid-labs/portal-mcp-server
claude plugin install portal@sqd
```
安装后打开一个新的 Claude Code 会话,以便加载 SQD MCP 工具。
## Claude 桌面版
在 `claude_desktop_config.json` 中添加类似这样的条目:
```json
{
"mcpServers": {
"SQD": {
"command": "node",
"args": ["/absolute/path/to/sqd-portal-mcp-server/dist/index.js"]
}
}
}
```
## 使用说明
- 如果您不知道确切的网络名称,请从 `portal_list_networks` 开始。
- 如果您需要最近的索引状态,请先使用 `portal_get_network_info` 或 `portal_get_head` 。
- 如果问题很广泛,请先使用 `portal_get_recent_activity` 、 `portal_get_wallet_summary` 或 `portal_get_time_series` ,然后再进行原始查询。
- 时间窗口接受紧凑和自然的措辞,例如 `30m` 、 `past 30 minutes` 、 `in the past 1h` 、 `in last 38 mins` 、 `last hour` 或 `30 minutes ago` 。
- 仅当您实际需要蜡烛形输出时,才使用 `portal_evm_get_ohlc` 和 `portal_hyperliquid_get_ohlc` 。
- 对于大型或探索性查询,请优先使用 `response_format: "compact"` ,除非您需要完整的记录形状。
## HTTP 部署说明
HTTP 模式在 `/health` 处公开健康状态,在 `/tools` 和 `/tools.json` 处公开只读工具发现。
- 设置 `MCP_HTTP_BEARER_TOKEN` 以要求 `Authorization: Bearer <token>` 进行 `POST /` 和 `POST /mcp` 。
- `/health` 和只读 `GET /tools` / `GET /tools.json` 仍然是公开的。
- 在生产环境中设置 `MCP_CURSOR_SECRET` ,以便分页光标使用部署特定的密钥签名。本地开发使用一个确定的备用方案,以便于使用。
有用的环境变量:
- `MCP_HTTP_BEARER_TOKEN` 保护 HTTP MCP POST 请求
- `MCP_CURSOR_SECRET` 签名分页光标
## 测试
```bash
npm test
npm run test:tools
npm run test:routing
npm run test:substrate
npm run test:timestamps
npm run test:plugin
npm run test:conversations
npm run test:negative
npm run test:quality
npm run test:ci
```
## 许可证
[MIT](LICENSE)