Skip to main content

Charts & guides

SolarSENS MCP serves its data through tools. The assistant discovers Plants and reads bounded results through the tools in the tool reference.

It does not expose arbitrary files, database tables, object storage, or backend resources to the assistant.

Plant chart UI resource​

These resources are served when the Worker sets MCP_APPS to "true", as production does. When the flag is off, the server does not list them and adds no UI metadata to any tool.

URIMIME typeLinked from
ui://solarsens/plant-chart/v2-<build-id>.htmltext/html;profile=mcp-appget_plant_chart, through _meta.ui.resourceUri
ui://solarsens/plant-chart/v1.htmltext/html;profile=mcp-appCompatibility alias for older cached tool metadata only

The build ID is the first 12 hexadecimal characters of the SHA-256 of the self-contained generated HTML, including its JavaScript and CSS. It is computed by pnpm apps:build, not per request. Any changed bundle gets a new resource URI, so the host cannot reuse a previous bundle under the new cache key. The v1 alias serves the corrected renderer when re-read; it cannot replace an already cached or already open iframe.

After deploying a widget update, refresh the SolarSENS connector's tool metadata and make a new chart request. Reopening an old result alone may still show its cached widget. Published hosts may require their normal metadata-review process before adopting a changed resource URI.

A host that supports MCP Apps loads the resource and sends it the get_plant_chart result. The page draws the Plant chart with hover values, zoom, and a Plant-local time axis. It shows values as SolarSENS returned them. A missing timestamp or a JSON null appears as a gap, and the string "0" is shown as zero. When the server reports that coverage was not checked, the page shows a "Coverage not checked" badge.

The diagnostic footer shows the widget version, bundle build ID, and the request's correlation UUID. Parser failures include a bounded reason such as INVALID_DIMENSIONS, INVALID_ROW_SHAPE, or NO_READABLE_TIMESTAMPS. TOOL_ERROR and HOST_CONNECTION_FAILED identify different failure layers. Missing or invalid IDs are shown as unavailable; raw chart rows, credentials, and arbitrary error objects are never included in the diagnostic footer.

The page is self-contained. It declares an empty content security policy (no network or external domains), loads no external script, and calls no tools. Hosts that do not support MCP Apps still receive the normal get_plant_chart tool result.

Review performance​

The skill is served when the Worker sets MCP_SKILLS to "true", as production does. The server serves skill://solarsens/plant-performance-review/SKILL.md through the Skills extension (skills/list, skills/get, and resources/read). It is the same daily PR triage procedure as the optional prompt in Check templates. Clients that do not implement the Skills extension see it as an ordinary read-only resource. Production enables it.

Review strings​

skill://solarsens/string-fault-review/SKILL.md is served with MCP_SKILLS set to "true" when all required tools are served. It uses the same procedure as the string-fault-review prompt and the Review strings page.

Check your plants​

skill://solarsens/daily-portfolio-check/SKILL.md uses the same procedure as its prompt and guide. It requires MCP_SKILLS set to "true" and all required tools served.

Review alarms​

skill://solarsens/alarm-triage/SKILL.md is available after the alarm tools are served, with MCP_SKILLS set to "true". It uses the same procedure as its prompt and guide.

skills/list returns all available skills in one page, with no cursor. skills/get accepts each listed skill URI. Each entry gives the SHA-256 digest and UTF-8 size of the file that resources/read returns. Hosts without the Skills extension can read the files as resources.