Skip to main content
Glama

search_thumbtack

Find local service professionals like plumbers, electricians, and cleaners with ratings, reviews, and pricing information from Thumbtack.

Instructions

Search local service professionals from Thumbtack. Find plumbers, electricians, cleaners, and 1000+ other service categories. Returns ratings, reviews, pricing, and hire counts.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesService category search term (e.g. "plumbers", "house cleaners")
locationNoCity/state slug (e.g. "san-francisco/ca", "austin/tx"). Omit for national results.
limitNoNumber of results to return (max 20)

Implementation Reference

  • The 'search_thumbtack' tool is defined using server.tool, including its schema, description, and the async handler logic that fetches data from the backend.
    server.tool(
      "search_thumbtack",
      "Search local service professionals from Thumbtack. Find plumbers, electricians, cleaners, and 1000+ other service categories. Returns ratings, reviews, pricing, and hire counts.",
      {
        query: z
          .string()
          .describe(
            'Service category search term (e.g. "plumbers", "house cleaners")'
          ),
        location: z
          .string()
          .optional()
          .describe(
            'City/state slug (e.g. "san-francisco/ca", "austin/tx"). Omit for national results.'
          ),
        limit: z
          .number()
          .int()
          .min(1)
          .max(20)
          .default(20)
          .describe("Number of results to return (max 20)"),
      },
      async ({ query, location, limit }) => {
        let url = `${BACKEND_URL}/thumbtack/search?query=${encodeURIComponent(query)}&limit=${limit}`;
        if (location) {
          url += `&location=${encodeURIComponent(location)}`;
        }
        const res = await fetch(url);
        const data = await res.json();
    
        if (!data.success) {
          return {
            isError: true,
            content: [{ type: "text", text: `Error: ${data.error}` }],
          };
        }
    
        return {
          content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
        };
      }
    );

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lulzasaur9192/marketplace-search-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server