Cernion Grid Intelligence
Provides integration with Codecov for uploading and viewing code coverage reports, with public visibility of coverage data through the platform.
Powers the AI agent for natural-language query planning, enabling users to describe energy data needs in plain text and automatically generate, execute, and interpret multi-step microservice plans.
Supports feeding live CSV data from agent sessions into Grafana dashboards via parameterized CSV endpoints for real-time energy market visualization and monitoring.
Enables direct data ingestion into Jupyter notebooks via pandas read_csv() using live CSV endpoints from agent sessions for interactive energy data analysis.
Built on the Moleculer microservices framework, providing a scalable platform for developing energy market applications with service discovery, load balancing, and distributed architecture.
Provides grid infrastructure analysis capabilities via OpenStreetMap/Overpass API for VNB assignment validation, nearby infrastructure identification, substation inventory, and grid topology analysis.
Enables direct integration with pandas DataFrames through live CSV endpoints from agent sessions, allowing seamless data analysis and manipulation in Python environments.
Provides automatic OpenAPI/Swagger documentation generation for all REST endpoints, with interactive API exploration and testing capabilities through Swagger UI.
Cernion Energy Tools
API-first Agentic Energy Operations Layer for Stadtwerke, DSOs and energy-service teams. Cernion combines deterministic energy-domain services, curated capability routing, evidence dossiers, VDMI role logic, HITL boundaries and read-only integration surfaces for REST, Sidecar, Microsoft Copilot, n8n, OpenWebUI and OpenClaw.
What This Repository Is
Cernion Energy Tools is the backend runtime behind cernion.de: a Node.js/Moleculer service platform for energy-domain automation, decision support and agentic process orchestration.
It is not just a chat frontend for energy APIs. The current platform contains:
138 Moleculer services in
services/1007 OpenAPI paths in
openapi-export.json304 JavaScript test files under
tests/curated Copilot, Sidecar, OpenWebUI, n8n and OpenClaw integration surfaces that expose only governed subsets of the backend
agentic runtime components for routing, receipts, dossiers, HITL, evidence, revalidation and observability
Current package/OpenAPI version: 0.99.0
Public positioning
Cernion does not let the chat decide. The platform structures the objective, available data, service chain, evidence, gaps, risk and the next safe gate. The result is not a black-box answer, but a dossier-ready status or decision-readiness view for Stadtwerke, distribution-system operators and energy-service teams.
Cernion Energy Tools is not an automatic contract decision, grid-connection commitment,
device-control system, MaKo execution system, billing/settlement system or tariff-mutation
machine. Suitable integration scopes are ask, plan, evidence, capability lookup
and read-only status. Write-like or consequential steps stay in draft, prepare or
pending confirmation states and require HITL.
The public website explains Cernion as an energy-intelligence and decision platform for Stadtwerke: MaStR analysis, grid planning, §14a, Redispatch, Energy Sharing, customer-service automation and Microsoft Copilot complementarity. This repository is the deeper technical system underneath that product narrative.
Public discovery links
Product and topic hub: Cernion Themencluster
Capability overview: Cernion Capability Hub
API and agent integration: MCP Tools & API and REST API
Operational search-intent pages:
Related MCP server: EnergyAtIt MCP Server
Why Cernion Is Agentic
Cernion is API-first, but the API is only the integration layer. The agentic part is the runtime behavior:
Understand an energy-domain objective Examples: validate a grid-connection scenario, build a VDMI responsibility matrix, assess BESS finance risk, identify Energy Sharing data conflicts.
Select a governed capability path The
capability-brokermaps intent to curated service chains instead of exposing the full tool catalogue to an LLM.Execute deterministic microservices Energy-domain calculations and regulatory checks remain code-backed and reproducible.
Maintain process state Personal-agent sessions, receipts, dossiers, HITL items and object-store evidence allow work to continue beyond a single chat turn.
Produce auditable artifacts Outputs are not only natural-language answers; they include dossiers, evidence packages, decision frames, validation reports, receipts and traces.
Govern revalidation New facts can become control signals for agents: if a MaStR asset, datapoint or object-store evidence item changes, dependent decisions can be identified and rechecked.
This is the practical difference between a question-and-answer bot and an agentic energy-operations platform.
Core Architecture
External systems / humans / agents
|
v
REST API, Copilot API, OpenClaw Sidecar, MCP-like tool surfaces
|
v
Personal Agent / Capability Broker / Agent Receipts / Blueprints
|
v
Governed Moleculer services
|
v
Datapoints, Object Store, Knowledge RAG, Dossiers, Jobs, ObservabilityRuntime Layers
Layer | Components | Purpose |
Service bus | Moleculer, REST gateway, async jobs | Deterministic service execution and API exposure |
Data layer | Object Store, Datapoints, DataSources, Knowledge RAG | Internal data, external evidence, tenant memory and source material |
Agentic routing | Personal Agent, Capability Broker, Blueprints, Agent Receipts | Intent resolution, tool-chain selection, durable execution |
Governance | VDMI, HITL, Clarification Policy, Interface Placeholder, Evidence Revalidation | Responsibilities, missing evidence, human decisions, gap handling |
Integration | Full OpenAPI, Copilot subset, OpenClaw Sidecar, Webhooks, MCP-style tools | Safe use by humans, copilots, agents and automation systems |
Observability | Metrics, traces, audit records, job status | Operation, auditability and support |
Main Domains
The platform covers several energy-industry work areas. The following list is representative; the OpenAPI export is the source of truth.
Domain | Examples |
Grid connection and fNAV | Grid-connection validation, flexible network access, connection-rejection evidence |
VDMI governance | Verantwortlich, Durchführend, Mitwirkend, Information per process step; findings, dossiers and evidence |
Zielnetzplanung (ZNP) | Projects, assumptions, Layer 0/1/2 assets, portfolio analysis, NOVA decisions |
Asset and data quality | MaStR quality, asset overrides, ghost-asset alerts, datasource classification |
Energy Sharing and settlement | §42c-style allocation, settlement checks, Redispatch ex-post reconciliation |
EDM and market communication | MSCONS import, EDM validation, virtual meters, messkonzept checks |
Forecasting and flexibility | Forecast engine, residual load, §14a flex events, SLP profiles |
Finance and investment | Finance agent, fNAV economics, BESS screening, capex prioritization |
Reporting and BI | Reporting governance, dashboard API, VNB monitoring, EWK monitoring |
Knowledge and evidence | Knowledge RAG, evidence routing, dossiers, object-store context |
Agentic Components
Agentic Sitemap / AI Catalog
GET /.well-known/ai-catalog.json and GET /.well-known/ard.json publish a public
catalog generated on each request from the loaded service registry and live OpenAPI
metadata. Each published REST service has an entry with action/capability tokens,
representative queries and an inline OpenAPI contract. The catalog also links to
the full OpenAPI document and llm.txt. Root responses advertise both discovery
paths through HTTP Link headers; conditional requests support ETags.
No manual JSON maintenance or LLM call is needed. Protected/private actions, service settings and runtime data are excluded. Catalog visibility grants no permission to invoke an action. See deployment details.
The formats are drafts: AI Catalog and
Agentic Resource Discovery.
ARD now uses ard.json; the requested ai-catalog.json remains available for
clients using the predecessor path. Offline tests validate both formats against
pinned upstream schemas; npm run sync:ai-catalog-schemas refreshes those fixtures
from the revision pinned in the sync script (Apache-2.0).
Personal Agent
services/personal-agent.service.js is the user-facing orchestration layer. It keeps
conversation state, routes intents, calls deterministic services and synthesizes results
without turning the whole backend into one prompt.
Key concepts:
layered context management ("Zwiebelmodus")
durable execution state and resumable sessions
file and datapoint intake
evidence-gap handling
work-out-loud events
presentation-aware final artifacts
Capability Broker
services/capability-broker.service.js and src/capability-catalog.js provide curated
capability routing. This is the control point that prevents agents from seeing or choosing
the entire backend surface directly.
Examples of curated capabilities include:
vdmi_role_boundary_governancevdmi_asset_validation_governancevdmi_grid_connection_decision_governancenetzfahrplan_fnav_assessmentznp_portfolio_assessmentsettlement_a96_reconciliationfinancier_due_diligence_assessmentreporting_governance
Agent Receipts
services/agent-receipts.service.js turns repeatable agent workflows into versioned,
testable recipes. Receipts describe matching conditions, required inputs, tool plans and
knowledge plans. They are the bridge from "the agent answered" to "the platform selected a
governed, inspectable workflow".
Dossiers and Decision Frames
Cernion uses dossiers and decision frames for auditable outputs. A result can include:
facts used
hypotheses
evidence gaps
risks
forbidden assumptions
VDMI responsibilities
next actions
human-review requirements
Agentic Governance and Revalidation
Two active architecture tracks are captured in GitHub issues:
#275 Agent Governance Runtime: Bestandsanalyse vor Umsetzungsplan
#276 Agentic Governance Layer: Faktenänderungen als Steuerungssignal für Agenten
The target direction is that a changed fact can become a control signal for agents:
MaStR / datapoint / object-store change
|
v
Dependency and impact analysis
|
v
Revalidation queue
|
v
Agent receipt / capability flow rerun
|
v
Audit note, updated dossier, HITL item or exception caseThis is how Cernion moves from one-time API analysis toward RPA+ for commodity energy processes: standard cases are automated, exceptions are made explicit.
Integration Surfaces
Full REST API
The complete REST API is generated from Moleculer service metadata.
Swagger UI:
GET /api/docsOpenAPI JSON:
GET /api/openapi.jsonStatic export:
openapi-export.jsonPublic API recipes for developer and LLM discovery: docs/public-api-recipes.md
The recipes use only synthetic examples, environment-variable based tokens and tenant-safe demo identifiers. They document consultation/read-only/pending-confirmation boundaries and are not approval, billing, tariff, device-control, contract or production-mutation demos.
Regenerate and audit:
npm run export:openapi
npm run audit:openapiMicrosoft Copilot Bridge
Cernion does not expose all 600+ API paths to Microsoft Copilot. The Copilot bridge uses a
curated allowlist maintained in config/copilot-operations.json.
Relevant files:
openapi-copilot.json
Generate the Copilot subset:
npm run export:openapi:copilotThe Copilot-facing surface distinguishes:
readoperations with no side effectsdraftoperations that prepare suggestionsprepareoperations requiring confirmationconsequential operations that remain blocked until explicitly governed
OpenClaw Sidecar
Cernion Energy Tools can be used from OpenClaw through the public ClawHub package @cernion/openclaw-energy-tools-sidecar. Install it in OpenClaw with:
openclaw plugins install clawhub:@cernion/openclaw-energy-tools-sidecarThe companion repository SmartEnergySolutions/cernion-openclaw-sidecar provides an OpenClaw plugin for generic Energy Sidecar providers, with Cernion as the first provider.
The product boundary is intentionally split: OpenClaw is the agent runtime for conversation, tool orchestration, memory and answer synthesis. Cernion Energy Tools is the energy-domain evidence, policy, Knowledge RAG and CET-governed process layer behind answers about MaStR assets, grid context, Redispatch, Zielnetzplanung, 14a/14d EnWG duties, process intake, Domain Router case state, Case Event Outbox/MWI and operational status.
The sidecar consumes the Cernion Sidecar contract:
GET /api/agent-sidecar/descriptorGET /api/agent-sidecar/mcp/toolsPOST /api/agent-sidecar/mcp/tools/:name/callPOST /api/knowledge-rag/queryPOST /api/evidence-router/routePOST /api/copilot-process/intentsGET /api/_agent/capabilities[?domain=]GET /api/_agent/operations[?domain=]
The boundary is deliberately strict:
Sidecar tokens identify tenant, actor and client context; CET authorization/governance is the permission boundary.
Domain Router and MWI tools may update internal CET PouchDB state such as case state, event delivery state and related-session links.
evidence/hydration lookups and Blueprint plans remain read-only where that is the actual operation.
process intake uses a separate process token and creates only
pending_confirmationreceiptsadmin, token, HITL-resolve and production mutation paths are blocked
domain routing remains inside Cernion, not inside the sidecar
MCP-Style Tooling
Cernion also publishes AI-agent-friendly tool descriptions through llm.txt, capability
resolution endpoints and MCP/OpenClaw-style tool lists. The public documentation page
describes this as a set of ready-to-use energy tools for Stadtwerke.
Quickstart
Prerequisite: Node.js 22+
git clone https://github.com/energychain/cernion-energy-tools.git
cd cernion-energy-tools
npm install
cp .env.example .env
npm startDefault local endpoints:
API:
http://localhost:3000/apiSwagger UI:
http://localhost:3000/api/docsWeb app:
http://localhost:3000/app
Full setup guide: QUICKSTART.md
Configuration
Start with .env.example. Common variables:
Variable | Purpose |
| API token for authenticated access |
| LLM provider ( |
| Model name for the selected provider |
| Provider credentials when needed |
| Base URL used in generated OpenAPI servers and CLI share links |
| API gateway port, default |
| Enable OpenTelemetry tracing |
| OTLP HTTP trace destination |
| Expose |
LLM health:
GET /api/system/llm/healthObservability:
GET /metricsreturns Prometheus-compatible metricsGrafana examples: docs/observability/grafana/README.md
Auth guide: BEARER_TOKEN_AUTHENTICATION.md
Development
npm test
npm run test:unit:ci
npm run test:tdd-matrix
npm run test:rest-usecases
npm run lint
npm run audit:openapi
npm run check:llm
npm run release:checkUseful generation commands:
npm run export:openapi
npm run export:openapi:copilot
npm run generate:llm
npm run blueprint:exportCreate a new Moleculer service:
npm run createDemonstrating Cernion
Good demos should show an agentic run, not only a chat answer.
Strong demo patterns:
VDMI: generate a responsibility matrix per process step and detect role-boundary violations
BESS: assess a site across grid connection, risks, revenue assumptions and financier evidence
Energy Sharing: identify MaLo/MeLo, EDM and settlement conflicts that block the process
MaStR/Revalidation: show how an external asset update can trigger rechecking of dependent decisions
Copilot/Sidecar: show Cernion as the governed energy-domain backend behind a general-purpose agent
A useful agentic trace should make these visible:
User objective
-> intent and capability
-> selected receipt / blueprint
-> service chain
-> evidence used
-> gaps and risks
-> HITL / policy decision
-> dossier or decision artifact
-> audit traceDocumentation Map
Document | Topic |
Curated Microsoft Copilot API subset | |
docs/v0.52-implementation-plans/personal-agent-v052-architecture-tdd.md | Personal Agent architecture and TDD contract |
docs/v0.52-implementation-plans/v0.52.1-capability-broker.md | Capability Broker implementation plan |
Grafana dashboards | |
Data protection impact-assessment template | |
Backend context for UI/frontend work | |
Release history | |
MCP/tool reference | |
RC3 append-only Shared Service Journal, deterministic digests and retention | |
CET Domain Router, typisierte Fallverknüpfung, own/team/tenant-Sichtbarkeit und Case Event Outbox / MWI | |
Tenant-Gedächtnis: Aussagen, gemeinsame Anker, Quellen, Korrektur und einmalige Hinweise | |
RC3 Open WebUI / Cernion Workbench Tenant-Gateway access without AgentOS | |
Machine-readable service and capability context | |
Security policy |
License and Operator Context
License: GPL-3.0. See LICENSE.
Cernion is developed by STROMDAO GmbH in the context of the Cernion energy-intelligence platform.
Support and product feedback:
dev@stromdao.com
Workbench: verstehen, antworten, Fall im Hintergrund
Inhaltliche Nachrichten und eingefügte Fremdtexte werden über die zentrale LLM-Fassade in ein Lagebild übersetzt. CET antwortet mit relevanten Quellen und höchstens drei neuen fachlichen Rückfragen. Konkrete Arbeitsaufgaben erhalten einen Hintergrundfall; „Kein Fall“ nimmt ihn zurück. Wissens- und Statusfragen erzeugen keinen Fall. Versandwünsche führen zu einem Hinweis und auf ausdrücklichen Wunsch zu einem internen Entwurf. Quellenzuordnung und Relevanzschwelle sind in src/workbench-knowledge-sources.json konfiguriert. Details und Grenzen stehen im Tenant-Gateway-Leitfaden und im Akzeptanzbericht zu #739.
Organisationsrelevante Aussagen hält CET tenantweit fest und bestätigt sie einmal mit „Hab ich festgehalten: …“. Seltene gemeinsame Anker verbinden Aussagen verschiedener Personen; erkannte Wechselwirkungen erscheinen im Gespräch und einmal beim nächsten Kontakt der anderen Person. Tenant-Trennung und Vertraulichkeitsstufen gelten bei jedem Zugriff. Details stehen im Tenant-Gedächtnis-Leitfaden.
Tenant-Datenkatalog
Vollständige CSV-/XLSX-Texttabellen aus Open WebUI werden tenantweit als Nutzerangaben
abgelegt und über dataset.query deterministisch ausgewertet. Gleicher Inhalt erzeugt
auch bei erneut gesendeten Anhängen keine weitere Version oder Bestätigung.
Einrichtung, Grenzen und Beispiele: Tenant-Datenkatalog. Strukturierte Nachrichten und EDIFACT: Formate, Prüfungen und Abfragen.
Originaldateien im Chat (#790)
Installation des versionierten Open-WebUI-Filters, signierte Downloads, Dateilimits und Aufbewahrung: Runbook. Ohne installierten Filter bleibt der bisherige Dokument-Textweg erhalten.
RC3 Hotfix für Mail und Dokumenteingang (#846)
Die Tabellenerkennung benötigt einen Kopf mit mindestens zwei Spalten und mindestens zwei gleich breiten Datenzeilen. WORKBENCH_DATASET_MIN_TABLE_RATIO bestimmt den erforderlichen Anteil im Tabellenblock (Standard 0.75, gültig: größer als 0.5 bis 1). Gewöhnliche Parserfehler fallen auf Text zurück; die Plausibilitätssperre für tatsächlich erkannte Tabellen bleibt aktiv. Datei-, Zeilen- und Spaltenbudgets gelten weiterhin. Nur das eindeutige, nicht verlustfrei herstellbare Open-WebUI-Zerlegungsmuster verwendet WORKBENCH_DATASET_DAMAGED.
Synthetische Fixtures regenerieren und die Regressionen lokal prüfen:
node scripts/generate-conversation-fixtures.js
node scripts/generate-review-fixture.js
node scripts/generate-dataset-fixtures.js
npm test -- --runInBand tests/workbench-846.test.js tests/workbench-838.test.jsDas bestehende Live-Skript prüft zusätzlich Mailaufnahme (1), Protokollzusammenfassung (3), Mail-Verlauf neben einem fremden INVOIC-Datensatz (5) und ausdrücklich genannte Nachricht (6). Es startet einen lokalen Broker mit isolierten temporären Datenbanken und einem synthetischen Validierungs-Tenant. Alle Sprachmodellaufrufe laufen über die zentrale Fassade und das bestehende Aufruf-/Tokenbudget. Ausschließlich mit einer Nichtproduktions-Konfiguration starten:
WORKBENCH_ENV_FILE=/path/to/nonproduction.env \
WORKBENCH_VALIDATION_REPORT=/tmp/rc3-hotfix-846-live.json \
LIVE_MAX_MODEL_CALLS=80 LIVE_MAX_TOKENS=1000000 \
node scripts/validate-rc3-closeout-live.jsDie Erweiterung wurde nicht live ausgeführt. Ein Live-Bericht darf erst nach einem gesonderten Nichtproduktions-Lauf als Abnahmebeleg verwendet werden.
This server cannot be deployed
Maintenance
Related MCP Connectors
Protocol-native energy infrastructure orchestration for AI data centers. Provides 46 MCP tools across 8 grid protocols (IEC-61850, DNP3, Modbus, OCPP, OpenADR, IEEE 2030.5, IEC 60870-5-104, ICCP) with 5 core API primitives: connect, dispatch, settle, comply, and intel. Enables AI agents to programmatically interact with substations, grid interfaces, and energy assets for real-time workload-grid coordination.
Live US power market prices, load, generation, weather and permits for AI agents.
Real-time electricity price signals for AI agents. Spot prices, cheapest hours, and contract recommendations. 31 countries across Europe and Oceania. No authentication required.
Real-time electricity prices for AI agents. 40+ countries, 100+ zones. No auth required.
Related MCP Servers
- AlicenseBqualityDmaintenanceMCP server providing AI agents with access to German government open data. 12 tools across 6 categories: Autobahn traffic, DWD weather, NINA disaster warnings, SMARD energy market, Bundestag parliamentary data, and pollen forecasts. All APIs are free, no keys required.162MIT
- AlicenseBqualityDmaintenanceConnects AI agents to energy infrastructure with 30+ tools for managing sites, assets, dispatch, settlements, compliance, and carbon tracking.3438 npm1MIT
- AlicenseAqualityDmaintenanceProvides real-time electricity grid data including CO2 intensity, power mix, and wholesale prices, plus optimal green time windows for energy-intensive AI tasks. Supports UK, Germany, and global regions with optional API keys.9MIT

Voltcast MCP Serverofficial
AlicenseNot gradedqualityCmaintenanceEnables access to European electricity data including day-ahead prices, probabilistic forecasts, carbon intensity, and cheapest-window optimization for 43 bidding zones.MIT