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
No configuration — there are no environment variables.
Tools
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:
- Search pages — results embedded in
__NEXT_DATA__.
- Profile pages —
window.__APOLLO_STATE__ (a bare JS assignment, so it
needs balanced-brace extraction) plus schema.org JSON-LD.
- 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
Coverage is enforced at 100%.
License
MIT