mcpField
T
thumbtack-mcp

thumbtack-mcp

Local
github.com/chrischallBusiness & Marketing0Updated 4d ago

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

  1. 01Search professionals by trade and US ZIP code
  2. 02Read profiles, ratings, reviews, and credentials
  3. 03Resolve informal service names
  4. 04Run read-only GraphQL queries
  5. 05Check page and GraphQL response health
  6. 06Choose compact or full result views

Use cases

  1. 01Find local professionals for a trade
  2. 02Compare providers using ratings and reviews
  3. 03Inspect a professional's credentials and profile
  4. 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.

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

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@chrischall/thumbtack-mcp1.1.8

Tools

6

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
zipstringYes5-digit US ZIP code to search near.
viewenumNoResponse 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
limitintegerNoCap the number of pros returned (upstream page size is 10).
servicestringYesTrade or service, e.g. "house cleaning", "plumbing", "electrician". Loose names are canonicalised by Thumbtack.

Details

From the project 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

// .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

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

Coverage is enforced at 100%.

License

MIT

Comments

Markdown supported

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.