MCP for Claude & Mistral
Icelake runs a remote Model Context Protocol (MCP) server. Add it to your AI assistant as a custom connector and ask questions about your data in your usual chat: the assistant explores your datasets, writes the SQL, and shows the answer as an interactive chart, table, or map inside the conversation.
It’s the same data and the same grounding as AI MasterMind, but in the assistant you already use, with its model, its memory, and your other connectors next to it.
New here? Start with the Quickstart so you have an Icelake account with some data in it.
What you need
Section titled “What you need”| Server URL | https://mcp.icelake.eu/mcp |
| Authentication | OAuth (you sign in with your Icelake account) |
| OAuth client ID | icelake-claude (no client secret) |
You sign in with the same account you use for the Admin Dashboard. The connector only ever sees your organization’s data, plus public datasets such as weather warnings and Geo & Public Datasets. The assistant itself only reads: it can’t change or delete anything. Changes to your Sheets happen only when you click a button in the Sheets view (see Sheets in the chat).
Add the connector
Section titled “Add the connector”Custom connectors are available on all Claude plans (Free: one custom connector). A connector you add on claude.ai is available in the Claude desktop and mobile apps with the same account.
Free, Pro, or Max plan
- Go to Customize → Connectors (claude.ai/customize/connectors) and click Add custom connector.
- Enter a name, e.g.
Icelake, and the URLhttps://mcp.icelake.eu/mcp. - Set the OAuth client:
- If the dialog shows Advanced settings, open it and enter OAuth Client ID
icelake-claude. Leave OAuth Client Secret empty. - If the dialog asks you to choose an OAuth client, pick Use your own OAuth client and enter
icelake-claude(no secret). The other two options (Claude’s published identity, Register automatically) don’t work with Icelake.
- If the dialog shows Advanced settings, open it and enter OAuth Client ID
- Click Add, then Connect, and sign in with your Icelake account.
Team or Enterprise plan
An Owner adds the connector once for the organization: Organization settings → Connectors → Add → Custom (type Web if asked), same URL and OAuth client ID as above. Every member then goes to Customize → Connectors, finds Icelake with the Custom label, and clicks Connect to sign in with their own Icelake account.
In a chat, click + → Connectors and make sure Icelake is switched on.
- Go to Context → Connectors and click Add connector.
- Choose Add a custom connector.
- Enter a connector name (letters and digits only, e.g.
icelake) and the server URLhttps://mcp.icelake.eu/mcp. - Choose OAuth as authentication and enter the client ID
icelake-claude(no client secret). - Save, then sign in with your Icelake account when Mistral redirects you.
Enable the connector in a chat from the connectors/tools menu.
After Icelake updates: Mistral keeps the tool list it loaded when you added the connector. If the assistant says a documented option doesn’t exist, remove the connector and add it again to load the current tools.
Try it
Section titled “Try it”Start with questions about your own data, in your own words:
- “How much did my PV system produce yesterday? Show it per hour.”
- “Compare power and produced energy today as stacked charts.”
- “Which hosts had the most error logs in the last 24 hours?”
- “Show today’s weather warnings for Schleswig-Holstein on a map.”
Switch to the view’s Table and SQL tabs to see the exact numbers and the query behind every answer. Where your app supports it, CSV downloads the shown rows and ⤢ opens the view fullscreen.
What the assistant can do
Section titled “What the assistant can do”The connector gives the assistant these tools. You never call them yourself, but knowing them helps you phrase questions.
| Tool | What it does |
|---|---|
get_icelake_context | Called first for every new question: SQL rules, the current time in your time zone, and the datasets most relevant to your question. |
explore_datasets | Finds datasets by keywords (“pv export”) or by a catalog query: sources, metrics, label values, and whether a metric is a gauge or a meter. |
execute_sql | Runs small exploratory queries the assistant uses to understand the data. You don’t see these results directly. |
resolve_place | Turns a place name (“Sankt Jürgen, Lübeck”) into its boundary for spatial questions. |
display_data | Runs the final query and shows the result to you as a chart, table, or map. |
list_sheets, get_sheet | Lists your Sheets and reads one sheet’s columns, description, and context document. |
open_sheets | Opens the Sheets view in the chat, optionally directly on one sheet. |
Charts, tables, and maps
Section titled “Charts, tables, and maps”- Time series and bar charts. Several series in one chart get a legend. Long-format results (one row per time and category) are split into one line per category automatically.
- Stacked panels for different units. Power (kW) and energy (kWh), or energy and price, are shown as panels stacked on one shared time axis with a synchronized hover, never on two y-axes in one chart.
- Maps. Any result with a
geometrycolumn renders as an OpenStreetMap map with points and polygons, colored by value when there is one. - Light and dark follow your app’s theme.
Times are shown in your time zone
Section titled “Times are shown in your time zone”Icelake stores timestamps in UTC. The connector presents them in your time zone (default Europe/Berlin): in the chart axes and table, and in what the assistant reads and quotes. “Today”, “yesterday”, and daily totals follow your local calendar, not UTC midnight. To use another zone, just say so, e.g. “…in New York time”.
Answers grounded in real values
Section titled “Answers grounded in real values”The assistant can’t see the chart it draws. Instead, every chart comes back to it with a short summary of exactly the drawn points: minimum and maximum (and when they occurred), mean, first and last value, and the number of peaks. It quotes those figures rather than guessing from a picture it can’t see, and it computes anything else with a query first.
Meters vs. instantaneous readings
Section titled “Meters vs. instantaneous readings”A lifetime energy meter (e.g. exported energy: 62,573 kWh) must never be summed or averaged. The energy for a period is the meter’s increase. The connector tells the assistant which metrics are meters (counter) and which are instantaneous readings like power or temperature (gauge):
- Your setting wins. In the Admin Dashboard go to Datasets, open a metric, and set Value type to Counter or Gauge.
- Otherwise source metadata decides. The Home Assistant integration (v0.3.0+) sends each entity’s
state_class(total/total_increasing= counter,measurement= gauge). - Otherwise naming conventions. Prometheus metrics ending in
_totalare counters.
When none of these apply, the assistant checks whether the values only ever increase before aggregating.
Sheets in the chat
Section titled “Sheets in the chat”Sheets are your own small, versioned tables: tariffs, budgets, inventory, measurements from a CSV file. The connector lets you work with them without leaving the chat. Ask, for example:
- “Open my sheets.”
- “Open the sheet electricity-tariffs.”
- “Create a new sheet from a CSV file.”
The assistant opens the Sheets view. Everything that changes data happens through buttons in that view, never through the assistant (see Who changes your data).
Availability: browsing sheets and asking questions about them works in Claude and Mistral. Creating, uploading, and editing in the view currently work in Mistral Le Chat / Vibe; Claude support follows.
Browse and ask
Section titled “Browse and ask”The view lists your sheets. Click one to see its rows on the Data tab (500 rows per page, ← Previous / Next →). You can ask questions about any sheet as usual, e.g. “What was the average Arbeitspreis in 2025? Show it as a chart.”: the assistant queries the sheet like any other dataset and answers with a chart or table. Open in Icelake ↗ opens the sheet in the Admin Dashboard.
Create a sheet from a CSV file
Section titled “Create a sheet from a CSV file”- Click New sheet (in the list) or Load data (in an open sheet).
- Choose a CSV file. It is uploaded directly from your browser to Icelake’s storage; the file doesn’t pass through the AI provider, and the assistant never sees its contents. Files of several hundred MB are fine.
- Review what Icelake detected: delimiter, header row, and for each column whether to include it, its name, and its type.
- Click Import. The view shows the progress; large files take a moment.
Edit rows
Section titled “Edit rows”On the Data tab, click a cell to edit it (Enter or Tab to confirm, Esc to cancel), + Add row to append a row, and a row’s ✕ to delete it (↺ keeps it after all). Nothing is stored until you click Save in the bar at the bottom; Discard throws your changes away. Every save creates a new version.
If someone else saved the sheet in the meantime, Icelake doesn’t overwrite their changes: the view tells you and offers Reload (discard my changes).
Document a sheet
Section titled “Document a sheet”Good documentation is what lets the assistant answer questions about a sheet correctly. The same documentation is used by AI MasterMind and editable in the Admin Dashboard.
- Columns tab: a description per column, e.g. meaning, unit, and allowed values (up to 500 characters each). Click Save column descriptions.
- Context tab: Edit description & context opens
- the description: one or two sentences shown in the dataset catalog and used for search (up to 1,000 characters);
- the context: a Markdown document with provenance, units, caveats, and good questions (up to 32 KB), with Edit / Preview.
The assistant reads the new documentation right away; search picks it up too.
History and delete
Section titled “History and delete”- History lists every version with its time. Restore… makes an old version the current one again; this is itself saved as a new version, so nothing is lost.
- Delete… removes the sheet and all its versions. To confirm, type the sheet’s exact name and click Delete permanently. This can’t be undone.
Who changes your data
Section titled “Who changes your data”- The assistant never writes. The tools it can call only read. Creating, importing, saving, restoring, deleting, and documenting are separate actions that only the Sheets view can trigger, and only when you click.
- Under your login. Every change runs with your own Icelake sign-in and is recorded in the sheet’s history, exactly as if you’d made it in the Admin Dashboard.
- The assistant is told what you did (e.g. “saved version 7: 3 rows changed, 1 added”) so it can continue the conversation with the current state.
Security and privacy
Section titled “Security and privacy”- Your login, your data. Every request carries your own Icelake sign-in, and the server takes your organization from it, never from what the assistant asks for. One organization can never query another’s data.
- The assistant only reads. Only
SELECTqueries are accepted, and queries on your data run under a read-only database user. Sheet changes come only from your clicks in the Sheets view. - What reaches the AI provider. The assistant’s model sees the results of the queries it runs: summaries of exploratory queries and the values of the final answer. Very large results such as big maps go to the chart only, not to the model. CSV files you upload in the Sheets view go straight to Icelake, not to the AI provider. Treat the connector like any other app you grant access to your data, and turn it off in chats where you don’t need it.
- Revoke access by removing the connector in your assistant.
Troubleshooting
Section titled “Troubleshooting”Sign-in fails with “invalid scope” or “invalid client”: check the OAuth client ID is exactly icelake-claude and the secret is empty. In Claude, don’t use Claude’s published identity or Register automatically.
The assistant says a parameter or tool doesn’t exist: your app is still using an older tool list. Remove the connector, add it again, and start a new chat.
A chart shows raw text (JSON) instead of a chart: your app is showing an outdated copy of the chart view. Remove and re-add the connector, then ask again in a new chat.
The Sheets view shows no New sheet / Save buttons, or an upload fails: editing currently works in Mistral Le Chat / Vibe only. In Mistral, remove and re-add the connector to load the current Sheets view.
“Not authenticated” or repeated sign-in prompts: disconnect and reconnect the connector to refresh your sign-in.