io.github.chrischall/thumbtack-mcp

Official registry Search and web

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

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

NPM package @chrischall/thumbtack-mcp
Claude Code
claude mcp add thumbtack-mcp -- npx -y @chrischall/thumbtack-mcp@1.1.8
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "thumbtack-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "@chrischall/thumbtack-mcp@1.1.8"
            ]
        }
    }
}

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. thumbtack-mcp
  2. Install
  3. Tools
  4. Shell-only alternative
  5. How it works
  6. Not covered
  7. Development
  8. License

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

Frequently asked questions

What is io.github.chrischall/thumbtack-mcp?

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

How do I install io.github.chrischall/thumbtack-mcp?

It runs on your machine. In Claude Code: claude mcp add thumbtack-mcp -- npx -y @chrischall/thumbtack-mcp@1.1.8. For other clients, paste the JSON configuration from this page into their MCP settings.

Does io.github.chrischall/thumbtack-mcp need an API key?

Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.

Is io.github.chrischall/thumbtack-mcp open source?

Its code is public on GitHub, but the repository does not declare a standard license.

Who maintains io.github.chrischall/thumbtack-mcp?

It is published by chrischall. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.