Utility Insights MCP: security and setup

Utility Insights MCP: security and setup

How the Utility Insights MCP signs people in, who can connect and what an AI assistant can reach.

Utility Insights MCP: security and setup

For utility IT, security and admin teams. For what the server does, see MCP servers.

The Utility Insights MCP lets assistants such as Claude or Microsoft Copilot answer questions about your customer portfolio: how many homes have solar panels or an EV, or which tariff would suit them better. People sign in with their own work account through Microsoft Entra ID, and only people your admins have given a role in the Eliq Client Admin Portal can connect.

ControlWhat it means
You control accessYour admins invite users and assign roles in the Client Admin Portal. No role, no connection.
Locked to your utilityEvery token is bound to your utility and your server address. It cannot read another utility's data.
Defined tools onlyThe assistant can call only the tools Eliq publishes. It never gets direct access to a database.
Read-onlyNo tool can change anything. Assistants can ask questions, nothing more.

How sign-in works

The connection uses the OAuth 2.1 authorization code flow with PKCE, the flow the MCP specification requires for remote servers, and Microsoft Entra ID for the sign-in itself. Your users are guests in Eliq's Entra tenant, invited by your own admins, and sign in with their existing work account. Eliq's Auth API sits between the assistant and Entra: it sends the user to Microsoft, checks the result and the user's role, and issues a short-lived token that only the Utility Insights server accepts.

  1. The assistant discovers how to sign in. The server answers an unauthenticated call with a standard pointer (RFC 9728) to Eliq's Auth API. Nothing is configured by hand on the assistant side beyond the server address.
  2. The user signs in at Microsoft with their work account. Sign-in happens on Microsoft's pages, not Eliq's, and Eliq never sees the password. Eliq asks Entra for openid and profile only: no mailbox, no files, no access to anything in your organisation.
  3. Eliq checks the result and the user's role. The ID token is verified (signature, issuer, tenant, audience, nonce). Eliq then reads the roles the user holds for your utility, the same roles your admins manage in the Client Admin Portal. No role means no token.
  4. The assistant gets a short-lived, narrow token. It is valid for 10 minutes, carries the single scope utility-insights.read and names your utility. The assistant renews it with a refresh token that changes on every use.
  5. Every call is checked again. The server verifies the signature, that the token was issued for this server, that it has the right scope, and that the utility in the token matches the server address it was sent to.

Security controls

QuestionAnswer
Who can connect?Only users your admins have invited and given a role for your utility. Admins add, change and remove users and roles themselves in the Client Admin Portal, and every change is written to the portal's audit log.
Can a token be stolen or replayed?PKCE with S256 is mandatory; plain PKCE and no PKCE are refused. Redirect addresses must match the registered value exactly. Authorization codes live 60 seconds, are single use and are stored only as a hash; reusing one revokes what it issued. The Entra leg has its own PKCE and nonce.
What if a token leaks?Access tokens expire after 10 minutes and are signed with RS256 using keys held in Azure Key Vault. Refresh tokens rotate on every use, and reusing an old one revokes the whole chain. Eliq can revoke a user's sessions at any time.
Could we see another utility's data, or they ours?No. Each utility has its own server address, {your-key}.mcp-utility-insights.eliq.com, and the utility in the token must match it or the call is rejected. The utility is never a tool parameter; it always comes from the token. Data is read from your utility's own database.
What can the assistant reach?Only the tools Eliq publishes, each with a documented input and output. No direct database access and no free-form queries. Every input is validated before it reaches your data, and all tools are read-only and marked so for the assistant.
What if an assistant misbehaves?Requests are capped at 64 KB, filters at 10 assets and 8 KB, and at most 3 queries run at once per utility. New tools are announced in the changelog before release.

What the assistant can ask

ToolAnswers questions likeReturns
get_portfolio_overview"Give me an overview of our customer base."Total locations, and how many have an EV, solar panels, a battery, gas or electric heating
get_segment_summary"Of the homes with solar, how many also have an EV?"The same counts for a filtered segment
count_locations_with_asset"How many homes have solar with at least 80% confidence?"One count, optionally with a threshold
get_optimal_tariff_distribution"Which tariff would suit our EV owners best?"Number of locations per best-fit tariff

Counts describe your latest analysis batch. Assets are detected from consumption data, not verified installations; EV and solar detections carry a confidence score.

The tool set will grow, for example with insights for a single location or lists of candidate customers from an analysis. Every new tool sits behind the same sign-in, role and utility checks, stays read-only, and is listed in the changelog with what it returns before it goes live.

Setting it up

Your side: Client Admin Portal

  1. Open Access management in the Eliq Client Admin Portal.
  2. Invite each person who should use the assistant with their work email address. They get an invitation from Microsoft to accept.
  3. Give them a role. Any Client Admin Portal role grants access to Utility Insights.
  4. Remove the user or their roles when they no longer need access.

Eliq's side: platform team

  1. Confirm your server address: https://{your-key}.mcp-utility-insights.eliq.com/mcp.
  2. Register your assistant as an OAuth client, with the exact redirect address it uses.
  3. Send you the client ID and the values for the assistant's configuration.
  4. Run a test sign-in with you in the test environment before going live.

Connecting an assistant

Claude

Verified. Claude discovers everything from the server address, so no client ID is needed.

  1. In claude.ai, add a custom connector with the server address.
  2. Click Connect and sign in with your work account.

For Claude Code:

claude mcp add --transport http eliq-utility-insights https://{your-key}.mcp-utility-insights.eliq.com/mcp

Microsoft Copilot

Set up together with Eliq, through an agent in Copilot Studio. The agent can also be published to Microsoft 365 Copilot and Teams.

  1. In your agent, add a tool of type Model Context Protocol.
  2. Enter the server address and choose OAuth 2.0, manual configuration, with the values below.
  3. Copy the redirect URL Copilot Studio shows and send it to Eliq, who registers it.
  4. Create the connection and sign in with your work account.
SettingProduction value
Server URLhttps://{your-key}.mcp-utility-insights.eliq.com/mcp
Authorization URLhttps://auth-api.eliq.com/oauth/authorize
Token URLhttps://auth-api.eliq.com/oauth/token
Refresh URLhttps://auth-api.eliq.com/oauth/token
Scopeutility-insights.read
Client IDProvided by Eliq
Discoveryhttps://auth-api.eliq.com/.well-known/oauth-authorization-server

Test environment: replace mcp-utility-insights with mcp-utility-insights-uat and auth-api with auth-api-uat. We recommend connecting there first.

Questions we usually get

Does Eliq see our employees' passwords?

No. Users sign in on Microsoft's pages with the work account your organisation manages. Eliq receives a signed ID token that says who signed in, and stores only the user's Entra object ID with the session.

Does the AI vendor get access to our customer data?

The assistant receives the results of the tools it calls, and nothing else. It never gets direct database access, and only users your admins have given a role can make it call the tools. Tool results become part of the conversation, so how the vendor handles them is governed by your agreement with that vendor (for example Microsoft for Copilot).

How do we remove someone's access?

Remove the user, or their roles, in the Client Admin Portal. They can no longer sign in to the server. To end sessions that are already open immediately, ask Eliq to revoke that user's tokens; otherwise they end when the refresh token is no longer valid.

Do we need to set anything up in our own Microsoft tenant?

No. Users are guests in Eliq's Entra tenant and access is managed in the Client Admin Portal. Eliq asks only for the sign-in permissions openid and profile, and gets no access to anything in your organisation.

Can a token for our utility be used against another utility?

No. Every token names one utility, and every server address belongs to one utility. A token sent to another utility's address is rejected before any tool runs.

What do you log?

For each tool call: tool name, outcome, utility ID, duration and a trace ID. The question, filters and answers are not logged. Sign-in logging records error codes and client IDs, not names or email addresses.

Standards: OAuth 2.1 authorization code with PKCE, RFC 8414 authorization server metadata, RFC 9728 protected resource metadata, Model Context Protocol 2025-11-25 and 2026-07-28.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Updated on: 
Nov 2, 2026