About thumbtack-mcp
thumbtack-mcp is an unofficial, read-only MCP server for finding local service professionals on Thumbtack and inspecting their profiles and reviews. It uses anonymous public-facing data and requires no account or API key.
Key features
- 01Search professionals by trade and US ZIP code
- 02Read profiles, ratings, reviews, and credentials
- 03Resolve informal service names
- 04Run read-only GraphQL queries
- 05Check page and GraphQL response health
- 06Choose compact or full result views
Use cases
- 01Find local professionals for a trade
- 02Compare providers using ratings and reviews
- 03Inspect a professional's credentials and profile
- 04Check whether Thumbtack data surfaces respond as expected
MCP support
Exposes read-only Thumbtack search, profile, review, GraphQL, and health-check tools to MCP clients. Mutations are refused; no login or API key is needed.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
6Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| zip | string | Yes | 5-digit US ZIP code to search near. |
| view | enum | No | Response shape: "compact" (default) drops fields the response already carries elsewhere; "full" returns every field this server understands. compact returns the slim projection where one exists and strips image URLs elsewhere; "full" returns Thumbtack's whole records.compact | full |
| limit | integer | No | Cap the number of pros returned (upstream page size is 10). |
| service | string | Yes | Trade or service, e.g. "house cleaning", "plumbing", "electrician". Loose names are canonicalised by Thumbtack. |
Details
From the project READMEthumbtack-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
// .mcp.json
{ "mcpServers": { "thumbtack": { "command": "npx", "args": ["-y", "@chrischall/thumbtack-mcp"] } } }
No configuration — there are no environment variables.
Tools
| Tool | What it does |
|---|---|
thumbtack_search_pros | Search pros by trade + US ZIP. Returns up to 10 with rating, review count, lifetime hires, mean response time, profile URL. |
thumbtack_resolve_service | Canonicalise a loose service name (plumbing → plumbers) by asking Thumbtack. |
thumbtack_get_pro | A pro's profile: name, description, location, aggregate rating, credentials, section inventory. |
thumbtack_get_pro_reviews | Reviews on a pro's profile — stars, author, date, text. |
thumbtack_graphql | Escape hatch for arbitrary read-only GraphQL. Mutations refused. |
thumbtack_healthcheck | Probes 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:
- 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
@typeis the trade-specific subtype, notLocalBusiness— 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
npm install
npm run build
npm test # unit + server-boot smoke tests
npm run test:coverage
Coverage is enforced at 100%.
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.