Skip to content

Dryos

by dryos.ai · remote · no sign-in to list tools · v1.0.0 · published by ai.dryos

Live US power market prices, load, generation, weather and permits for AI agents.

Changes · 1

5 tools: 1 change things and 4 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http dryos https://api.dryos.ai/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

5 tools

Changes things 1Claude Code: ask
  • column_valuesThe distinct values of one text column, most rows first — what a filter can be.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    The 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).

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: List a column's values
Only reads 4Claude Code: allow
  • describe_streamOne stream in full: every column, the primary key, the source and its health.No findings

    Why it is in this group

    • The name "describe_stream" says "describe": a word for reading.
    Description, as the server wrote it
    One 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).

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Describe a stream
  • find_entitiesLook up the nodes, zones, stations or fuels in a stream, with how far back each goes.No findings

    Why it is in this group

    • The name "find_entities" says "find": a word for reading.
    Description, as the server wrote it
    Look 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).

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Find nodes, zones and stations
  • list_streamsEvery stream Dryos collects, with its entity column and headline measure.No findings

    Why it is in this group

    • The name "list_streams" says "list": a word for reading.
    Description, as the server wrote it
    Every 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").

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: List streams
  • query_streamRead rows from a stream — raw (newest first), each entity's newest, or a rollup.No findings

    Why it is in this group

    • The name "query_stream" says "query": a word for reading.
    Description, as the server wrote it
    Read 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).

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Query a stream

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http dryos https://api.dryos.ai/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__dryos__list_streams",
      "mcp__dryos__describe_stream",
      "mcp__dryos__find_entities",
      "mcp__dryos__query_stream"
    ],
    "ask": [
      "mcp__dryos__column_values"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as dryos. Review it before you use it.