{
  "markdown": "<p align=\"center\">\n  <img src=\"docs/assets/askmarcel-icon.png\" width=\"128\" height=\"128\" alt=\"AskMarcel\">\n</p>\n\n<h1 align=\"center\">AskMarcel — HVAC Technical Knowledge MCP Server</h1>\n\n<p align=\"center\">\n  Manufacturer-sourced HVAC technical documentation for AI agents: search, diagnostics, error codes, procedures and product sheets across <strong>126 brands</strong> and <strong>905 models</strong>.\n</p>\n\n<p align=\"center\">\n  <a href=\"https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.askmarcel/mcphvac\"><img src=\"https://img.shields.io/badge/MCP_Registry-io.github.askmarcel%2Fmcphvac-blue\" alt=\"MCP Registry\"></a>\n  <a href=\"https://smithery.ai/servers/askmarcelapp/mcphvac\"><img src=\"https://smithery.ai/badge/askmarcelapp/mcphvac\" alt=\"smithery badge\"></a>\n  <a href=\"https://mcp.askmarcel.app\"><img src=\"https://img.shields.io/badge/transport-streamable--http-green\" alt=\"Transport\"></a>\n  <a href=\"https://app.askmarcel.app/developers\"><img src=\"https://img.shields.io/badge/auth-OAuth_2.0_%2B_API_key-orange\" alt=\"Auth\"></a>\n  <a href=\"./LICENSE\"><img src=\"https://img.shields.io/badge/license-MIT-lightgrey\" alt=\"License\"></a>\n</p>\n\nAskMarcel is a **remote, hosted MCP server** (Streamable HTTP). There is nothing to install or self-host — point your MCP client at the endpoint and authenticate. The server connects AI agents to real manufacturer documentation so answers cite the exact manual and page number instead of hallucinating.\n\n- **Endpoint:** `https://mcp.askmarcel.app`\n- **Registry name:** `io.github.askmarcel/mcphvac`\n- **Manifest:** `1.3.1-beta.1` — **15 tools** live in production\n- **Docs & API key:** https://app.askmarcel.app/developers\n- **Reference:** https://app.askmarcel.app/developers/reference\n- **Marcel Inside (B2B API / MCP):** https://askmarcel.app/fr/connecteurs\n- **Free Developer tier:** 250 API calls / month\n\n---\n\n## Marcel Inside — branch it behind your bot\n\nUse AskMarcel as **Marcel Inside**: plug manufacturer-sourced HVAC knowledge behind your existing chatbot, voicebot, or agent — without rebuilding your stack. Compatible with ManyChat, ElevenLabs, Voiceflow, Intercom, Claude, ChatGPT, Gemini, and custom MCP clients.\n\n- **Sales & pilot:** https://askmarcel.app/fr/connecteurs (490€ pilot, Business 149€/mois HT)\n- **Developer sandbox:** free tier — 250 calls/month at https://app.askmarcel.app/developers\n\n---\n\n## Why AskMarcel\n\nGeneral-purpose LLMs guess at HVAC specifics — refrigerant charge, error-code meanings, wiring, fault trees. AskMarcel grounds every response in indexed manufacturer PDFs and returns the **source page**, so a field technician or an agent can trust and verify the answer. See [HVAC-Bench](https://askmarcel.app) for measured accuracy vs. raw LLM output.\n\n- 126 brands · 905 models · 400,000+ error codes indexed\n- Deterministic error-code lookup (not a guess)\n- Strict SKU provenance (`resolve_model`, `get_model_coverage`, `diagnose_v2`) — no family substitution\n- Sourced one-shot lookups (`diagnose`) and multi-turn guided troubleshooting for air-to-water heat pumps (`diagnose_guided`)\n- **LIVE Beta Harness sessions** — stateful diagnostic loop with manufacturer DB lookup at session start (`start_diagnostic` … `get_diagnostic_summary`)\n- FR / EN, focused on the European HVAC/RACH market\n\n### Harness session vs `diagnose_guided`\n\n| Surface | Use when | Quota |\n|---------|----------|-------|\n| **Harness session** (`start_diagnostic` …) | Multi-turn field diagnostic on **PAC Air/Eau** or **PAC Air/Air** with hypotheses, discriminating `next_action`, technician journal | **Once** at session creation |\n| **`diagnose_guided`** | Legacy guided loop for **PAC Air/Eau only** — server-sealed state via `continuation` | **Per turn** |\n| **`diagnose_v2`** | One-shot strict SKU lookup | Per successful call |\n| **`diagnose`** | One-shot lookup without SKU gate | Per successful call |\n\nHarness Beta is **live in production** (`DIAGNOSTIC_SESSIONS_PUBLIC=true`). At `start_diagnostic`, the server looks up error codes in `technical_error_codes` (manufacturer DB) and journals the result — not only pack fallback maps. Active packs: `pac_air_eau` and `pac_air_air` at **`0.0.1`** (mutable during Beta).\n\n---\n\n## Tools\n\nThe server exposes **15 tools** (10 GA + 5 Beta Harness session). Full reference in [`docs/tools.md`](./docs/tools.md).\n\n### GA (10)\n\n| Tool | What it does |\n|------|--------------|\n| `search_technical_docs` | Semantic search over technical documentation (≤10 excerpts). Filter by `brand`, `model`, `error_code`. |\n| `get_procedure` | Retrieve a full procedure by `chunk_id`. |\n| `get_error_code` | Deterministic lookup by `brand` + `error_code` (optional `model`). |\n| `get_product_sheet` | Product sheet: specs, composition, frequent error codes, by `brand` + `model`. |\n| `get_pdf_page_snapshot` | Signed, 5-minute URL to a specific PDF page (`document_id` + `page`). |\n| `diagnose` | One-shot sourced lookup from a symptom or error code (excerpt + steps + citation). |\n| `diagnose_v2` | Same lookup with **strict SKU provenance**. Abstains (`diagnostic: null`) if no approved exact-model manual exists. |\n| `resolve_model` | Resolve `brand` + `model` to a canonical SKU. Exact or alias only — never a series LIKE. |\n| `get_model_coverage` | Documentary flags for a resolved SKU: `exact_manual`, `error_code_covered`, `market_verified`. |\n| `diagnose_guided` | Multi-turn guided troubleshooting for **air-to-water heat pumps** (legacy; quota per turn). |\n\n### Beta — Harness session (5)\n\n| Tool | What it does |\n|------|--------------|\n| `start_diagnostic` | Open a stateful Harness session. Manufacturer error-code lookup at start. Quota on creation. |\n| `get_diagnostic` | Read current session projection (`hypotheses`, `next_action`, fault code). |\n| `respond_to_diagnostic` | Append typed observation, measurement, or technician assessment. |\n| `close_diagnostic` | Close session with optional reason (verification not required). |\n| `get_diagnostic_summary` | Deterministic exportable summary from the session journal. |\n\nStability: `beta` · `release_channel: beta` on responses · qualified HVAC professional required.\n\n---\n\n## Quick start\n\n### 1. Get an API key\n\nCreate a free key at **https://app.askmarcel.app/developers** (250 calls/month on the Developer tier). The server also supports OAuth 2.0 (PKCE + Dynamic Client Registration) for clients that discover auth automatically.\n\n### 2. Connect your MCP client\n\nReady-to-use configs live in [`examples/`](./examples). The general form for any Streamable HTTP MCP client:\n\n```json\n{\n  \"mcpServers\": {\n    \"askmarcel\": {\n      \"type\": \"streamable-http\",\n      \"url\": \"https://mcp.askmarcel.app\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_API_KEY\"\n      }\n    }\n  }\n}\n```\n\n**Claude Desktop / Cursor / VS Code:** see the matching file in [`examples/`](./examples). Replace `YOUR_API_KEY` with your key.\n\n### 3. Ask a question\n\nOnce connected, prompt naturally, e.g.:\n\n> \"Daikin Altherma showing error **U4** — what does it mean and how do I clear it?\"\n\nThe agent calls `resolve_model` / `diagnose_v2` (or `get_error_code` / `diagnose`) and returns the cause, the fix steps, and the source manual page — or an explicit abstention when no exact manual exists.\n\nFor a full field diagnostic loop on a heat pump, use `start_diagnostic` → `respond_to_diagnostic` → `close_diagnostic` (see skill [`hvac-harnais-session`](./skills/hvac-harnais-session)).\n\n---\n\n## MCP vs Chat API\n\nAskMarcel exposes **two separate integration surfaces** — do not mix their protocols:\n\n| Surface | Endpoint | Protocol | Use case |\n|---------|----------|----------|----------|\n| **MCP server** (this repo) | `https://mcp.askmarcel.app` | JSON-RPC Streamable HTTP (`tools/call`) | Connect Claude, Cursor, VS Code, or any MCP client to HVAC tools |\n| **Chat API** (web / mobile / extension) | `https://app.askmarcel.app/api/chat` | AI SDK v5 SSE (`UIMessageStream`) | Full conversational UI with streaming, tools, and document blocks |\n\nThe MCP server does **not** use the AI SDK chat stream (`text-delta`, `data-*` parts). If you build a custom agent with the Vercel AI SDK, use MCP tools via JSON-RPC — not the web chat endpoint.\n\n---\n\n## Authentication\n\nTwo supported methods (details in [`docs/authentication.md`](./docs/authentication.md)):\n\n1. **API key (Bearer):** `Authorization: Bearer YOUR_API_KEY`\n2. **OAuth 2.0:** discovery via\n   `https://mcp.askmarcel.app/.well-known/oauth-protected-resource`\n\n---\n\n## Claude Skills\n\nThe [`skills/`](./skills) folder contains ready-to-use [Agent Skills](https://docs.claude.com) that wrap these tools into HVAC workflows:\n\n- [`hvac-error-lookup`](./skills/hvac-error-lookup) — turn a brand + error code into a sourced explanation and fix.\n- [`hvac-diagnostic`](./skills/hvac-diagnostic) — one-shot symptom lookup with citations (`diagnose`).\n- [`hvac-guided-diagnosis`](./skills/hvac-guided-diagnosis) — multi-turn guided troubleshooting for air-to-water heat pumps (`diagnose_guided`).\n- [`hvac-harnais-session`](./skills/hvac-harnais-session) — Beta Harness session loop (`start_diagnostic` … `close_diagnostic`).\n\n---\n\n## REST API SDK\n\nFor custom agents that call the REST API directly (not MCP), use the npm package [`@askmarcel/sdk`](https://www.npmjs.com/package/@askmarcel/sdk) — includes Harness session methods (`startDiagnosticSession`, `respondToDiagnosticSession`, …), `guidedTurn()` for `POST /v1/diagnostic/turn`, plus `resolveModel()` / `getModelCoverage()` / V2 diagnose.\n\n---\n\n## Links\n\n- MCP endpoint — https://mcp.askmarcel.app\n- Developer portal & API key — https://app.askmarcel.app/developers\n- API reference — https://app.askmarcel.app/developers/reference\n- Marcel Inside (B2B) — https://askmarcel.app/fr/connecteurs\n- Templates — https://app.askmarcel.app/templates\n- Official MCP Registry — `io.github.askmarcel/mcphvac`\n- Website — https://askmarcel.app\n\n---\n\n## License\n\nCode and content in this repository (documentation, examples, skills) are released under the [MIT License](./LICENSE). The AskMarcel hosted service and its underlying data are proprietary and governed by the [AskMarcel terms](https://askmarcel.app).\n\n---\n\n## 🇫🇷 En français\n\n**AskMarcel** est un **serveur MCP distant et hébergé** (Streamable HTTP) qui connecte les agents IA à la documentation technique HVAC/RACH sourcée constructeur. Rien à installer : on pointe son client MCP sur l'endpoint et on s'authentifie. Chaque réponse cite le manuel et la page exacte plutôt que d'halluciner.\n\n- **Endpoint :** `https://mcp.askmarcel.app`\n- **Nom registre :** `io.github.askmarcel/mcphvac`\n- **Manifeste :** `1.3.1-beta.1` — **15 outils** en production\n- **Doc & clé API :** https://app.askmarcel.app/developers\n- **Marcel Inside (B2B) :** https://askmarcel.app/fr/connecteurs\n- **Tier Developer gratuit :** 250 appels / mois\n- **Couverture :** 126 marques · 905 modèles · 400 000+ codes erreur indexés\n\n**Marcel Inside** — branchez la base AskMarcel derrière votre chatbot, voicebot ou agent existant. Pilote 490€ · Business 149€/mois HT · tier Developer gratuit pour tester.\n\n**15 outils :** 10 GA (`search_technical_docs`, `get_procedure`, `get_error_code`, `get_product_sheet`, `get_pdf_page_snapshot`, `diagnose`, `diagnose_v2`, `resolve_model`, `get_model_coverage`, `diagnose_guided`) + 5 session Harnais Beta (`start_diagnostic`, `get_diagnostic`, `respond_to_diagnostic`, `close_diagnostic`, `get_diagnostic_summary`).\n\n**Harnais Beta LIVE :** lookup DB fabricant (`technical_error_codes`) au `start_diagnostic`, packs `pac_air_eau` / `pac_air_air` **`0.0.1`**, quota **à la création** de session seulement. Distinct de `diagnose_guided` (guidé legacy PAC Air/Eau, quota par tour).\n\n**Skills :** lookup code erreur, diagnostic one-shot, guidé PAC, session Harnais — voir [`skills/`](./skills).\n\n**SDK REST (npm) :** [`@askmarcel/sdk`](https://www.npmjs.com/package/@askmarcel/sdk) — sessions Harnais + `guidedTurn()` + API v2.\n\n**Connexion rapide :** créez une clé sur https://app.askmarcel.app/developers, puis utilisez une des configs du dossier [`examples/`](./examples) (Claude Desktop, Cursor, VS Code). Remplacez `YOUR_API_KEY` par votre clé.\n\n**MCP vs Chat API :** ce dépôt documente le serveur MCP (JSON-RPC sur `mcp.askmarcel.app`). Le chat web/mobile utilise une API distincte (SSE AI SDK v5 sur `/api/chat`) — les deux protocoles ne sont pas interchangeables.\n\nDétails des outils : [`docs/tools.md`](./docs/tools.md) · Authentification : [`docs/authentication.md`](./docs/authentication.md).\n",
  "bytes": 12531,
  "sha": "bc88c2f929b98471df3ea4b79d5b1f45bf021a516d9486127632d32b68103c11",
  "repo_slug": "askmarcel/askmarcel-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_askmarcel_mcphvac_44d7bb32/readme"
}