Prototyp · Vorschau: alle Server aus der offiziellen Registry, alle 30 Minuten synchronisiert. Bewertungen und Benutzerkonten folgen in einem späteren Schritt.
PopNx MCPMCP-Server für alle, die KI nutzen · in einfachen Worten erklärt

Housecallpro MCP

von chrischallVersion 1.3.0i★ –iLäuft auf deinem Computer
Name in der Registryio.github.chrischall/housecallpro-mcp

Installieren

Überblick

Beschreibung vom Entwickler (englisches Original)

Read Housecall Pro estimates from the customer link your contractor sent you.

Die drei Säulen von PopNx MCP

Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.

Was du damit machen kannst

Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.

  • Verbindung: Läuft auf deinem Computer
  • Transport: stdio
  • Kategorie: Sonstiges
  • Das musst du eintragen: HOUSECALLPRO_LINK, HOUSECALLPRO_LINKS

Installation

Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.

Bevor du installierst

  • Basischecks: 1 von 1 bestanden
  • Läuft auf deinem Computer mit den Rechten deines Benutzerkontos (Dateien, Netzwerk, Apps).
  • Das trägst du selbst ein: HOUSECALLPRO_LINK, HOUSECALLPRO_LINKS, HOUSECALLPRO_LINK_LABEL

Als geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.

Du brauchst

  • npmNode.js installiert (für den Befehl npx)

Welche App nutzt du?

Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.

Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein

{
  "mcpServers": {
    "housecallpro": {
      "command": "npx",
      "args": [
        "-y",
        "@chrischall/housecallpro-mcp"
      ],
      "env": {
        "HOUSECALLPRO_LINK": "your-value",
        "HOUSECALLPRO_LINKS": "your-value",
        "HOUSECALLPRO_LINK_LABEL": "your-value"
      }
    }
  }
}

Führe das in deinem Terminal aus

claude mcp add housecallpro --env HOUSECALLPRO_LINK=your-value --env HOUSECALLPRO_LINKS=your-value --env HOUSECALLPRO_LINK_LABEL=your-value -- npx -y @chrischall/housecallpro-mcp

Trag die leeren Werte ein, bevor du ihn startest.

In Cursor öffnen

Oder kopier die Einstellungen selbst

In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen

{
  "mcpServers": {
    "housecallpro": {
      "command": "npx",
      "args": [
        "-y",
        "@chrischall/housecallpro-mcp"
      ],
      "env": {
        "HOUSECALLPRO_LINK": "your-value",
        "HOUSECALLPRO_LINKS": "your-value",
        "HOUSECALLPRO_LINK_LABEL": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

In VS Code öffnen

Oder kopier die Einstellungen selbst

In .vscode/mcp.json in deinem Projekt einfügen

{
  "servers": {
    "housecallpro": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@chrischall/housecallpro-mcp"
      ],
      "env": {
        "HOUSECALLPRO_LINK": "your-value",
        "HOUSECALLPRO_LINKS": "your-value",
        "HOUSECALLPRO_LINK_LABEL": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.

Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.

Werte, die du selbst einträgst

  • HOUSECALLPRO_LINK geheim env
    Estimate or invoice link your contractor sent you.
  • HOUSECALLPRO_LINKS geheim env
    A JSON array of customer links for several documents at once. Use HOUSECALLPRO_LINK instead for a single estimate/invoice link.
  • HOUSECALLPRO_LINK_LABEL env
    Label for the single link given by HOUSECALLPRO_LINK (defaults to "default").

Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.

Was er kann

Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.

Basischecksi

Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 8. Nov. 2026

  • ✓ Bestanden

    Entwickler passt zum Repo

    Der Registry-Name wurde mit dem GitHub-Konto chrischall bestätigt, dem das Repo gehört

  • … Noch nicht geprüft

    Wird noch gepflegt

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • … Noch nicht geprüft

    Hat eine Lizenz

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • – Nicht zutreffend

    Endpunkt antwortet

    Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet

  • – Nicht zutreffend

    Anmeldung mit OAuth

    Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen

  • … Noch nicht geprüft

    Keine versteckten Anweisungen in Tool-Beschreibungen

    Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen

Im Vergleich mit anderen in Sonstigesi

  • Mehr Sterne als 0 % der anderen 18374 Server in dieser Kategorie
  • Neuer in der Registry veröffentlicht als 93 % der anderen 18374 Server in dieser Kategorie
  • Basischecks gleich gut wie oder besser als bei 100 % der anderen 18374 Server in dieser Kategorie

Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.

Häufige Fragen

Ist Housecallpro MCP sicher?

Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.

Welche Schlüssel oder Codes braucht er?

Das musst du eintragen: HOUSECALLPRO_LINK, HOUSECALLPRO_LINKS

Läuft er auf meinem Computer oder in der Cloud?

Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).

Wird er noch gepflegt?

Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (1.3.0) kam vor 3 Tagen in die Registry.

Welche Apps können ihn nutzen?

Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Node.js auf deinem Computer.

Was kann ich stattdessen nutzen?

In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, Happo

Alternativen

Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.

So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti

Spec Driven Development

von formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

Läuft auf deinem Computer★ 440MITAktualisiert vor 14 Monaten
Installieren

Remote Desktop Commander

von desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

Läuft in der Cloud★ 211Aktualisiert vorgestern
Installieren

Happo

von happo.io

Review Happo's visual and accessibility diffs: inspect comparisons, accept or reject, report flakes.

Läuft in der CloudAktualisiert heute
Installieren

README vom Entwickler

README öffnen

Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.

Housecall Pro MCP

A Model Context Protocol server that connects Claude to the customer side of Housecall Pro — the estimate or invoice link a contractor (HVAC, plumbing, electrical, cleaning) emails or texts you.

[!WARNING]

AI-developed project. This codebase was built and is actively maintained

by Claude Code. No human has audited the

implementation. Review all code and tool permissions before use.

This is the customer side, not the business side

Housecall Pro has two surfaces, and they share nothing:

Public APICustomer portal (this repo)
Hostapi.housecallpro.comapp.housecallpro.com
Servesthe business running on Housecall Prothat business's customers
Authan API key from the pro's accountthe link your contractor sent you
Docsdocs.housecallpro.comdocs/HOUSECALLPRO-API.md

If you *run* a business on Housecall Pro, you want the public API instead. This server is for being someone's customer.

What you can do

  • *"What did my plumber quote me for the tankless flush?"*
  • *"What's on that estimate, line by line?"*
  • *"How much of that $346 is tax?"*
  • *"Am I still on the hook to respond to this?"*
  • *"Decline option 2."*

Install

npx -y @chrischall/housecallpro-mcp

Configure it with the link your contractor sent you:

HOUSECALLPRO_LINK='https://pro.housecallpro.com/mobile_estimate/XXXXXXXXXX'

Estimate and invoice links both work, short or long form — pro.housecallpro.com/mobile_estimate/… and /mobile_invoice/…, or client.housecallpro.com/estimates/… and /invoices/…. For several documents:

HOUSECALLPRO_LINKS='[{"label":"tankless","url":"…"},{"label":"hvac","url":"…"}]'

Then every tool takes an optional link selector; with one configured you never need it.

[!IMPORTANT]

Your link is a bearer credential. Anyone holding it can read the document

and, for an estimate, decline it. It is read from the environment, never logged, and never

returned in a tool result — housecallpro_list_links reports labels only.

Confirmations

Declining asks you first. A client that can show a confirmation prompt (Claude Code) shows one. On a client that cannot (claude.ai, Claude Desktop) the first call declines nothing and returns a preview plus a confirmToken; only a repeat call with that token acts, and only if the estimate still matches what was previewed.

variabledefault
MCP_CONFIRM_MODEask-userWhat a write does on a client that cannot show a confirmation prompt (claude.ai, Claude Desktop). ask-user: two steps — the first call does nothing and returns a preview plus a token, and the model must get your approval in chat before calling again with it. auto: the same two steps, but the model may use the token after reviewing the preview itself. refuse: writes are refused on such clients. A client that can show prompts (Claude Code) always gets the real prompt, unless MCP_CONFIRM_ELICITATION=off. An unrecognised value is treated as refuse.
MCP_CONFIRM_ELICITATIONonoff never shows a confirmation prompt, so every client gets the MCP_CONFIRM_MODE behaviour. Set it for a client that says it can show prompts but never does (the write hangs — opencode 2.0.x). Any other value is treated as on, with a warning on stderr.
MCP_CONFIRM_TTL_SECONDS600How long a token stays valid.
MCP_CONFIRM_SECRETrandom per processSigning key; set it only if tokens must survive a server restart.

Tools

Tool
housecallpro_get_estimateLine items, totals, tax, company, approval state
housecallpro_get_invoiceAmount, subtotal, tax, balance due, payability
housecallpro_get_companyThe contractor: phone, email, website, arrival window
housecallpro_list_linksConfigured links, labels only
housecallpro_decline_estimateDecline options — asks you to confirm first
housecallpro_approve_estimateAlways refuses; explains why
housecallpro_healthcheckReachability + whether a link still resolves
Response shape (view)

housecallpro_get_estimate and housecallpro_get_invoice take view: 'compact' | 'raw', defaulting to `compact` — the fleet vocabulary from @chrischall/mcp-utils.

rungwhat you get
compact *(default)*the summary: line items, totals, tax, company, approval state — with money as both *_cents and *_usd
rawthe upstream document verbatim (~4.8 KB for an estimate), {object, data} wrappers and display flags included

There is deliberately no `full` rung. full means "every field this server understands, nothing dropped", and the fields this server understands are exactly the ones the summary names — so it would be compact under a second name, and everything past it is the upstream document, which is raw. A schema should never advertise a value that silently aliases another.

If the upstream shape drifts far enough that the projection loses its footing, the whole document is returned (with a warning on stderr) rather than an empty summary: an empty summary is indistinguishable from an estimate with nothing on it.

Estimates and invoices are different documents

They use different token shapes — 129 characters for an estimate, 32 for an invoice — and different endpoints. The client checks the shape and refuses a token pointed at the wrong tool before spending a request, rather than passing along an unexplained 404.

An invoice carries no line items and no tax field: a paid invoice renders as a summary in the portal and the API returns exactly that, so tax_usd is derived as total - subtotal. is_paid comes from the balance, not the status string.

Money is returned twice

The upstream API returns integer cents — the estimate the portal renders as $346.39 arrives as total_amount: 34639. Reporting that raw overstates every figure 100×, so each money field is emitted as both *_cents (verbatim) and *_usd (derived). tax.rate is a fraction (0.0825 = 8.25%) and is never scaled.

That pairing is what the projection is *for*, so it exists on compact only. view: 'raw' is the upstream document, and its money is integer cents with no dollar sibling — total_amount: 34639 is $346.39. The view parameter's own description says so at the call site.

Why you can't approve an estimate

housecallpro_approve_estimate always refuses, and that is deliberate.

Approval posts a response_token — a reCAPTCHA v3 token minted in-page for the action estimates_customer_approvals. No server-side client can produce one, and neither can a browser-bridge transport: the bridge issues fetch calls, it does not execute page JS. Declining carries no such token, which is why decline works and approve does not.

Rather than post a request that would be rejected — or worse, might *not* be, binding you to a quoted price — the tool refuses and tells you to approve in a browser.

Declining asks you to confirm first (see Confirmations): it reads the estimate, refuses ids that are not its options or are already decided, and shows exactly what would be sent before anything is posted. After a real decline it re-reads the estimate and reports the option's actual status, because a 2xx is not proof a write landed.

Without the MCP

skills/housecallpro does the same reads from a shell with plain curl and jq, for scripts or machines where the server isn't installed. No browser bridge is involved there either.

No browser bridge

Unlike much of this fleet, app.housecallpro.com is not bot-walled — a bare curl gets a 200. So this server talks to it directly over HTTPS, has no @fetchproxy/server dependency, needs no extension or signed-in tab, and hosts cleanly as a remote connector — with no secret to configure, since the link travels as a tool argument rather than an environment variable.

What isn't here

  • Payments and cards. Deliberately out of scope.
  • The account-level portal. Housecall Pro has an OTP/magic-link customer portal that spans every document from one contractor, which is a strictly better surface than per-document links. Standing it up needs a human to receive a one-time code, so it is the obvious next increment rather than part of this first cut.

Development

npm install

npm run build npm test

License

MIT

PopNx fragen