{"name":"ai.dryos/dryos","slug":"dryos","title":"Dryos","description":"Live US power market prices, load, generation, weather and permits for AI agents.","url":"https://mcp.market/server/dryos","rating":null,"grade":"C","score":69,"certified":false,"status":"active","category":"maps","tags":["maps"],"presence":{"score":0,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://www.dryos.ai/mcp","version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://api.dryos.ai/mcp"}],"packages":[],"tools":[{"name":"column_values","description":"The distinct values of one text column, most rows first — what a filter can be.\n\n    Args:\n        slug: The stream.\n        column: A text column from describe_stream (not the entity — use find_entities).\n        where: Filters as `column=value`, the same as query_stream's.\n        search: `column:text`, a case-insensitive substring.\n        limit: At most this many (1–500).\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"slug":{"title":"Slug","type":"string"},"column":{"title":"Column","type":"string"},"where":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Where"},"search":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Search"},"limit":{"default":40,"title":"Limit","type":"integer"}},"required":["slug","column"],"title":"column_valuesArguments"}},{"name":"describe_stream","description":"One stream in full: every column, the primary key, the source and its health.\n\n    Also what changed in the collector recently — a change in the collector is\n    a change in the data, and a step in a series may be one.\n\n    Args:\n        slug: The stream, e.g. ercot-realtime-lmp (list_streams names them).\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"slug":{"title":"Slug","type":"string"}},"required":["slug"],"title":"describe_streamArguments"}},{"name":"find_entities","description":"Look up the nodes, zones, stations or fuels in a stream, with how far back each goes.\n\n    Use it before query_stream: names are verbatim and never to be guessed.\n    `facets` counts the entities by type.\n\n    Args:\n        slug: The stream.\n        search: Case-insensitive substring of the entity name (\"HOUSTON\", \"HB_\", \"KAUS\").\n        entity_type: Only one type — HUB, LOAD_ZONE, RESOURCE_NODE, INTERFACE…\n        limit: At most this many (1–2000).\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"slug":{"title":"Slug","type":"string"},"search":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Search"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Entity Type"},"limit":{"default":50,"title":"Limit","type":"integer"}},"required":["slug"],"title":"find_entitiesArguments"}},{"name":"list_streams","description":"Every stream Dryos collects, with its entity column and headline measure.\n\n    Args:\n        domain: Energy, Weather or Property.\n        operator: A grid operator — ERCOT, MISO, PJM, SPP, CAISO, NYISO or ISO-NE.\n        search: A word matched against the slug, name and tagline (\"lmp\", \"wind\", \"permits\").\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Domain"},"operator":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Operator"},"search":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Search"}},"title":"list_streamsArguments"}},{"name":"query_stream","description":"Read rows from a stream — raw (newest first), each entity's newest, or a rollup.\n\n    The result carries `restUrl`: this same request as a plain GET on the\n    public REST API, ready to put in an app.\n\n    Args:\n        slug: The stream.\n        node: The entity, whatever the stream calls it (node, zone, station, fuel).\n            System-level streams have none.\n        start: Inclusive, ISO-8601 or relative to now (-24h, -7d). UTC.\n        end: Exclusive, same forms.\n        interval: Bucket size — 5m, 15m, 1h, 1d, 7d, or all for one bucket.\n            Absent means raw rows.\n        agg: How a bucket is reduced.\n        by: What a rollup splits by: a text column, or none for one series. Default the entity.\n        where: Filters as column=value on text columns. Repeat a column for OR.\n        search: column:text, a case-insensitive substring.\n        vintages: latest is each interval's newest forecast; all keeps every publication.\n        stamp: noon labels a daily bucket at noon UTC so its date reads right in US zones.\n        newest: One reading per entity — each one's most recent interval, so \"the price\n            at every hub right now\" is one call. Not with interval.\n        limit: At most this many rows (1–2000).\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"slug":{"title":"Slug","type":"string"},"node":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Node"},"start":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Start"},"end":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"End"},"interval":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Interval"},"agg":{"default":"avg","enum":["avg","min","max","sum"],"title":"Agg","type":"string"},"by":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"By"},"where":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Where"},"search":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Search"},"vintages":{"default":"latest","enum":["latest","all"],"title":"Vintages","type":"string"},"stamp":{"default":"start","enum":["start","noon"],"title":"Stamp","type":"string"},"newest":{"default":false,"title":"Newest","type":"boolean"},"limit":{"default":100,"title":"Limit","type":"integer"}},"required":["slug"],"title":"query_streamArguments"}}],"scan":{"score":69,"grade":"C","scanned_at":"2026-09-18T04:51:14.193Z","report":{"scannerVersion":"0.1.2","scannedAt":"2026-09-18T04:51:14.101Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1562ms"]},"poisoning":{"score":15,"max":15,"notes":["5 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://api.dryos.ai/mcp","reachable":true,"authRequired":false,"latencyMs":1562,"serverInfo":{"name":"dryos","version":"0.1.0"}}],"packages":[],"repo":{"found":false}}}},"grade_history":[],"reviews":[]}