Skip to main content

MCP · protocol 2025-06-18

Agents that must not invent OEM steps

An HVAC MCP server your agent can actually trust

Your users already ask ChatGPT for Daikin U4 or Mitsubishi P1. Without tools, the model improvises. AskMarcel MCP returns cited manufacturer meaning — or a structured abstention when the SKU is out of scope.

Not a parts-catalog or inventory platform — every actionable step must trace to a manual page or the tool refuses to bill.

The business problem

Generic LLMs hallucinate on codes your technicians live with daily

Product teams shipping “AI copilots” for installers hit the same wall: the model sounds confident on E6, U4, or P1, but cannot point to the OEM page. A wrong inverter swap can cost far more than API fees — and destroys trust in your brand.

01

Tooling gap

Off-the-shelf MCP samples search the web. HVAC needs brand-normalised codes, French and UK manuals, and abstention when the model is not on the right SKU.

02

Compliance pressure

Enterprise buyers ask for citations, audit logs, and a fail-closed path when provenance is missing — not a disclaimer buried in the system prompt.

03

Speed to ship

Building and maintaining OEM corpora in-house can take years. Your roadmap is an agent UX, not a document-ingestion factory.

Real scenario

Claude Desktop + Mitsubishi P1 on a service ticket

A distributor’s internal agent reads a Slack thread: “Mitsubishi AE P1 after power cut — outdoor unit silent.” The agent calls get_error_code, then diagnose_v2 with the resolved model_id.

The session returns seven fine-grained ST-02 causes with orientation checks — not “replace the outdoor board” on the code alone. The agent posts the cited manual excerpt and stops if the technician cannot confirm the sensor chain.

  • MCP host: mcp.askmarcel.app — REST/MCP with scoped Developer API key
  • Tools GA: get_error_code, diagnose, diagnose_guided, search_technical_docs, diagnose_v2, resolve_model
  • Response includes source pointers or explicit abstention — never silent invention

Redacted excerpt for illustration only. The live API returns full manufacturer, manual, page and section — see the HVAC-Bench protocol.

Illustrative citation

Mitsubishi Electric · City Multi service manual · p. 142

Bench scenario: hvac-bench/mcp-p1-mitsubishi

Sourced response (illustrative redacted excerpt)
{
  "status": "sourced",
  "error_code": "P1",
  "manufacturer": "mitsubishi-electric",
  "manual": "City Multi service manual (redacted)",
  "page": 142,
  "section": "ST-02 outdoor communication",
  "excerpt": "Check inverter board LED pattern before replacing PCB...",
  "billable": true
}
Abstention (not billable)
{
  "status": "no_exact_source",
  "model_id": "unknown-sku-…",
  "message": "No exact OEM manual for this SKU — not billable",
  "billable": false
}

Honest limits

What MCP does not promise

Beta Harness sessions

start_diagnostic / respond_to_diagnostic require the Harness Beta scope — 5 anchor brands, Air/Water + Air/Air HP, not full depth on 400k codes.

OAuth scopes today

Current OAuth does not expose diagnostic.run for multi-turn Harness sessions; plan integration tests against the scope matrix in public docs.

SKU strictness on v2

diagnose_v2 and resolve_model enforce provenance. Wrong model_id → abstention (non-billable) — by design, not a bug.

Two perimeters

Who integrates MCP — and who signs the check

Perimeter A — Product & platform

You ship the agent shell

SaaS vendors, marketplaces, and OEM portals embedding Claude or a home-grown LLM need stable tool schemas and versioning — not scraping PDFs per release.

  • MCP protocol 2025-06-18 aligned with Claude Desktop and Cursor
  • Developer tier: 50 calls/month — enough for integration QA
  • public-surface.snapshot.json validated in CI before deployment (https://api.askmarcel.app/v1/public-surface.json)

Perimeter B — IT & procurement

You own risk and vendor due diligence

Security reviews ask where answers come from and what happens when the corpus is silent. AskMarcel documents abstention and non-billable paths explicitly.

  • Cited excerpts or structured abstention — no silent fallback to GPT
  • HVAC-Bench published on /preuve for third-party review
  • Scoped keys before enterprise rollout

Integration flow

From Developer key to first tool call

  1. 1

    Create a Developer API key

    Create a Developer key in the web app — same quota for REST and MCP tool calls.

  2. 2

    Register the MCP server

    Point Claude Desktop or your runtime at mcp.askmarcel.app with protocol 2025-06-18.

  3. 3

    Start with lookup tools

    get_error_code + search_technical_docs for read-only Q&A; add diagnose_v2 when you need SKU-level provenance.

  4. 4

    Log abstentions as success

    Train your UX to treat abstention as a safe outcome — not an error to retry until the model guesses.

Evidence

Measured on real codes, not demo scripts

HVAC-Bench V1 — 18 cases frozen on 2026-08-31, 97 scored answers: 5/5, 5/5 and 4/5 exact pages on 5 Panasonic Aquarea codes depending on the model; correct abstention 8/9, 9/11 and 3/9; 0/12 unsafe answers. Protocol and limits on /preuve.

Open HVAC-Bench & corpus stats

18 · 2026-08-31

Cases frozen before scoring

5/5 · 5/5 · 4/5

Exact pages (5 Aquarea codes)

10

Public MCP tools

Ship an HVAC agent without building the corpus

Start with a Developer key for MCP smoke tests. When your agent UX is ready, book scoped Harness access.