MCP server
Live US power market data, as tools for your agent
A free, public MCP server with 135 streams across ERCOT, MISO, PJM, SPP, CAISO, NYISO, ISO-NE — real-time and day-ahead prices, load, generation and forecasts — plus weather and building permits, collected live from the source and checked against it. Connect once and ask for “ERCOT's Houston price over the last day” instead of building URLs.
- no key
- no sign-up
- read-only
- streamable http
Connect your client
claude mcp add --transport http dryos https://api.dryos.ai/mcp{
"mcpServers": {
"dryos": {
"url": "https://api.dryos.ai/mcp"
}
}
}Settings → Connectors → Add custom connector
Name: Dryos
URL: https://api.dryos.ai/mcpSettings → Apps & Connectors → Create
URL: https://api.dryos.ai/mcp
Authentication: none{
"servers": {
"dryos": {
"type": "http",
"url": "https://api.dryos.ai/mcp"
}
}
}{
"mcpServers": {
"dryos": {
"serverUrl": "https://api.dryos.ai/mcp"
}
}
}gemini mcp add --transport http dryos https://api.dryos.ai/mcp[mcp_servers.dryos]
url = "https://api.dryos.ai/mcp"Then ask
- “What was the highest real-time price at ERCOT's Houston hub in the last 24 hours, and when?”
- “Compare the hourly average price at ERCOT's North hub, PJM's Western hub and MISO's Indiana hub over the past week.”
- “Which NYISO zones are pricing above $100 right now?”
- “Build me a React dashboard of CAISO's NP15 and SP15 real-time prices that refreshes every five minutes.”
- “How many roofing permits did San Antonio issue each week this quarter?”
Building something? Every query_stream result carries restUrl, the same request as a plain GET on the public REST API, so the agent that answered the question also hands you the endpoint for your app.
Build it on your own infrastructure
The workspace is open source. Clone it, point it at the MCP server, deploy it anywhere — your stack, the same live data.
git clone https://github.com/claytonhorning/dryos-workspace.gitBuild in your account
A second server lets your agent build live dashboards in your own Dryos workspace: “chart ERCOT's Houston price against the Austin temperature forecast and put it in a new workspace called Houston desk.” It asks you to sign in with your Dryos account the first time, and it can only add — never delete. Use it alongside the data server above: the agent finds the data there and builds with it here.
https://www.dryos.ai/api/mcpclaude mcp add --transport http dryos-workspace https://www.dryos.ai/api/mcpIn Claude.ai, Claude Desktop or ChatGPT, add a custom connector with this URL; the sign-in opens on its own.
list_workspaces | Your workspaces and their pages, with links. |
list_community | The workspaces Dryos publishes for everyone — one per grid operator — with a link to view each page and copy it. |
copy_community | Your own editable copy of a community workspace, every page included, ready for add_tile. |
list_components | The tile shapes and their settings, and the published recipes a page can start from. |
create_workspace | A new workspace with its first page, blank or from a recipe. |
add_page | Another page in a workspace. |
add_tile | A chart, ticker, bar, table, map, heatmap or title on live data — compiled before it is saved. |
get_page | What is on a page and where. |
Data tools
list_streams | Every stream, filterable by domain, grid operator or a word. |
describe_stream | One stream's columns, key, source, health and recent collector changes. |
find_entities | Look up node, zone or station names — never guess one. |
column_values | The distinct values of a text column, for filters. |
query_stream | Rows, raw or bucketed; times in ISO-8601 or relative (-24h). At most 2,000 a call. Each result carries restUrl — the same request as a GET, ready for an app. |
What is in it
Prices
Real-time and day-ahead LMPs at every hub, zone and node — energy, congestion and loss where the operator publishes them.
Grid
Load, generation by fuel, wind and solar output, interchange, constraints, reserves and ancillary prices.
Forecasts
Load, wind and solar forecasts with every vintage kept, so a forecast is never silently overwritten.
Weather
NWS station observations and gridpoint forecasts, and a wind field across Texas.
Property
Building permits from Austin, San Antonio, Fort Worth and Collin County, labelled by trade.
Every stream, with its columns and cadence, is listed in the API reference and in llms.txt.
Questions
- What is the Dryos MCP server?
- A remote Model Context Protocol server at https://api.dryos.ai/mcp. It gives an AI agent five read-only tools over the same data the Dryos API serves: US power markets (ERCOT, MISO, PJM, SPP, CAISO, NYISO, ISO-NE), weather and building permits, collected live from each source and checked against it.
- Does it need an API key or an account?
- No. It is public, read-only and speaks Streamable HTTP, so any MCP client that can add a server by URL can use it. Calls are limited per address, and a refusal says so in words an agent can act on.
- Which clients work with it?
- Claude Code, Claude.ai and Claude Desktop (as a custom connector), ChatGPT in developer mode, Cursor, VS Code, Windsurf, Gemini CLI and Codex — any client that supports remote MCP servers.
- How fresh is the data?
- Each stream is collected on its source's own cadence. Five-minute real-time prices land within minutes of the operator publishing them, and every stream reports its collection history, so an agent can say how fresh a number is.
- Can I use it to build an app?
- Yes. Every query_stream result carries restUrl — the same request as a plain GET on the public REST API at api.dryos.ai. The agent answers the question and hands you the endpoint to put in your code.
- How does it stop an agent reporting a wrong number?
- The server's instructions ride along with the connection: every timestamp is UTC, names are looked up rather than guessed, forecasts keep their vintages, null means the source did not report it, and every answer cites the stream and the intervals behind it.