HeatPump AI MCP server

HeatPump AI exposes a Model Context Protocol (MCP) server so an outside agent — Meta Muse, Claude Code, Cursor, or any MCP-speaking client — can look up our manual-derived corpus of heat pump error codes and blink codes, and, with an API key, run a real paid diagnosis session. It is for developers who want to bring HeatPump AI's knowledge into their own agent or workflow.

Endpoint

https://europe-west1-heatpump-ai.cloudfunctions.net/mcp

Transport: MCP streamable HTTP, POST only. The server is stateless — every request is handled independently, with no session kept open between calls. Send JSON-RPC 2.0 bodies with Content-Type: application/json and Accept: application/json, text/event-stream; a GET returns 405.

Quick test

Free tool, no account needed:

curl -s -X POST https://europe-west1-heatpump-ai.cloudfunctions.net/mcp \
-H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"lookup_error_code","arguments":{"brandSlug":"panasonic","familySlug":"hz","code":"F 11"}}}'

Paid tool with your key (see Getting an API key):

curl -s -X POST https://europe-west1-heatpump-ai.cloudfunctions.net/mcp \
-H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer hpk_..." \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_credit_balance","arguments":{}}}'

tools/list returns all twelve tools with their input schemas.

Tools

Seven free tools need no auth. Five paid tools need Authorization: Bearer hpk_....

ToolAuthInputsDescription
list_familiesnone—Brands and model families HeatPump AI has data for. Call this first to get a brandSlug/familySlug.
lookup_error_codenonebrandSlug, familySlug, codeDeterministic lookup of a fault identifier. Not always a short alphanumeric — some manufacturers print a NAMED alarm in the manual's own language (e.g. ComfortZone's Swedish Kondensortemperatur larm). Call list_error_codes if you do not know the shape. Says when a fault needs a certified technician.
list_error_codesnonebrandSlug, familySlugEvery fault identifier the family's manual documents, code + title only. Use it instead of guessing at a wording.
list_blink_codesnonebrandSlug, familySlugLED blink patterns the family reports faults with, when documented.
search_manualnonebrandSlug, familySlug, query, localeKeyword search over manual sections; returns section ids for read_manual_section.
read_manual_sectionnonebrandSlug, familySlug, sectionIdA section's summary and fact list, in our own words.
find_error_codenonecodeWhich covered brands and families print this error code. Identification only — call lookup_error_code on the family you confirm for the fault and what to do.
start_diagnosisBearerbrandSlug, familySlug, locale, model (optional)Opens a paid diagnosis session for one family. Needs a positive credit balance; starting does not spend one.
send_diagnosis_messageBearersessionId, messageOne paid, guardrail-checked AI turn. Charges credits only for a delivered answer.
end_diagnosisBearersessionIdCloses the session. No charge.
get_credit_balanceBearer—The key holder's HeatPump AI credit balance.
buy_creditsBearerpack (credits_500, credits_1000, credits_1500)Returns a Stripe Checkout link for one credit pack. Give it to the user; they approve the payment on Stripe's page and the credits arrive after payment.

Getting an API key

  1. Sign in at https://heatpump.nordmindai.com/account/ with Google or a one-time email link (no password).
  2. Accept the two disclosure checkboxes (AI assistant notice and no-reliance notice).
  3. Create a key. It is shown once — copy it somewhere safe.
  4. Only one key is active per account. Creating a new key revokes the previous one.
  5. Revoke your key any time from the same page.

Send the key as Authorization: Bearer hpk_... on every paid-tool call.

A missing or revoked key does not produce an HTTP 401: the paid tool returns a normal MCP result with isError: true and a message saying a key is required. Check isError rather than the HTTP status.

Your account page

https://heatpump.nordmindai.com/account/ shows your credit balance, the heat pump from your most recent conversation, and every conversation on the account — including sessions started through this MCP server, which you can read back there — plus API key creation and revocation.

Credits

Paid tools charge credits per delivered answer. Every new account starts with a starter credit grant (20 credits today). A diagnosis turn is charged by the answer's actual cost, so one turn can use several credits, and a long answer can use most of the starter grant.

Buy more in either of two ways — they fill the same wallet:

  • On your account page, https://heatpump.nordmindai.com/account/#buy: 500 credits ($4.99), 1,000 ($8.99) or 1,500 ($12.99). Prices include VAT. Payment is by card or Link through Stripe Checkout; credits appear within seconds of paying.
  • Through the buy_credits tool: the agent receives a checkout link and gives it to you. You approve the amount on Stripe's page; nothing is charged without that step.

If your wallet is empty, a paid call returns an error naming both routes. Credits never expire. The same packs are also sold as in-app purchases in the iOS app.

What the answers contain

Answers are our own summaries and facts — never manual text verbatim. Every answer carries an AI disclosure and states its safety outcome. When a fault requires a certified technician, the answer gives the exact technician-required sentence and no repair steps. If you are building an agent on top of this server, relay those lines to your user verbatim rather than paraphrasing them.

Connecting

Claude Code:

claude mcp add --transport http heatpump https://europe-west1-heatpump-ai.cloudfunctions.net/mcp --header "Authorization: Bearer hpk_..."

Omit --header to use only the free tools.

Cursor, Claude Desktop (developer config), and other MCP clients: an HTTP server entry such as

{ "mcpServers": { "heatpump": { "url": "https://europe-west1-heatpump-ai.cloudfunctions.net/mcp", "headers": { "Authorization": "Bearer hpk_..." } } } }

(the exact key names vary by client; see its MCP documentation).

Meta Muse: add a custom connector — paste the endpoint URL and your bearer key into Muse's connector form.

claude.ai, Claude Desktop and Claude mobile (free tools): add a custom connector with the URL https://europe-west1-heatpump-ai.cloudfunctions.net/mcpFree and no authentication. That endpoint serves the seven free tools only. The paid tools need a personal key, which claude.ai connectors cannot carry per user today — use Claude Code or another client above for those.

ChatGPT: not supported yet — ChatGPT's connector model requires OAuth, which this server does not implement yet.

Limits

  • No images over MCP — photo diagnosis is app-only for now.
  • Coverage is limited to the heat pump families returned by list_families; manual data is available in English, Norwegian, Swedish and Finnish.
  • Paid tools are rate limited per account (a burst of sessions or messages can be rejected); free tools are not per-account limited.
  • Keys are personal — do not share yours.

Contact

info@nordmindai.com