MCP is the open standard for connecting AI assistants to external tools, supported by Claude Desktop and Claude Code, Cursor, Windsurf and VS Code. A single server makes the API reachable from all of them with no per-client work. EODHD already ships one, which means that inside an AI-assisted workflow their data is one configuration line away while MarketData requires custom client code. For options work the MarketData chain endpoint is the better fit, so the gap is integration cost rather than data quality.
On the question of what the REST API itself needs: several conventions are already better than most vendors — s: "no_data" cleanly separates an empty result from an error, x-api-ratelimit-remaining is exposed, and 402 and 429 already distinguish entitlement from rate limit. Four gaps remain, in order of impact.
  1. Populate iv and the greeks on historical chain responses. The fields exist in the schema and return null. In sampling, 0 of 1,836 contracts across twelve underlyings carried a value for iv, delta, gamma or vega, and 0 of 186 on a single AAPL chain including all 38 strikes near the money — while openInterest and bid were populated in 100% of the same rows. Consumers must therefore invert Black-76 themselves, which requires a discount curve and put-call parity to recover the forward: hundreds of lines rebuilding fields the response already reserves space for. No other item here comes close in value.
  2. Allow several expirations per request. Term structure requires multiple expiries. Retrieving them one at a time makes it the most expensive metric to compute and the first to be dropped — observed populated around 40% of the time against 95–99% for every other field.
  3. Distinguish an unrecognised symbol from an absence of options. Both currently return no_data. A liquid underlying returning 323 consecutive no-data days is a symbol-format mismatch, not an empty market — a distinction a human notices and an automated client cannot, so it retries indefinitely.
  4. Add a coverage endpoint listing which underlyings have listed options and from what date. Requests against underlyings that have never had options are otherwise indistinguishable in advance from genuine gaps, and are entirely avoidable.