Data Collection
dryos.ai
Provides tools to list, describe, and query Dryos data streams, including entity lookup, column values, and raw, latest-per-entity, or rolled-up row reads.
ENDPOINT 1
https://api.dryos.ai/mcp
MCP server metadata
- Name
- dryos
- Version
- 0.1.0
Dryos serves real, reconciled data — US power markets (ERCOT, MISO, PJM, SPP, CAISO, NYISO, ISO-NE), weather, and building permits — collected live from the source. Every stream is checked against the source it came from. How to answer a question: 1. list_streams to find the stream (filter by domain, operator or a word). 2. describe_stream to read its columns, entity column, measure and unit. 3. find_entities to look up a node, zone or station name. Never guess one: names are verbatim, inner spaces included (`ALDENE 230 KV T-10`). 4. query_stream for rows. Past a day or so of five-minute data, pass interval (15m, 1h, 1d, all) and agg (avg, min, max, sum) instead of raw rows. Each bucket carries `samples`; a low count is a collection gap, not a quiet hour. For the current value at every node, zone or station, pass newest=true: one row per entity at its most recent interval, rather than guessing a row limit. Building an app: every query_stream result carries `restUrl`, the same request as a plain GET against the public REST API. Relative times (start=-24h) stay relative in it, so it keeps working. Give that URL to whoever is wiring the data into their code rather than re-deriving one. Rules that prevent wrong answers: - Every timestamp is UTC. interval_start_utc is the start of the interval. Convert only for display: ERCOT and SPP are US Central; MISO is EST all year (never EDT); PJM, NYISO and ISO-NE are US Eastern with daylight saving; CAISO is US Pacific. - start is inclusive, end exclusive. - Forecasts keep every publication. By default each interval's newest vintage is returned; never average vintages together. - Null means the source did not report it — never zero. - where filters a text column (`column=value`; repeat one column for OR, different columns AND). search is a case-insensitive substring (`column:text`). - Cite the stream slug and the interval timestamps behind any number you report.
Known tools 5
list_streamsEvery stream Dryos collects, with its entity column and headline measure.
Inferred read-onlydescribe_streamOne stream in full: every column, the primary key, the source and its health.
Inferred read-onlyfind_entitiesLook up the nodes, zones, stations or fuels in a stream, with how far back each goes.
Inferred read-onlycolumn_valuesThe distinct values of one text column, most rows first — what a filter can be.
Inferred read-onlyquery_streamRead rows from a stream — raw (newest first), each entity's newest, or a rollup.
Inferred read-onlyCONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.dryos]
url = "https://api.dryos.ai/mcp"
enabled = true
Claude Code
.mcp.json
{
"mcpServers": {
"dryos": {
"type": "http",
"url": "https://api.dryos.ai/mcp"
}
}
}
Claude Desktop
Settings → Connectors → Add custom connector
Name: dryos
Remote MCP URL: https://api.dryos.ai/mcp
Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"dryos": {
"url": "https://api.dryos.ai/mcp"
}
}
}
Visual Studio Code
.vscode/mcp.json
Add to Visual Studio Code{
"servers": {
"dryos": {
"type": "http",
"url": "https://api.dryos.ai/mcp"
}
}
}
Generic MCP
Client-specific MCP configuration
{
"name": "dryos",
"transport": "streamable-http",
"url": "https://api.dryos.ai/mcp"
}
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
ENDPOINT 2
https://www.dryos.ai/api/mcp
Known tools 0
No tool metadata was available in the registry cache.
CONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.dryos-ai]
url = "https://www.dryos.ai/api/mcp"
enabled = true
bearer_token_env_var = "MCP_BEARER_TOKEN"
Authentication is required. Replace the placeholder locally and never commit a secret.
Claude Code
.mcp.json
{
"mcpServers": {
"dryos-ai": {
"type": "http",
"url": "https://www.dryos.ai/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_BEARER_TOKEN"
}
}
}
}
Authentication is required. Replace the placeholder locally and never commit a secret.
Claude Desktop
Settings → Connectors → Add custom connector
Name: dryos-ai
Remote MCP URL: https://www.dryos.ai/api/mcp
Add the URL as a custom connector, then complete its supported authorization flow. Claude Desktop remote connectors are configured in the UI.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"dryos-ai": {
"url": "https://www.dryos.ai/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_BEARER_TOKEN"
}
}
}
}
Authentication is required. Replace the placeholder locally and never commit a secret.
Visual Studio Code
.vscode/mcp.json
{
"servers": {
"dryos-ai": {
"type": "http",
"url": "https://www.dryos.ai/api/mcp",
"headers": {
"Authorization": "Bearer ${input:mcp-token}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "mcp-token",
"description": "dryos-ai bearer token",
"password": true
}
]
}
Authentication is required. Replace the placeholder locally and never commit a secret.
Generic MCP
Client-specific MCP configuration
{
"name": "dryos-ai",
"transport": "streamable-http",
"url": "https://www.dryos.ai/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_BEARER_TOKEN"
}
}
Authentication is required. Replace the placeholder locally and never commit a secret.
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
TRUST AND VERIFICATION EVIDENCE
Loading Trust v2 evidence…
Checking the associated registrable domain. The BuiltWith key remains server-side.
Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.