{"$schema":"https://static.modelcontextprotocol.io/schemas/v1/server-card.schema.json","name":"pjm-nowcast/mcp","title":"PJM nowcast","version":"1.0.0","description":"PJM RTO LMP, zonal spreads, load nowcast statistics; descriptive, not a forecast","websiteUrl":"https://pjm-nowcast-production.up.railway.app","icons":[{"src":"https://pjm-nowcast-production.up.railway.app/favicon.ico","mimeType":"image/x-icon"}],"protocolVersion":"2024-11-05","serverInfo":{"name":"pjm-nowcast","title":"PJM nowcast","version":"1.0.0"},"transport":{"type":"streamable-http","endpoint":"https://pjm-nowcast-production.up.railway.app/mcp"},"remotes":[{"type":"streamable-http","url":"https://pjm-nowcast-production.up.railway.app/mcp","supportedProtocolVersions":["2024-11-05"]},{"type":"streamable-http","url":"https://pjm-nowcast-production.up.railway.app/api/mcp","supportedProtocolVersions":["2024-11-05"]}],"capabilities":{"tools":{}},"tools":[{"name":"health","description":"Free. Same as GET /health: process, store, poll freshness. No market fetch. paymentStatus=free.","inputSchema":{"type":"object","properties":{}}},{"name":"service_info","description":"Free service card (GET /): what pjm-nowcast is and is not, networks, prices, schemas, MCP URL, staleness fields. paymentStatus=free.","inputSchema":{"type":"object","properties":{}}},{"name":"demo_sample","description":"GET /v1/demo/sample unpaid synthetic fixture for schema inspection. Not live PJM and not a nowcast. paymentStatus=free.","inputSchema":{"type":"object","properties":{}}},{"name":"nowcast_weather_summary","description":"Free. Same as GET /v1/nowcast/weather-summary: zone weather sensitivities, latest residual, uncertainty band. paymentStatus=free.","inputSchema":{"type":"object","properties":{}}},{"name":"nowcast_latest","description":"Latest PJM RTO LMP, zonal spreads, RTO load, and nested regime snapshot. Latest PJM RTO LMP ($/MWh), zonal spreads, RTO load (MW), nested regime (state probabilities, dominant state, average conditions). asOf is ET. Not a forecast. Descriptive statistics only. Not a forecast, signal, or trading recommendation. Aggregated from public market sources. Freshness depends on the last successful background poll. Payment: x402 USDC exact on configured networks (solana, base). Price $0.02. Without payment the tool result is paymentStatus=required. POST the matching HTTP path and decode the PAYMENT-REQUIRED header.","inputSchema":{"type":"object","properties":{"families":{"type":"array","description":"Optional subset of rto_lmp, zonal_spread, rto_load. Default: all three.","items":{"type":"string","enum":["rto_lmp","zonal_spread","rto_load"]},"example":["rto_lmp","zonal_spread","rto_load"]}},"additionalProperties":false},"payment":{"protocol":"x402","scheme":"exact","asset":"USDC","price":"$0.02","networks":["solana","base"],"httpPath":"/v1/nowcast/latest","unpaid":"paymentStatus=required; POST httpPath and decode PAYMENT-REQUIRED"}},{"name":"nowcast_history","description":"1–72h PJM RTO LMP, zonal spread, and load history. 1–72h native-poll history of RTO LMP ($/MWh), zonal spreads, and RTO load (MW). asOf is ET. Descriptive stats plus points. Not a forecast. Descriptive statistics only. Not a forecast, signal, or trading recommendation. Aggregated from public market sources. Freshness depends on the last successful background poll. Payment: x402 USDC exact on configured networks (solana, base). Price $0.10. Without payment the tool result is paymentStatus=required. POST the matching HTTP path and decode the PAYMENT-REQUIRED header.","inputSchema":{"type":"object","properties":{"families":{"type":"array","description":"Optional subset of rto_lmp, zonal_spread, rto_load. Default: all three.","items":{"type":"string","enum":["rto_lmp","zonal_spread","rto_load"]},"example":["rto_lmp","zonal_spread","rto_load"]},"windowHours":{"type":"integer","description":"Trailing window in hours. Default 24. L2 max 72.","minimum":1,"maximum":72,"default":24,"example":24}},"additionalProperties":false},"payment":{"protocol":"x402","scheme":"exact","asset":"USDC","price":"$0.10","networks":["solana","base"],"httpPath":"/v1/nowcast/history","unpaid":"paymentStatus=required; POST httpPath and decode PAYMENT-REQUIRED"}},{"name":"nowcast_history_extended","description":"Extended PJM history within the retention window. Up to 90-day history of RTO LMP, zonal spreads, and RTO load. Optional hourly buckets and prior-period compare. asOf is ET. Not a forecast. Descriptive statistics only. Not a forecast, signal, or trading recommendation. Aggregated from public market sources. Freshness depends on the last successful background poll. Payment: x402 USDC exact on configured networks (solana, base). Price $0.25. Without payment the tool result is paymentStatus=required. POST the matching HTTP path and decode the PAYMENT-REQUIRED header.","inputSchema":{"type":"object","properties":{"families":{"type":"array","description":"Optional subset of rto_lmp, zonal_spread, rto_load. Default: all three.","items":{"type":"string","enum":["rto_lmp","zonal_spread","rto_load"]},"example":["rto_lmp","zonal_spread","rto_load"]},"windowHours":{"type":"integer","description":"Trailing window in hours. Default 168, capped by retention.","minimum":1,"default":168,"example":168},"resolution":{"type":"string","description":"native = one point per poll; hourly = mean per clock hour.","enum":["native","hourly"],"default":"native"},"compare":{"type":"string","description":"If prior_period, include the equal-length window immediately before.","enum":["none","prior_period"],"default":"none"}},"additionalProperties":false},"payment":{"protocol":"x402","scheme":"exact","asset":"USDC","price":"$0.25","networks":["solana","base"],"httpPath":"/v1/nowcast/history/extended","unpaid":"paymentStatus=required; POST httpPath and decode PAYMENT-REQUIRED"}},{"name":"nowcast_regime","description":"Proprietary latent-state snapshot with asOf and ageSeconds. Proprietary latent-state snapshot: regime confidence (entropy), state weights, dominant state, asOf, ageSeconds. Descriptive, not a forecast. Descriptive statistics only. Not a forecast, signal, or trading recommendation. Aggregated from public market sources. Freshness depends on the last successful background poll. Payment: x402 USDC exact on configured networks (solana, base). Price $0.02. Without payment the tool result is paymentStatus=required. POST the matching HTTP path and decode the PAYMENT-REQUIRED header.","inputSchema":{"type":"object","properties":{},"description":"Empty body. POST {}."},"payment":{"protocol":"x402","scheme":"exact","asset":"USDC","price":"$0.02","networks":["solana","base"],"httpPath":"/v1/nowcast/regime","unpaid":"paymentStatus=required; POST httpPath and decode PAYMENT-REQUIRED"}},{"name":"nowcast_spreads","description":"Zone-level LMP spread table for the latest print. This-print zone LMP table (USD/MWh) plus lastSpread (p95−p05). asOf is ET. No history dump. Descriptive, not a forecast. Descriptive statistics only. Not a forecast, signal, or trading recommendation. Aggregated from public market sources. Freshness depends on the last successful background poll. Payment: x402 USDC exact on configured networks (solana, base). Price $0.02. Without payment the tool result is paymentStatus=required. POST the matching HTTP path and decode the PAYMENT-REQUIRED header.","inputSchema":{"type":"object","properties":{},"description":"Empty body. POST {}."},"payment":{"protocol":"x402","scheme":"exact","asset":"USDC","price":"$0.02","networks":["solana","base"],"httpPath":"/v1/nowcast/spreads","unpaid":"paymentStatus=required; POST httpPath and decode PAYMENT-REQUIRED"}},{"name":"nowcast_asof","description":"Descriptive snapshot pinned to a historical asOf. Descriptive snapshot pinned to a historical asOf (ET). Fail closed if missing. Same families as /latest. Not a forecast. Descriptive statistics only. Not a forecast, signal, or trading recommendation. Aggregated from public market sources. Freshness depends on the last successful background poll. Payment: x402 USDC exact on configured networks (solana, base). Price $0.02. Without payment the tool result is paymentStatus=required. POST the matching HTTP path and decode the PAYMENT-REQUIRED header.","inputSchema":{"type":"object","properties":{"asOf":{"type":"string","description":"ISO-8601 observation clock with offset. Required. No interpolation.","format":"date-time","example":"2026-10-09T18:00:00-04:00"}},"required":["asOf"]},"payment":{"protocol":"x402","scheme":"exact","asset":"USDC","price":"$0.02","networks":["solana","base"],"httpPath":"/v1/nowcast/asof","unpaid":"paymentStatus=required; POST httpPath and decode PAYMENT-REQUIRED"}},{"name":"nowcast_snapshots","description":"Append-only /latest snapshots by EPT hour. Append-only archive of /latest by EPT hour-beginning. 90-day cap, first write wins. Missing hours are null, not zero. Not a forecast. Descriptive statistics only. Not a forecast, signal, or trading recommendation. Aggregated from public market sources. Freshness depends on the last successful background poll. Payment: x402 USDC exact on configured networks (solana, base). Price $0.10. Without payment the tool result is paymentStatus=required. POST the matching HTTP path and decode the PAYMENT-REQUIRED header.","inputSchema":{"type":"object","properties":{"from":{"type":"string","description":"ISO-8601 start with offset (inclusive). Capped at 90-day lookback.","format":"date-time","example":"2026-10-09T00:00:00-04:00"},"to":{"type":"string","description":"ISO-8601 end with offset (exclusive).","format":"date-time","example":"2026-10-10T00:00:00-04:00"}}},"payment":{"protocol":"x402","scheme":"exact","asset":"USDC","price":"$0.10","networks":["solana","base"],"httpPath":"/v1/nowcast/snapshots","unpaid":"paymentStatus=required; POST httpPath and decode PAYMENT-REQUIRED"}},{"name":"nowcast_weather_sensitivity","description":"Weather sensitivity series, bands, and degree-day path. Weather sensitivities, residual uncertainty band, and degree-day path from the weather hourly series. Descriptive only. Not a forecast. Descriptive statistics only. Not a forecast, signal, or trading recommendation. Aggregated from public market sources. Freshness depends on the last successful background poll. Payment: x402 USDC exact on configured networks (solana, base). Price 0.10. Without payment the tool result is paymentStatus=required. POST the matching HTTP path and decode the PAYMENT-REQUIRED header.","inputSchema":{"type":"object","properties":{"zone":{"type":"string","description":"Optional zone: RTO, BGE, PEPCO, DOM, PSEG, or JCPL. Omit for all six.","example":"RTO"}}},"payment":{"protocol":"x402","scheme":"exact","asset":"USDC","price":"0.10","networks":["solana","base"],"httpPath":"/v1/nowcast/weather-sensitivity","unpaid":"paymentStatus=required; POST httpPath and decode PAYMENT-REQUIRED"}},{"name":"spread_probability_card","description":"On-peak zonal spread jump probability card. PJM zonal spread jump probability. On-peak empirical card: hit rate and avg payoff vs K over trailing EPT weekdays. Not a forecast, not a mid, not Black vol. whenToUse: next on-peak day or trailing congestion-season check. whenNotToUse: month-ahead, season-ahead, Black vol, a price forecast. Descriptive statistics only. Not a forecast, signal, or trading recommendation. Aggregated from public market sources. Freshness depends on the last successful background poll. Payment: x402 USDC exact on configured networks (solana, base). Price 0.25. Without payment the tool result is paymentStatus=required. POST the matching HTTP path and decode the PAYMENT-REQUIRED header.","inputSchema":{"type":"object","properties":{"lookbackDays":{"type":"integer","description":"Trailing on-peak EPT weekdays (skip weekends and NERC holidays). Default 5, max 30.","minimum":1,"maximum":30,"default":5,"example":5},"asOf":{"type":"string","description":"Optional ISO-8601 sample end. Default: now.","format":"date-time"}},"additionalProperties":false},"payment":{"protocol":"x402","scheme":"exact","asset":"USDC","price":"0.25","networks":["solana","base"],"httpPath":"/v1/spread/probability-card","unpaid":"paymentStatus=required; POST httpPath and decode PAYMENT-REQUIRED"}}],"payment":{"scheme":"x402","asset":"USDC","networks":["solana","base"]},"links":{"x402":"https://pjm-nowcast-production.up.railway.app/.well-known/x402","discovery":"https://pjm-nowcast-production.up.railway.app/v1/discovery","openapi":"https://pjm-nowcast-production.up.railway.app/openapi.json","llms":"https://pjm-nowcast-production.up.railway.app/llms.txt"}}