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.
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.
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.
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
{
"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
}{
"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: 250 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
- Pilot with scoped keys before enterprise rollout
Integration flow
From Developer key to first tool call
- 1
Create a Developer API key
Create a Developer key in the web app — same quota for REST and MCP tool calls.
- 2
Register the MCP server
Point Claude Desktop or your runtime at mcp.askmarcel.app with protocol 2025-06-18.
- 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
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 compares generalist LLMs with and without AskMarcel tools on lookup, multi-step diagnostics, and manual page retrieval — the same corpus MCP exposes.
Open HVAC-Bench & corpus stats97%
Exact code lookup accuracy (HVAC-Bench exact-code scenarios)
96%
Critical hallucination avoided (HVAC-Bench exact-code scenarios)
10
Public MCP tools (GA)
Ship an HVAC agent without building the corpus
Start with a Developer key for MCP smoke tests. When your agent UX is ready, book a pilot with scoped Harness access.
