Dryos
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Live US power market prices, load, generation, weather and permits for AI agents.
| Author | ai.dryos |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 116 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Dryos": {
"url": "https://api.dryos.ai/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (5)
list_streamsread-onlyEvery stream Dryos collects, with its entity column and headline measure. Args: domain: Energy, Weather or Property. operator: A grid operator — ERCOT, MISO, PJM, SPP, CAISO, NYISO or ISO-NE. search: A word matched against the slug, name and tagline ("lmp", "wind", "permits").
Parameters:
domainsearchoperator
Hints: read-only yes · destructive no · idempotent yes · open-world no
describe_streamread-onlyOne stream in full: every column, the primary key, the source and its health. Also what changed in the collector recently — a change in the collector is a change in the data, and a step in a series may be one. Args: slug: The stream, e.g. ercot-realtime-lmp (list_streams names them).
Parameters:
slug(required) — string
Hints: read-only yes · destructive no · idempotent yes · open-world no
find_entitiesread-onlyLook up the nodes, zones, stations or fuels in a stream, with how far back each goes. Use it before query_stream: names are verbatim and never to be guessed. `facets` counts the entities by type. Args: slug: The stream. search: Case-insensitive substring of the entity name ("HOUSTON", "HB_", "KAUS"). entity_type: Only one type — HUB, LOAD_ZONE, RESOURCE_NODE, INTERFACE… limit: At most this many (1–2000).
Parameters:
slug(required) — stringlimit— integersearchentity_type
Hints: read-only yes · destructive no · idempotent yes · open-world no
column_valuesread-onlyThe distinct values of one text column, most rows first — what a filter can be. Args: slug: The stream. column: A text column from describe_stream (not the entity — use find_entities). where: Filters as `column=value`, the same as query_stream's. search: `column:text`, a case-insensitive substring. limit: At most this many (1–500).
Parameters:
slug(required) — stringcolumn(required) — stringlimit— integerwheresearch
Hints: read-only yes · destructive no · idempotent yes · open-world no
query_streamread-onlyRead rows from a stream — raw (newest first), each entity's newest, or a rollup. The result carries `restUrl`: this same request as a plain GET on the public REST API, ready to put in an app. Args: slug: The stream. node: The entity, whatever the stream calls it (node, zone, station, fuel). System-level streams have none. start: Inclusive, ISO-8601 or relative to now (-24h, -7d). UTC. end: Exclusive, same forms. interval: Bucket size — 5m, 15m, 1h, 1d, 7d, or all for one bucket. Absent means raw rows. agg: How a bucket is reduced. by: What a rollup splits by: a text column, or none for one series. Default the entity. where: Filters as column=value on text columns. Repeat a column for OR. search: column:text, a case-insensitive substring. vintages: latest is each interval's newest forecast; all keeps every publication. stamp: noon labels a daily bucket at noon UTC so its date reads right in US zones. newest: One reading per entity — each one's most recent interval, so "the price at every hub right now" is one call. Not with interval. limit: At most this many rows (1–2000).
Parameters:
slug(required) — stringbyagg— stringendnodelimit— integerstamp— stringstartwherenewest— booleansearchintervalvintages— string
Hints: read-only yes · destructive no · idempotent yes · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.