{
  "$schema": "https://static.modelcontextprotocol.io/schemas/mcp-server-card/v1.json",
  "version": "1.0",
  "protocolVersion": "2025-06-18",
  "serverInfo": {
    "name": "sqd-portal-mcp-server",
    "title": "SQD",
    "version": "0.8.0"
  },
  "description": "Explore live and historical blockchain data across Ethereum, Base, Solana, Bitcoin, Tron, Polkadot, Hyperliquid, and other supported networks.",
  "iconUrl": "https://sqd.dev/brand/Symbol_bl-bg.svg",
  "documentationUrl": "https://docs.sqd.dev/en/ai/mcp-server",
  "websiteUrl": "https://sqd.dev/portal/",
  "transport": {
    "type": "streamable-http",
    "endpoint": "https://portal.sqd.dev/mcp"
  },
  "capabilities": {
    "tools": {
      "listChanged": true
    },
    "resources": {
      "listChanged": true
    }
  },
  "authentication": {
    "required": false
  },
  "instructions": "Use this server to read blockchain data: contract event history, wallet activity, token\ntransfers, DEX trades, Solana instructions, Bitcoin transactions, and Hyperliquid fills.\nStart with portal_list_networks to find the network slug, then query the family-specific\ntool (portal_evm_*, portal_solana_*, portal_bitcoin_*, portal_hyperliquid_*).\n\nConnecting: POST JSON-RPC to the endpoint above. The Streamable HTTP transport requires the\nrequest to accept both media types, so send\n`Accept: application/json, text/event-stream`. A request that names only application/json,\nor sends no Accept header, is answered 406 Not Acceptable and the handshake fails there.\nGET on the endpoint is 405; the transport is POST only. No API key is needed.\n\nIt does not reconstruct contract state: there is no balance-at-block or balanceOf lookup,\nand no transaction signing or submission. For those, use an RPC node.\n\nThe same data is available over plain HTTP; see https://sqd.dev/openapi.json.\nA second SQD MCP server, https://docs.sqd.dev/mcp, searches the documentation instead of the\nchain data. Both are listed at https://sqd.dev/developers/#mcp.",
  "tools": [
    "dynamic"
  ],
  "resources": [
    "dynamic"
  ],
  "prompts": []
}