{
  "version": "1.0",
  "protocolVersion": "2025-06-18",
  "serverInfo": {
    "name": "orcalayer",
    "title": "OrcaLayer",
    "version": "0.5.13"
  },
  "description": "Read-only Polymarket smart-money analytics: rankings of profitable traders, wallet profiles and open positions, market search with Smart Money wallet counts, and the Smart Money consensus on a market versus its price. The tools listed here work without a key. An OrcaLayer Premium API key sent as an Authorization: Bearer header adds the Premium tools named in the instructions.",
  "iconUrl": "https://orcalayer.com/icon-512.png",
  "documentationUrl": "https://orcalayer.com/docs/mcp",
  "transport": {
    "type": "streamable-http",
    "endpoint": "https://orcalayer.com/mcp"
  },
  "capabilities": {
    "prompts": {
      "listChanged": false
    },
    "resources": {
      "subscribe": false,
      "listChanged": false
    },
    "tools": {
      "listChanged": false
    }
  },
  "authentication": {
    "required": false,
    "schemes": [
      "bearer"
    ]
  },
  "instructions": "OrcaLayer provides read-only Polymarket smart-money analytics. Tools: a ranking of profitable traders (leaderboard), a wallet's profile and open positions (wallet_overview, wallet_positions), market search with Smart Money wallet counts (markets) and the Smart Money consensus on one market versus its price (market_consensus). Requests that carry an OrcaLayer Premium API key also get recent trades by Smart Money wallets (whale_alerts), the realized PnL ranking over 7 or 30 days (pnl_leaderboard) and markets just proposed, disputed, resolved or reopened (resolution_events). Prompts hold ready-made analyses; resources hold the classification methodology, a glossary and the REST API reference.",
  "tools": [
    {
      "name": "leaderboard",
      "title": "Smart-money leaderboard",
      "description": "Rank Polymarket traders from OrcaLayer's Smart Money set (or all wallets).\n\n    Returns the top traders by lifetime profit, win rate, volume or trade\n    count, optionally within one market category. Per wallet:\n    name, total_pnl (Polymarket's lifetime P&L), market_win_rate with\n    market_wins / market_losses / resolved_markets, profit_factor (capped at\n    99.99, with profit_factor_capped), indexed_volume_usd, indexed_trades,\n    main category, average entry price, open positions and the last trade date.\n    `total` is how many wallets match the filter. A `notes` block defines each\n    field.\n\n    Args:\n        sort: Ranking key: \"pnl\" (default), \"win_rate\", \"volume\" or \"trades\".\n            \"win_rate\" orders by the leaderboard's stored win rate, which is\n            computed differently from the market_win_rate shown, so rows can\n            look out of order by that column.\n        category: Restrict to wallets mainly trading one category: \"Crypto\",\n            \"Politics\", \"Sports\", \"Geopolitics\", \"Economics\" or \"Tech/AI\"\n            (case-insensitive). None = all.\n        filter: \"smart\" (OrcaLayer's Smart Money set, default) or \"all\".\n        limit: How many wallets to return, 1–50 (larger values return 50).\n    ",
      "inputSchema": {
        "properties": {
          "sort": {
            "default": "pnl",
            "enum": [
              "pnl",
              "win_rate",
              "volume",
              "trades"
            ],
            "title": "Sort",
            "type": "string"
          },
          "category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Category"
          },
          "filter": {
            "default": "smart",
            "enum": [
              "smart",
              "all"
            ],
            "title": "Filter",
            "type": "string"
          },
          "limit": {
            "default": 20,
            "title": "Limit",
            "type": "integer"
          }
        },
        "title": "leaderboardArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Smart-money leaderboard",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "wallet_overview",
      "title": "Wallet overview",
      "description": "Summarize one wallet's trading profile and performance.\n\n    Wallet profit tracking for any Polymarket address: lifetime P&L\n    (Polymarket's figure), market_win_rate over resolved markets, a net\n    profit factor, indexed volume and activity, category mix and leaderboard\n    rankings. Accepts a 0x wallet address or an OrcaLayer nickname. Returns a\n    compact summary rather than the full raw record, so it stays readable for\n    heavy wallets. A `notes` block defines each field; market_win_rate has\n    the same basis and value as in the leaderboard tool.\n\n    While the wallet's stats are still being computed server-side, the result\n    is a ``{\"status\": \"computing\", \"retry_after_seconds\": N}`` notice instead of\n    data; N is the number of seconds after which the stats are expected to be\n    ready.\n\n    Args:\n        address: 0x wallet address or OrcaLayer nickname.\n    ",
      "inputSchema": {
        "properties": {
          "address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              }
            ],
            "title": "Address"
          }
        },
        "required": [
          "address"
        ],
        "title": "wallet_overviewArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Wallet overview",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "wallet_positions",
      "title": "Wallet open positions",
      "description": "List a wallet's largest open positions by current value.\n\n    Accepts a 0x wallet address or an OrcaLayer nickname. Returns the\n    positions with the largest current value first, in a compact form, plus a\n    count of how many more are not shown.\n\n    Args:\n        address: 0x wallet address or OrcaLayer nickname.\n        limit: How many positions to return (1–50). The wallet may hold more;\n            the response reports how many were omitted.\n    ",
      "inputSchema": {
        "properties": {
          "address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              }
            ],
            "title": "Address"
          },
          "limit": {
            "default": 15,
            "title": "Limit",
            "type": "integer"
          }
        },
        "required": [
          "address"
        ],
        "title": "wallet_positionsArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Wallet open positions",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "markets",
      "title": "Market search",
      "description": "Search Polymarket markets, optionally where Smart Money wallets cluster.\n\n    Finds markets by topic, slug or URL and shows how many wallets from\n    OrcaLayer's Smart Money set hold each side right now. Returns each\n    market's id, question, YES price, smart_wallets_yes / smart_wallets_no,\n    volume, end date and days left. The counts are wallets, whatever their\n    position size; popular markets have thousands. The dollar split on one\n    market is in the market_consensus tool.\n\n    Args:\n        q: Free-text query; also accepts a Polymarket URL or slug. \"\" browses.\n            Open markets only.\n        category: One of \"Crypto\", \"Politics\", \"Sports\", \"Geopolitics\",\n            \"Economics\", \"Tech/AI\" (case-insensitive). None = all.\n        min_volume: Minimum market volume in USD.\n        min_whales: Minimum number of Smart Money wallets holding a position\n            in the market (either side).\n        limit: How many markets to return, 1–50 (larger values return 50).\n    ",
      "inputSchema": {
        "properties": {
          "q": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              }
            ],
            "default": "",
            "title": "Q"
          },
          "category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Category"
          },
          "min_volume": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Min Volume"
          },
          "min_whales": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Min Whales"
          },
          "limit": {
            "default": 20,
            "title": "Limit",
            "type": "integer"
          }
        },
        "title": "marketsArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Market search",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "market_consensus",
      "title": "Smart-money consensus on a market",
      "description": "Smart-money consensus on one Polymarket market versus its current price.\n\n    Returns how Smart Money wallets are positioned on one market: how many\n    hold YES and NO, how much capital each side has invested, the current\n    market price, and the gap between that positioning and the price.\n\n    Two consensus reads are returned side by side and can disagree:\n    ``head_count`` (one Smart Money wallet = one vote; wallets from\n    OrcaLayer's Smart Money set, so popular markets count thousands) and\n    ``capital_weighted`` (dollars invested per side). In head_count a $5\n    wallet weighs the same as a $500K one, so it is the weaker of the two\n    reads; the capital split reflects the money at stake. On cheap longshots\n    (YES under ~15 cents) head_count leans YES structurally. The divergence\n    fields measure positioning against the price; they are not evidence that\n    the price is wrong.\n\n    An event slug or event URL (a Polymarket event groups several markets)\n    returns the event's markets with their ids and Smart Money wallet counts\n    instead, since the consensus is per market.\n\n    Args:\n        market: Market id, Polymarket market or event slug, polymarket.com\n            URL, or 0x condition id.\n    ",
      "inputSchema": {
        "properties": {
          "market": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              }
            ],
            "title": "Market"
          }
        },
        "required": [
          "market"
        ],
        "title": "market_consensusArguments",
        "type": "object"
      },
      "annotations": {
        "title": "Smart-money consensus on a market",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    }
  ],
  "prompts": [
    {
      "name": "analyze_wallet",
      "description": "Analyze a Polymarket wallet — smart money or farmer?",
      "arguments": [
        {
          "name": "address",
          "required": true
        }
      ]
    },
    {
      "name": "find_divergence",
      "description": "Find markets where smart money disagrees with the current price",
      "arguments": [
        {
          "name": "category",
          "required": false
        },
        {
          "name": "min_pp",
          "required": false
        }
      ]
    },
    {
      "name": "hedge_check",
      "description": "Check if a wallet's recent profit was real alpha or a hedge structure",
      "arguments": [
        {
          "name": "address",
          "required": true
        },
        {
          "name": "market_id",
          "required": false
        }
      ]
    },
    {
      "name": "territorial_markets_review",
      "description": "Review Ukraine territorial markets with ISW frontline overlay",
      "arguments": [
        {
          "name": "threat_level",
          "required": false
        }
      ]
    }
  ],
  "resources": [
    {
      "name": "OrcaLayer Methodology",
      "uri": "orcalayer://methodology",
      "description": "How smart money is filtered from farmers, hedgers and market-makers.",
      "mimeType": "text/markdown"
    },
    {
      "name": "Prediction Markets Glossary",
      "uri": "orcalayer://glossary",
      "description": "Terms used in Polymarket analytics: hedge, farmer, NegRisk, smart money, ISW.",
      "mimeType": "text/markdown"
    },
    {
      "name": "OrcaLayer REST API Reference",
      "uri": "orcalayer://api-reference",
      "description": "Public endpoints, authentication, rate limits and the SSE live feed.",
      "mimeType": "text/markdown"
    }
  ]
}
