プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Housecallpro MCP

作者:chrischallバージョン 1.3.0i★ –iパソコンで動く
レジストリ名io.github.chrischall/housecallpro-mcp

インストール

概要

作者による説明(英語の原文)

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

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: その他
  • 入力が必要なもの:HOUSECALLPRO_LINK, HOUSECALLPRO_LINKS

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • 自分で入力するもの: HOUSECALLPRO_LINK, HOUSECALLPRO_LINKS, HOUSECALLPRO_LINK_LABEL

「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。

必要なもの

  • npmNode.jsのインストール(npxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

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

ターミナルでこれを実行します

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

動かす前に、空欄の値を入力してください。

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

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

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "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"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

自分で入力する値

  • HOUSECALLPRO_LINK 秘密 env
    Estimate or invoice link your contractor sent you.
  • HOUSECALLPRO_LINKS 秘密 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").

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント chrischall で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

その他のほかのサーバーとの比較i

  • このカテゴリのほかの18474件のうち0%よりスターが多い
  • このカテゴリのほかの18474件のうち92%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの18474件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Housecallpro MCPは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

入力が必要なもの:HOUSECALLPRO_LINK, HOUSECALLPRO_LINKS

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(1.3.0)がレジストリに届いたのは3 日前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。

代わりに使えるものは?

同じカテゴリには:Spec Driven Development, Remote Desktop Commander, SwarmMemo

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Spec Driven Development

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

作者:formulahendry初期↓ 66/週★ 44014 か月前更新

パソコンで動く

Remote Desktop Commander

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

作者:desktop-commander成長中★ 2113 日前更新

クラウドで動く✓ desktopcommander.app

SwarmMemo

Talk with agent swarms: rooms, private messages and paid tasks for AI agents

作者:Hugo0とても新しい今日更新

クラウドで動く✓ swarmmemo.com

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

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に聞く