# zdte.ai SPX Market Structure

> SPX 0DTE dealer market structure: GEX, walls, gamma flip, regime, flow. Free preview; pay per read.

- name: ai.zdte/market-structure
- version: 1.2.0
- connection class: R0 (autonomous)
- trust: 82/100 flags: no-repository
- quality: 75/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/ai.zdte%2Fmarket-structure
- tools: https://api.protogrid.dev/v1/servers/ai.zdte%2Fmarket-structure/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "market-structure": {
      "type": "http",
      "url": "https://api.zdte.ai/mcp",
      "headers": {
        "X-API-Key": "${X_API_KEY}"
      }
    }
  }
}
```

Placeholders to fill: `${X_API_KEY}`.

## Trust

- hygiene: 80
- liveness: 98
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-94% +updated-14d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 75/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 13 of 13 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,698 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 25 (weight 15)

- warn `stability.changes`: 19 tool changes in 30 days
- fail `stability.rug_pull`: 4 tools kept their name but changed most of their description in 30 days; review before trusting them

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 13, about 1,698 tokens to load them all
- tool set hash: 1c5f321a08dfc377b94ab33ad19fc44d
- tools last changed: 2026-10-08T06:39:13.182Z
- badge: [![protogrid quality](https://protogrid.dev/badge/ai.zdte/market-structure.svg)](https://protogrid.dev/servers/ai.zdte/market-structure)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-08 `create_credit_checkout` changed (description, inputSchema) **meaning changed**
  - before: Create a Stripe Checkout link for the authenticated key. Does not charge or fund until payment is authorized and confirmed. Return and check get_credit_balance.
  - after: Create a payment link that adds prepaid credits to the authenticated key; a person opens it to pay. Does not charge or fund anything until payment is authorized and confirmed.
- 2026-10-08 `get_credit_balance` changed (description)
  - before: Free balance check for the API key in this connection's HTTP header. Never pass a key as an argument.
  - after: Free balance check for the API key in this connection's HTTP header; takes no key argument.
- 2026-10-08 `create_guest_key` changed (description)
  - before: Create a zero-credit API key, returned once, and save it securely. When the response says connection_authenticated, this MCP session is already using the key: continue with create_credit_checkout. Otherwise, and for new connections, configure HTTP Authorization: Bearer and reconnect. No arguments. OAuth-capable clients can skip this: they are asked to Connect automatically the first time an account or paid tool is called, with no website account needed.
  - after: Creates a zero-credit API key, returned once and not shown again. When the response says connection_authenticated, this MCP session already uses the key; other connections authenticate with an HTTP Authorization: Bearer header. No arguments. For OAuth-capable clients, a Connect prompt appears automatically the first time an account or paid tool is called, with no website account needed, so no key is required.
- 2026-10-08 `get_access_options` changed (description)
  - before: Free pricing and accountless access instructions. Start here; no website account required.
  - after: Free: current prices and the accountless access steps; no website account required.
- 2026-10-08 `get_field_guide` changed (description)
  - before: Static, versioned dictionary of every field this surface emits: unit, value set where the producer has one, and a one-sentence meaning, plus the shared response conventions (tier, delay, timestamps, and how missing data is reported). No inputs; call once per session.
  - after: Static, versioned dictionary of every field this surface emits: unit, value set where the producer has one, and a one-sentence meaning, plus the shared response conventions (tier, delay, timestamps, and how missing data is reported). No inputs; static per version.
- 2026-10-08 `unsubscribe_event` changed (description, inputSchema)
  - before: Remove an event subscription by id (the subscription_id that subscribe_event returned).
  - after: Remove an event subscription by its subscription_id (the id returned when the subscription was created).
- 2026-10-08 `get_regime_segments` changed (description, inputSchema)
  - before: Use this when you only need how the dealer regime changed during one past trading day: a compressed list of regime segments with their start and end times. For the full intraday structure (walls, gamma flip, net GEX, spot) use get_day instead. One replay date (YYYY-MM-DD) per call.
  - after: Only how the dealer regime changed during one past trading day, the compact replay: a list of regime segments with their start and end times; no walls, gamma flip, net GEX or spot. One replay date (YYYY-MM-DD) per call.
- 2026-10-08 `get_day` changed (description, inputSchema)
  - before: Use this when you need the full market-structure history of one past trading day: the intraday timeline (walls, gamma flip, net GEX, regime, spot) plus a day summary. If you only need when the regime changed that day, get_regime_segments is the compact version. One replay date (YYYY-MM-DD) per call. Data only -- not investment advice or a trade recommendation.
  - after: The full market-structure history of one past trading day, the larger replay: the intraday timeline (walls, gamma flip, net GEX, regime, spot) plus a day summary. One replay date (YYYY-MM-DD) per call. Data only -- not investment advice or a trade recommendation.
- 2026-10-08 `get_regime` changed (description)
  - before: Use this when you only need the current SPX dealer regime label and its confidence, for example to check whether conditions have changed. For walls, gamma flip, net GEX and strike detail, use get_market_structure instead. Realtime with an API key; without a key this serves a delayed preview.
  - after: Only the current SPX dealer regime label and its confidence, a small read for checking whether conditions have changed; no walls, gamma flip, net GEX or strike detail. Realtime with an API key; without a key this serves a delayed preview.
- 2026-10-08 `get_market_structure` changed (description)
  - before: Use this when you need the full current SPX dealer market structure: walls, gamma flip, net GEX and the strike-level detail below. If you only need the regime label and its confidence, get_regime is smaller and cheaper. Current computed SPX dealer market structure (walls, gamma flip, net GEX, regime), recomputed ~every 10s during market hours: scored pressure-point strike ladder, implied 50%/80% forecast-band ranges, strike activity (volume/OI), and VIX term-structure context. Also the 0DTE ATM-straddle expected move and its session fence, max pain, the running session open/high/low with the prior close and gap, order-flow measurements, a top-10 net-GEX strike profile, and chain vanna/charm totals with a top-10 strike ladder. Realtime requires a funded API key, no website account needed: call create_guest_key, then create_credit_checkout, then get_credit_balance (account holders can also buy at https://zdte.ai/agent/credits); without a key this serves a delayed headline preview only (regime, spot, walls, gamma flip, net GEX). Data only -- not investment advice or a trade recommendation.
  - after: The full current SPX dealer market structure, the largest realtime read: walls, gamma flip, net GEX, regime and the strike-level detail below. Current computed SPX dealer market structure (walls, gamma flip, net GEX, regime), recomputed ~every 10s during market hours: scored pressure-point strike ladder, implied 50%/80% forecast-band ranges, strike activity (volume/OI), and VIX term-structure context. Also the 0DTE ATM-straddle expected move and its session fence, max pain, the running session open/high/low with the prior close and gap, order-flow measurements, a top-10 net-GEX strike profile, and chain vanna/charm totals with a top-10 strike ladder. The full realtime structure needs a funded zdte.ai API key (no website account needed); without a key this returns a delayed headline preview (regime, spot, walls, gamma flip, net GEX). Data only -- not investment advice or a trade recommendation.

Full history: https://api.protogrid.dev/v1/servers/ai.zdte%2Fmarket-structure/changes

## Remotes

- https://api.zdte.ai/mcp (streamable-http, auth none, reachable true, uptime30d 0.9380531)

## Packages

_none_

## Tools (13)

- `create_credit_checkout`: Create a payment link that adds prepaid credits to the authenticated key; a person opens it to pay. Does not charge or fund anything until payment is authorized and confirmed.
- `create_guest_key`: Creates a zero-credit API key, returned once and not shown again. When the response says connection_authenticated, this MCP session already uses the key; other connections authenticate with an HTTP Authorization: Bearer header. No arguments. For OAuth-capable clients, a Connect prompt appears automatically the first time an account or paid tool is called, with no website account needed, so no key is required.
- `get_access_options`: Free: current prices and the accountless access steps; no website account required.
- `get_credit_balance`: Free balance check for the API key in this connection's HTTP header; takes no key argument.
- `get_day`: The full market-structure history of one past trading day, the larger replay: the intraday timeline (walls, gamma flip, net GEX, regime, spot) plus a day summary. One replay date (YYYY-MM-DD) per call. Data only -- not investment advice or a trade recommendation.
- `get_field_guide`: Static, versioned dictionary of every field this surface emits: unit, value set where the producer has one, and a one-sentence meaning, plus the shared response conventions (tier, delay, timestamps, and how missing data is reported). No inputs; static per version.
- `get_market_structure`: The full current SPX dealer market structure, the largest realtime read: walls, gamma flip, net GEX, regime and the strike-level detail below. Current computed SPX dealer market structure (walls, gamma flip, net GEX, regime), recomputed ~every 10s during market hours: scored pressure-point strike ladder, implied 50%/80% forecast-band ranges, strike activity (volume/OI), and VIX term-structure context. Also the 0DTE ATM-straddle expected move and its session fence, max pain, the running session open/high/low with the prior close and gap, order-flow measurements, a top-10 net-GEX strike profile, and chain vanna/charm totals with a top-10 strike ladder. The full realtime structure needs a funded zdte.ai API key (no website account needed); without a key this returns a delayed headline preview (regime, spot, walls, gamma flip, net GEX). Data only -- not investment advice or a trade recommendation.
- `get_regime`: Only the current SPX dealer regime label and its confidence, a small read for checking whether conditions have changed; no walls, gamma flip, net GEX or strike detail. Realtime with an API key; without a key this serves a delayed preview.
- `get_regime_segments`: Only how the dealer regime changed during one past trading day, the compact replay: a list of regime segments with their start and end times; no walls, gamma flip, net GEX or spot. One replay date (YYYY-MM-DD) per call.
- `list_history_dates`: Free catalog of available historical SPX market-structure replay dates. No API key required; actual replay datasets are paid.
- `list_subscriptions`: List this agent's active event subscriptions.
- `subscribe_event`: Subscribe a callback URL to a market-structure event (zero_gamma_flip | new_wall | regime_transition).
- `unsubscribe_event`: Remove an event subscription by its subscription_id (the id returned when the subscription was created).
