{
  "schema": "options-whale-mcp-catalog/1",
  "transport": "stdio",
  "serverVersion": "0.1.0",
  "tools": [
    {
      "name": "earnings_calendar",
      "description": "Verified earnings dates and current-candidate availability, inclusive range up to 35 days. Defaults to the next seven market dates. Returns at most 100 events; check truncated. No live data acquisition.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "to": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          }
        },
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "earnings_brief",
      "description": "Evidence for one ticker: event, dated priced move, current eligible trade risk and historical modeled examples. Preserve source links, asOf, synthetic and reconstruction labels. Null risk means unknown, never zero.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "pattern": "^[A-Za-z][A-Za-z0-9.-]{0,14}$"
          },
          "from": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "to": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          }
        },
        "required": [
          "ticker"
        ],
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "compare_earnings",
      "description": "Compare 2–4 companies using the same earnings evidence fields. Historical examples are simulations, not recommendations; archived snapshots are not current setups.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "symbols": {
            "minItems": 2,
            "maxItems": 4,
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^[A-Za-z][A-Za-z0-9.-]{0,14}$"
            }
          },
          "from": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "to": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          }
        },
        "required": [
          "symbols"
        ],
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "historical_earnings_moves",
      "description": "Stored historical implied versus actual earnings moves (decimal fractions), at most 12 events. Optional exact eventDate must exist; missing observations stay null. Reconstructed evidence is not a live track record.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "pattern": "^[A-Za-z][A-Za-z0-9.-]{0,14}$"
          },
          "eventDate": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          }
        },
        "required": [
          "ticker"
        ],
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "earnings_iv",
      "description": "Stored ATM IV, historical cohort curve and observed event-relative IV checkpoints. Decimal IV; no interpolated or forecast points. Optional eventDate selects a stored event, never a substitute.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "pattern": "^[A-Za-z][A-Za-z0-9.-]{0,14}$"
          },
          "eventDate": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          }
        },
        "required": [
          "ticker"
        ],
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "earnings_term_structure",
      "description": "Dated stored ATM IV by expiration (at most 24), snapshot DTE and event-inside flags. Flags refer to the snapshot report date, not a revised schedule. No live options acquisition.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "pattern": "^[A-Za-z][A-Za-z0-9.-]{0,14}$"
          }
        },
        "required": [
          "ticker"
        ],
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "strategy_risk",
      "description": "Risk and exact legs of a current eligible validated stored candidate only. Optional researchId must match. Does not evaluate user-supplied legs, size a trade, read journal data or place orders. Null loss is unknown, never zero.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ticker": {
            "type": "string",
            "pattern": "^[A-Za-z][A-Za-z0-9.-]{0,14}$"
          },
          "researchId": {
            "type": "string",
            "pattern": "^res_[A-Z][A-Z0-9.-]{0,14}_\\d{4}-\\d{2}-\\d{2}_[a-f0-9]{12,64}$"
          }
        },
        "required": [
          "ticker"
        ],
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    }
  ],
  "prompts": [
    {
      "name": "prepare_earnings_trade",
      "description": "Evidence-first earnings preparation checklist.",
      "arguments": [
        {
          "name": "ticker",
          "required": true
        }
      ]
    },
    {
      "name": "compare_event_risk",
      "description": "Compare two earnings events using matched evidence fields.",
      "arguments": [
        {
          "name": "first",
          "required": true
        },
        {
          "name": "second",
          "required": true
        }
      ]
    },
    {
      "name": "earnings_week_plan",
      "description": "Organize a reporting week with follow-up evidence checks.",
      "arguments": [
        {
          "name": "from",
          "required": true
        },
        {
          "name": "to",
          "required": true
        }
      ]
    }
  ],
  "resources": [
    {
      "name": "methodology",
      "uri": "options-whale://methodology",
      "description": "Evidence conventions and research links.",
      "mimeType": "text/plain"
    }
  ]
}
