mcpField
T
thumbtack-mcp

thumbtack-mcp

ローカル
github.com/chrischallビジネス・マーケティング04 日前に更新

thumbtack-mcp について

thumbtack-mcpは、Thumbtackで地域のサービス業者を検索し、プロフィールやレビューを確認する非公式の読み取り専用MCPサーバーです。匿名の公開データを利用し、アカウントやAPIキーは不要です。

主な機能

  1. 01業種と米国の郵便番号で業者を検索
  2. 02プロフィール、評価、レビュー、資格の取得
  3. 03曖昧なサービス名の正規化
  4. 04読み取り専用GraphQLクエリの実行
  5. 05ページとGraphQLの応答状態を確認
  6. 06簡易または完全な結果表示の選択

活用シーン

  1. 01業種に合う地域の業者探し
  2. 02評価やレビューによる業者の比較
  3. 03業者の資格やプロフィールの確認
  4. 04Thumbtackのデータ取得先の応答確認

MCP 対応

読み取り専用のThumbtack検索、プロフィール、レビュー、GraphQL、ヘルスチェックのツールをMCPクライアントに公開します。変更操作は拒否され、ログインやAPIキーも不要です。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"chrischall-thumbtack": {
"command": "npx",
"args": [
"-y",
"@chrischall/thumbtack-mcp"
]
}
}
}
起動コマンドnpx -y @chrischall/thumbtack-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@chrischall/thumbtack-mcp1.1.8

ツール

6

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
zipstringはい近隣検索に使用する 5 桁の米国 ZIP コード。
viewenumいいえ応答形式:「compact」(デフォルト)は、応答内の別の場所にすでに含まれているフィールドを省略します。「full」は、このサーバーが認識するすべてのフィールドを返します。compact は、存在する場合は簡略化された投影を返し、それ以外では画像 URL を除去します。full は Thumbtack の全レコードを返します。compact | full
limitintegerいいえ返されるサービス提供者の数を制限します(上流のページサイズは 10 です)。
servicestringはい業種またはサービス名。例:「house cleaning」、「plumbing」、「electrician」。Thumbtack が曖昧な名称を正規化します。

詳細

thumbtack-mcp

非公式の Thumbtack MCP サーバーです。地域のサービス業者を検索し、プロフィール、評価、レビュー、資格情報を読み取ります。

読み取り専用で、匿名で利用できます。 Thumbtack の消費者向けページと GraphQL エンドポイントはログインなしで応答するため、このサーバーにはアカウント、API キー、ブラウザー拡張機能は不要です。また、書き込みはできません。Thumbtack の書き込みエンドポイントは reCAPTCHA で保護されたログインの背後にあり、サーバー側のクライアントでは通過できないためです。

Thumbtack には一般公開されている消費者向け API がありません。このサーバーはサーバー側でレンダリングされたページと匿名の GraphQL エンドポイントを読み取るため、動作しなくなったり、利用規約に違反したりする可能性があります。 AI(Claude)が開発・保守しています。ご自身の判断でご利用ください。

インストール

// .mcp.json
{ "mcpServers": { "thumbtack": { "command": "npx", "args": ["-y", "@chrischall/thumbtack-mcp"] } } }

設定は不要です。環境変数はありません。

ツール

ツール機能
thumbtack_search_pros業種と米国の ZIP コードで業者を検索します。評価、レビュー数、累計成約数、平均応答時間、プロフィール URL とともに最大 10 件を返します。
thumbtack_resolve_serviceThumbtack に問い合わせ、曖昧なサービス名(plumbing → plumbers)を正式名称に変換します。
thumbtack_get_pro業者のプロフィール情報(名前、説明、所在地、総合評価、資格情報、セクション一覧)を取得します。
thumbtack_get_pro_reviews業者のプロフィールに掲載されたレビュー(星評価、投稿者、日付、本文)を取得します。
thumbtack_graphql任意の読み取り専用 GraphQL を実行するためのエスケープハッチです。ミューテーションは拒否されます。
thumbtack_healthcheckページと GraphQL の各エンドポイントを個別に検査し、応答形式が引き続き想定どおりかを報告します。各検査では kind を示し、CDN/WAF による拒否ページは edge_blocked になります。

すべての読み取りツールは view: "compact" | "full" を受け取り、既定値は compact です。thumbtack_search_pros では、手書きのフィールド投影を使用します。thumbtack_get_pro、thumbtack_get_pro_reviews、thumbtack_graphql では、ペイロードの形式を把握する必要なく画像 URL を除外します。加工されていない上流のレコードを取得するには view: "full" を指定します。レコードは大きく、その大半がトラッキング用メタデータであるため、指定しない場合は簡潔な形式で返されます。

thumbtack_resolve_service と thumbtack_healthcheck は view を受け取りません。どちらも最初から少数のスカラー値のみを返すため、何も変えられない段階を追加するのは、パラメーターがないよりも不便だからです。

シェルのみで使う方法

skills/thumbtack/ は、同じ機能を curl と jq のみで利用できる、自己完結型のスキルです。サーバープロセスは不要です。単発の検索やスクリプトに使用できます。

仕組み

検証済みの 3 つのエンドポイントは、すべて docs/THUMBTACK-API.md に記載されています。

  1. 検索ページ — 結果は __NEXT_DATA__ に埋め込まれています。
  2. プロフィールページ — window.__APOLLO_STATE__(単独の JS 代入文なので、波括弧の対応を確認した抽出が必要です)と schema.org JSON-LD。
  3. GraphQL(app.thumbtack.com/graphql)— 認証なしの任意クエリを受け付けます。イントロスペクションは無効になっています。

これらのページを読む際に注意すべき点が 2 つあります。

  • JSON-LD の @type は業種ごとのサブタイプであり、LocalBusiness ではありません。配管工のノードは "@type":"Plumber" です。型名ではなく、データの形で照合してください。
  • GraphQL は errors[] を含む本文でも HTTP 200 を返します。 ステータスだけでは不十分です。

対象外

  • ご自身の Thumbtack アカウント(案件、メッセージ、見積もり)— ログインは reCAPTCHA で保護されているため、サーバー側からパスワードでログインする方法はありません。
  • Partner Platform API(developers.thumbtack.com)— 実在し、ドキュメントも公開されていますが、パートナー資格情報(「Request Access」)が必要です。これは消費者向けではなく、販売業者向けのサービスです。

開発

npm install
npm run build
npm test            # unit + server-boot smoke tests
npm run test:coverage

カバレッジは 100% に固定されています。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。