Thumbtack Mcp

io.github.chrischallPublished by GitHub account chrischallv1.2.0Updated Nov 5, 2026

Unofficial Thumbtack MCP — search local service pros, read profiles, ratings and reviews

Overview

AI-generated overview

Unofficial, read-only MCP server that lets an assistant search Thumbtack for local service pros by trade and US ZIP, then read their profiles, ratings and…

What you can do
  • Search pros by trade and US ZIP code, returning up to 10 ranked results with rating, review count, lifetime hires and response time
  • Resolve a loose service name to Thumbtack's canonical slug
  • Read a pro's profile: description, location, aggregate rating, credentials and section inventory
  • Read the reviews embedded on a pro's profile page
  • Run arbitrary read-only GraphQL queries against Thumbtack's anonymous endpoint
  • Probe Thumbtack's page and GraphQL surfaces to check they are reachable and still shaped as expected
When to use it
Useful when you want an assistant to find and compare local service providers in the US — plumbers, electricians and similar trades — and summarize their ratings, reviews and credentials without opening a browser. Also handy for checking whether the scraping surface still works before relying on it.
Requirements
Runs locally via npx from the npm package @chrischall/thumbtack-mcp; Node.js and network access to Thumbtack are needed. No account, API key, environment variable or header is required.
Before you install
It reads Thumbtack's server-rendered pages and anonymous GraphQL endpoint, which the README says may break or violate their terms of service. Results are scraped and can change shape or be blocked by a CDN/WAF. The GraphQL escape hatch accepts arbitrary read-only queries; mutations are refused. It cannot access your own Thumbtack account, projects, messages or quotes.

Installation

In SourceWeft

  1. Open Thumbtack Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

thumbtack-mcp

Unofficial Thumbtack MCP server — search local service pros, and read their profiles, ratings, reviews and credentials.

Read-only and anonymous. Thumbtack's consumer pages and its GraphQL endpoint answer without a login, so this server needs no account, no API key and no browser extension. It also cannot write: Thumbtack's write paths sit behind a reCAPTCHA-gated login that no server-side client can pass.

Thumbtack has no public consumer API. This server reads its server-rendered pages and anonymous GraphQL endpoint, and may break or violate their ToS. Developed and maintained by AI (Claude). Use at your own discretion.

Install

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

No configuration — there are no environment variables.

Tools

ToolWhat it does
thumbtack_search_prosSearch pros by trade + US ZIP. Returns up to 10 with rating, review count, lifetime hires, mean response time, profile URL.
thumbtack_resolve_serviceCanonicalise a loose service name (plumbing → plumbers) by asking Thumbtack.
thumbtack_get_proA pro's profile: name, description, location, aggregate rating, credentials, section inventory.
thumbtack_get_pro_reviewsReviews on a pro's profile — stars, author, date, text.
thumbtack_graphqlEscape hatch for arbitrary read-only GraphQL. Mutations refused.
thumbtack_healthcheckProbes the page and GraphQL surfaces separately and reports the response shape still matches; each probe names a kind, and a CDN/WAF refusal page is edge_blocked.

Every read tool takes view: "compact" | "full", and compact is the default. On thumbtack_search_pros that is a hand-written field projection; on thumbtack_get_pro, thumbtack_get_pro_reviews and thumbtack_graphql it strips image URLs, which needs no knowledge of the payload's shape. Pass view: "full" for the untouched upstream records — they are large and mostly tracking metadata, which is why the slim shape is what you get without asking.

thumbtack_resolve_service and thumbtack_healthcheck take no view: both already answer with a handful of scalar fields, and a rung that cannot change anything is worse than no parameter.

Shell-only alternative

skills/thumbtack/ is a self-contained skill covering the same surface with plain curl + jq — no server process. Use it for one-shot lookups and scripts.

How it works

Three verified surfaces, all pinned in docs/THUMBTACK-API.md:

  1. Search pages — results embedded in __NEXT_DATA__.
  2. Profile pages — window.__APOLLO_STATE__ (a bare JS assignment, so it needs balanced-brace extraction) plus schema.org JSON-LD.
  3. GraphQL (app.thumbtack.com/graphql) — accepts ad-hoc anonymous queries; introspection is disabled.

Two things that bite anyone reading these pages:

  • JSON-LD @type is the trade-specific subtype, not LocalBusiness — a plumber's node is "@type":"Plumber". Match by shape, not by type name.
  • GraphQL returns HTTP 200 with an errors[] body. Status alone is never sufficient.

Not covered

  • Your own Thumbtack account (projects, messages, quotes) — the login is reCAPTCHA-gated, so there is no server-side password login.
  • The Partner Platform API (developers.thumbtack.com) — real and documented, but gated behind partner credentials ("Request Access"). It is a seller surface, not a consumer one.

Development

sh
npm installnpm run buildnpm test            # unit + server-boot smoke testsnpm run test:coverage

Coverage is enforced at 100%.

License

MIT

Source: README.md at commit 6406998

Tools

6

thumbtack_search_pros

Search pros

Search Thumbtack for local service pros by trade and US ZIP code. Returns up to 10 ranked pros with rating, review count, lifetime hires, mean response time and profile URL. Anonymous — no account needed.

Parametersziprequiredviewlimitservicerequired

thumbtack_resolve_service

Resolve service slug

Resolve a loose service name to the canonical Thumbtack slug by asking Thumbtack (it canonicalises via redirect, e.g. "plumbing" -> "plumbers"). Use before assuming a slug is right.

Parameterszipservicerequired

thumbtack_get_pro

Get pro profile

Read a Thumbtack pro's profile: name, description, location, aggregate rating, plus credentials (background check, licences) and the section inventory. Takes a profile URL from thumbtack_search_pros.

Parametersurlrequiredview

thumbtack_get_pro_reviews

Get pro reviews

Read the reviews embedded on a Thumbtack pro's profile page (star rating, author, date, text). Takes a profile URL from thumbtack_search_pros.

Parametersurlrequiredviewlimit

thumbtack_graphql

Raw GraphQL query

Escape hatch: issue an arbitrary read-only query against Thumbtack's anonymous GraphQL endpoint. Introspection is disabled upstream, so field names must come from a page's Apollo state. Mutations are refused.

Parametersviewqueryrequiredvariables

thumbtack_healthcheck

Healthcheck

Check that Thumbtack's anonymous surface is reachable and still has the response shape this server expects. Reports the server version, the HTML page probe and the GraphQL probe separately, each with a `kind` (ok, edge_blocked, http, transport, timeout, rate_limited, shape_changed, unknown).

Takes no parameters.

Version history

12
  1. v1.2.0LatestNov 4, 2026
  2. v1.1.8Oct 16, 2026
  3. v1.1.7Oct 10, 2026
  4. v1.1.6Oct 7, 2026
  5. v1.1.5Oct 5, 2026
  6. v1.1.4Oct 3, 2026
  7. v1.1.3Sep 25, 2026
  8. v1.1.2Sep 23, 2026
  9. v1.1.1Sep 21, 2026
  10. v1.1.0Sep 20, 2026
  11. v1.0.0Sep 19, 2026
  12. v0.2.1Sep 16, 2026

Score

80% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.