Dryos
Live US power market prices, load, generation, weather and permits for AI agents.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"dryos": {
"url": "https://api.dryos.ai/mcp"
}
}
}Remote endpoints
https://api.dryos.ai/mcpstreamable-httpWhat it can do
Tool inventory
Tools (5)
π’list_streams(domain, operator, search)
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").
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"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "list_streamsDictOutput"
}π’describe_stream(slug)
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).
Input Schema
{
"type": "object",
"properties": {
"slug": {
"title": "Slug",
"type": "string"
}
},
"required": [
"slug"
],
"title": "describe_streamArguments"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "describe_streamDictOutput"
}π’find_entities(slug, search, entity_type, limit)
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).
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"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "find_entitiesDictOutput"
}π’column_values(slug, column, where, search, limit)
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).
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"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "column_valuesDictOutput"
}π’query_stream(slug, node, start, end, interval, ...)
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).
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"
}Output Schema
{
"type": "object",
"additionalProperties": true,
"title": "query_streamDictOutput"
}Recommended Prompts
find_entitiesfind_entitieslist_streamslist_streamsCommunity
Evidence