thumbtack-mcp について
thumbtack-mcpは、Thumbtackで地域のサービス業者を検索し、プロフィールやレビューを確認する非公式の読み取り専用MCPサーバーです。匿名の公開データを利用し、アカウントやAPIキーは不要です。
主な機能
- 01業種と米国の郵便番号で業者を検索
- 02プロフィール、評価、レビュー、資格の取得
- 03曖昧なサービス名の正規化
- 04読み取り専用GraphQLクエリの実行
- 05ページとGraphQLの応答状態を確認
- 06簡易または完全な結果表示の選択
活用シーン
- 01業種に合う地域の業者探し
- 02評価やレビューによる業者の比較
- 03業者の資格やプロフィールの確認
- 04Thumbtackのデータ取得先の応答確認
MCP 対応
読み取り専用のThumbtack検索、プロフィール、レビュー、GraphQL、ヘルスチェックのツールをMCPクライアントに公開します。変更操作は拒否され、ログインやAPIキーも不要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
6掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| zip | string | はい | 近隣検索に使用する 5 桁の米国 ZIP コード。 |
| view | enum | いいえ | 応答形式:「compact」(デフォルト)は、応答内の別の場所にすでに含まれているフィールドを省略します。「full」は、このサーバーが認識するすべてのフィールドを返します。compact は、存在する場合は簡略化された投影を返し、それ以外では画像 URL を除去します。full は Thumbtack の全レコードを返します。compact | full |
| limit | integer | いいえ | 返されるサービス提供者の数を制限します(上流のページサイズは 10 です)。 |
| service | string | はい | 業種またはサービス名。例:「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_service | Thumbtack に問い合わせ、曖昧なサービス名(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 に記載されています。
- 検索ページ — 結果は
__NEXT_DATA__に埋め込まれています。 - プロフィールページ —
window.__APOLLO_STATE__(単独の JS 代入文なので、波括弧の対応を確認した抽出が必要です)と schema.org JSON-LD。 - 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
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。