solarnetwork-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@solarnetwork-mcp show me the latest solar generation data"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
solarnetwork-mcp
Read-only MCP server for SolarNetwork — query solar generation, consumption, and other DER telemetry over the SolarQuery API. Zero config against a public demo node. Public (/pub) mode only; authenticated (sec) mode is not implemented.
Setup
npm install
npm run build
npm test # offline, against captured fixtures
npm run smoke # live check against demo node 108MCP client config (stdio):
{
"mcpServers": {
"solarnetwork": {
"command": "node",
"args": ["/path/to/solarnetwork-mcp/dist/index.js"]
}
}
}Related MCP server: Victron VRM MCP Server
Tools
Tool | Answers |
| What date range has data? (call first) |
| Which source IDs exist? |
| Most recent datum per source |
| Time series between two node-local dates (Day/Hour/Month; raw guarded) |
| Energy used/generated over a period |
Responses are compact { data, meta } JSON; meta reports count, truncated, and paging. Day aggregation by default, 500-row cap, raw queries over 7 days require allowRaw.
Demo node
Node 108 — public, posting since 2013, time zone Pacific/Auckland. Sources: DB (bidirectional meter, richest stream), Main (intermittent), A/B/C (phase watts), OfficeTemp (dormant). A complete month to query: June 2026.
Environment
Variable | Default |
|
|
| unset; sec mode is unimplemented and the server fails fast if they are set |
Available Tools
5 toolsget_latestMost recent datumARead-only
What is the most recent datum for each of a node's sources, and when was it recorded? Values are the device's own property map (e.g. watts, wattHours) passed through as-is — property names are the only unit hints; do not invent units. Sources silent for ~90 days are omitted unless you pass sinceDate to look further back.
Inputs: nodeId (required), sinceDate, sourceIds.
get_meter_readingMeter reading over a periodARead-only
How much energy (or any accumulating meter property, e.g. wattHours) was used or generated between two node-local dates? Computes a meter-style difference between readings nearest the period boundaries — the natural fit for 'total for June'. Each row shows the difference plus the _start/_end raw readings; only sources with accumulating properties appear.
Inputs: nodeId (required), endDate (required), startDate (required), sourceId.
get_reportable_intervalReportable date rangeARead-only
What date range does a node have data for? Call this first for an unfamiliar node so you never query an empty range. Returns startDate/endDate in the node's local time zone, the timeZone name, and day/month/year counts.
Inputs: nodeId (required), sourceId.
list_sourcesList source IDsARead-only
Which data streams (source IDs) does a node have? Without a date window this lists every source that ever posted — including long-dead ones — so pass a UTC window to see only sources active in that period.
Inputs: nodeId (required), endDate, startDate.
query_datumQuery time seriesARead-only
Time series for a node between two node-local dates (end exclusive) — answers 'how much / what pattern over time'. Default Day aggregation gives one row per source per day; Hour suits intra-day shape (the API silently coarsens Hour to Day beyond 32 days); None returns raw samples and is refused over 7 days unless allowRaw=true. Responses are capped at 500 rows — when meta.truncated is true, page with offset.
Inputs: nodeId (required), endDate (required), startDate (required), offset, +3 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
Tools have distinct purposes: obtaining date ranges, listing sources, retrieving latest data, querying time series, and computing meter readings. Minor potential overlap between query_datum and get_meter_reading is clarified by descriptions.
All tool names follow a consistent verb_noun pattern (e.g., get_reportable_interval, list_sources) with underscores, ensuring predictability.
Five tools cover the essential operations for a solar network data API without being excessive or insufficient, well-scoped for the purpose.
The tools cover data availability, source listing, latest data, time series queries, and meter readings. Minor gaps like source metadata are absent but acceptable for a read-only API.
Related MCP Connectors
Read-only MCP server for The Quiet Protocol's engines, benchmarks, proof, and business data.
Public, read-only MCP server for FarmNeural company facts, packages, and capabilities.
Read-only MCP server for AIStatusDashboard status, incidents, metrics, and fallback recommendations.
MCP server for the Seline Analytics API
Related MCP Servers
- AlicenseAqualityFmaintenanceOne-call Australian energy-market plumbing via AEMO — cited, structured responses for market data and analysis, not a data broker.5129 PyPIMIT
- AlicenseBqualityDmaintenanceRead-only MCP server integrating with the Victron VRM API to monitor solar systems, batteries, alarms, and more.4139 npm6MIT
- AlicenseNot gradedqualityCmaintenanceA read-only MCP server for querying telemetry data from configurable backends. Provides tools to list sources, describe schemas, run bounded queries, and compute aggregates.MIT
- AlicenseAqualityCmaintenanceA lean Model Context Protocol (MCP) server that gives AI assistants like Claude structured access to a SolarEdge PV installation via the official SolarEdge Monitoring API.4MIT