The Portal MCP server is experimental. Available tools and behavior may change.
Connect the Portal MCP server to your favorite AI coding clients.
MCP (Model Context Protocol) is an open-source standard for connecting AI applications to external systems. The Portal MCP server gives your agent direct access to blockchain data across 225+ datasets. Discover datasets, query transactions and logs, analyze wallets, and compare chains.
Connect Portal MCP
- MCP endpoint:
https://portal.sqd.dev/mcp
- Authentication: Free, no API keys required
Claude Code
Claude
Cursor
VS Code
claude mcp add --transport http sqd-portal https://portal.sqd.dev/mcp
Test the connection:See the Claude Code documentation for more details.Custom connectors are available on all Claude plans. Free users are limited to one custom connector. For Team and Enterprise plans, only Owners can add connectors.
Add the Portal MCP server to Claude
- Navigate to the Connectors page in Claude settings.
- Select Add custom connector.
- Add the Portal MCP server:
- Name:
Portal
- URL:
https://portal.sqd.dev/mcp
- Select Add.
Access the MCP server in your chat
- When using Claude, select the attachments button (the plus icon).
- Select the Portal MCP server.
- Ask Claude questions about blockchain data from Portal API.
See the Model Context Protocol documentation for more details.Open MCP settings
- Use Command + Shift + P (Ctrl + Shift + P on Windows) to open the command palette.
- Search for “Open MCP settings”.
- Select Add custom MCP. This opens the
mcp.json file.
Configure the Portal MCP server
In mcp.json, add:{
"mcpServers": {
"sqd-portal": {
"url": "https://portal.sqd.dev/mcp"
}
}
}
Test the connection
In Cursor’s chat, ask “What tools do you have available?” Cursor should show the Portal MCP server as an available tool.
See the Cursor documentation for more details.Create a .vscode/mcp.json file and add:{
"servers": {
"sqd-portal": {
"type": "http",
"url": "https://portal.sqd.dev/mcp"
}
}
}
See the VS Code documentation for more details.
25 public tools and 3 debug helpers across EVM, Solana, Bitcoin, Substrate, and Hyperliquid. All queryable in natural language. Every tool follows the same description style, input schema, response envelope, and routing metadata, and every response includes structured follow-up hints and optional interactive panels for MCP-aware clients.
Discovery & shared
| Tool | Description |
|---|
portal_list_networks | Find the right network or alias across EVM, Solana, Bitcoin, Substrate, and Hyperliquid. First stop when you’re not sure which dataset to query. |
portal_get_network_info | Check if a network is indexed, fresh, caught up, or behind, and see which tables are available. |
portal_get_head | Get just the latest or finalized head block or slot for a network. |
portal_resolve_entity | Resolve token symbols, contract aliases, pool IDs, protocol names, and Hyperliquid coins into query-ready addresses and filters before building a query. |
portal_get_recent_activity | Cross-VM recent-activity feed with chronological paging. Simplest answer to “what’s been happening on X lately?”. |
portal_get_wallet_summary | One-call wallet analysis across supported VMs. Overview, activity, and assets. |
portal_get_time_series | Chart-ready metric buckets over time with optional compare-to-previous and EVM contract grouping. |
EVM
| Tool | Description |
|---|
portal_evm_query_transactions | Query raw EVM transactions with optional logs, traces, and state-diff context via include flags. |
portal_evm_query_logs | Query raw EVM logs with address/topic filters and optional inline decoding. |
portal_evm_query_token_transfers | Token-transfer activity on EVM without needing to remember the Transfer event signature. |
portal_evm_get_analytics | Network-wide EVM snapshot with ranked top contracts and compact overview metrics. |
portal_evm_get_contract_activity | Contract-centric summary: recent interactions, unique callers, and optional event activity. |
portal_evm_get_contract_deployment | Look up the deployment block, transaction, and deployer for any EVM contract address. |
portal_evm_get_ohlc | Experimental. DEX OHLC candles plus a recent-trade tape from Uniswap v2/v3/v4 and Aerodrome Slipstream swaps. |
Solana
| Tool | Description |
|---|
portal_solana_query_transactions | Query raw Solana transactions with optional balances, token balances, rewards, logs, and instruction context. |
portal_solana_query_instructions | Query raw instructions with program, account, and Anchor-discriminator filters. |
portal_solana_get_analytics | Solana throughput, fee, wallet activity, and optional top-program snapshot. |
Bitcoin
| Tool | Description |
|---|
portal_bitcoin_query_transactions | Query raw Bitcoin transactions with optional inline inputs and outputs. |
portal_bitcoin_get_analytics | Bitcoin block cadence, fees, SegWit/Taproot adoption, and address activity snapshot. |
Hyperliquid
| Tool | Description |
|---|
portal_hyperliquid_query_fills | Query trade fills with PnL, fees, and routing. |
portal_hyperliquid_get_analytics | Trading volume, top coins, and trader rankings. |
portal_hyperliquid_get_ohlc | OHLC candles for Hyperliquid markets. |
Substrate
| Tool | Description |
|---|
portal_substrate_query_calls | Query Polkadot-, Kusama-, and other Substrate-style extrinsic calls with pallet and method filters. |
portal_substrate_query_events | Query Substrate events emitted by runtime pallets. |
portal_substrate_get_analytics | Substrate network-wide snapshot: block cadence, extrinsic volume, and top pallets. |
Debug
| Tool | Description |
|---|
portal_debug_query_blocks | Inspect raw blocks across VMs for schema debugging. |
portal_debug_resolve_time_to_block | Resolve a timestamp to a block or slot for any supported network. |
portal_debug_hyperliquid_query_replica_commands | Low-level access to Hyperliquid replica commands (orders, cancels, transfers, leverage updates). |
Response size and pagination
The MCP query tools return a bounded page of results plus a _pagination.next_cursor. The page is sized to fit an AI context window, so one call returns a preview rather than the whole range. Pass next_cursor back to fetch the next page (or tighten filters) until you have read everything.
Heavy ranges are not hard-rejected. A wide request, such as a large Solana slot range, returns data together with a soft notice that results are capped by limit and the query may still be heavy. There is no fixed slot-range guard that refuses the query.
The underlying Stream API behaves differently: it has no per-response page cap and streams the full result at HTTP 200 (bounded only server-side), and you paginate it by resuming from lastBlock + 1 rather than a cursor. The MCP’s paging is a separate convenience layer for AI clients, not a limit on the HTTP API.
Known limitations
The MCP server may struggle with memory issues when handling large volumes of data, especially on high-TPS chains like Solana and Hyperliquid. Chunked fetching and conservative default limits mitigate this, but large unfiltered queries can still cause timeouts or incomplete results. Always use filters and keep block ranges tight on dense chains.