Handsome Local
Server Details
Search hand-picked websites for plumbers, electricians, roofers and other trades, with screenshots.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 3 tools
The three tools map to clearly distinct actions: list_filters (enumerate available facets), search_websites (discover entries), get_website (fetch one entry's full detail by slug). The descriptions even specify the intended call order (list_filters -> search_websites -> get_website), leaving no realistic path for misselection.
All three names follow the same verb_noun snake_case pattern (get_website, list_filters, search_websites), with verbs that accurately reflect the operation type. No mixing of conventions or vague verbs.
Three tools is minimal but each earns its place for a curated read-only gallery: enumerate facets, search, then retrieve full detail. It is on the thin side — there is no browse/list-everything tool — but nothing feels redundant or missing a purpose.
For a curated read-only directory, the surface covers the full lifecycle: discover available filters, search with rich facets, and retrieve the complete entry (paragraph, tags, credit, live URL, screenshots). Minor gaps exist (no explicit pagination or browse-all-entries operation), but the core workflow has no dead ends.
Available Tools
3 toolsget_websiteGet one website entryARead-onlyIdempotentInspect
One entry from Handsome Local by its slug (the last part of an entry URL, e.g. gk-plumbing): the whole review paragraph, every tag, the credit, the live site, the entry page and the screenshots. Use after search_websites when the full review matters.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Entry slug, lower case with hyphens. | |
| screenshot | No | Include the card screenshot as an image block. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | |
| page | Yes | |
| slug | Yes | |
| tech | Yes | |
| town | No | |
| style | Yes | |
| trade | Yes | |
| colour | Yes | |
| credit | Yes | |
| region | Yes | |
| review | Yes | |
| summary | Yes | |
| website | Yes | |
| features | Yes | |
| platform | Yes | |
| typeface | Yes | |
| screenshot | No | |
| captured_at | Yes | |
| published_at | No | |
| full_page_screenshot | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds value by characterizing the breadth of the returned payload (full review plus screenshots), which tells the agent when a lookup is worth the round trip.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the resource and slug definition before the routing advice. Every clause carries information; nothing is padded or restated from the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema, full annotation coverage, and 100% parameter documentation, the description only needs to establish identity and routing, which it does. Nothing required to invoke the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description goes beyond the schema's 'lower case with hyphens' by explaining that the slug is the last part of an entry URL and giving a concrete example. The screenshot parameter is left to the schema, which documents it adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('One entry from Handsome Local by its slug') and enumerates the payload (review paragraph, tags, credit, live site, entry page, screenshots). It also distinguishes itself from the sibling search tool by defining the slug as the trailing URL segment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The closing sentence routes the agent explicitly: 'Use after search_websites when the full review matters,' naming both the alternative tool and the selecting condition. It does not spell out the inverse case (when not to use it), so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_filtersList trades and tagsARead-onlyIdempotentInspect
The trades and tags that have published entries on Handsome Local, each with a count, so a search can be built from filters that exist. Cheap; call it before search_websites when unsure what to filter on.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | |
| facets | Yes | |
| trades | Yes | |
| generated | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. The description adds genuinely useful context beyond them: it is cheap to call and it returns counts alongside each trade/tag, which tells the agent calling it is low-cost and the output is pre-aggregated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the first defines the returned data, the second gives the routing advice. Zero filler, and the most decision-relevant instruction (call before search_websites) is placed last where it is easy to act on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return shape need not be spelled out, and the description still summarizes it (trades, tags, counts). Purpose, cost and routing are all covered; only an explicit note on when not to bother calling it is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so there is nothing for the description to disambiguate; baseline is 4. The schema is empty by design and no parameter prose is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource concretely – trades and tags that have published entries, each with a count – and implicitly identifies the verb as listing available filters. It is clearly distinguishable from get_website and search_websites because it produces filter vocabulary rather than websites. It stops just short of a crisp verb-first statement, but an agent knows exactly what comes back.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit trigger: call it before search_websites when unsure what to filter on, and names that sibling directly. There is no when-not guidance, but for a zero-param enumeration tool the use case is essentially unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_websitesSearch trade websitesARead-onlyIdempotentInspect
Search Handsome Local, a hand-picked gallery of real websites for trades and home services businesses (plumbers, electricians, roofers, builders, heating and HVAC firms, landscapers) in the UK and US. Every entry is a live site chosen by an editor because it is well built and wins work; each comes with a screenshot of the top of the page, a one-sentence summary, its tags and a credit for whoever built it. Filter by trade, region, style, colour, platform, conversion features or typeface, or search free text. Returns the newest matches first. Use it for visual references when designing or building a website for a tradesperson. It does not rate or rank sites and it covers the trades listed only.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many results to return, 1 to 8. | |
| query | No | Free text matched against the business name, town, review and tech tags. Use for a place ("Manchester", "Texas") or a thing the review mentions ("Checkatrade", "emergency"). | |
| style | No | Visual style tag, e.g. minimal, bold, photographic, dark, traditional. | |
| trade | No | Primary trade of the business, e.g. plumbers, electricians, roofers, construction, hvac, landscapers. | |
| colour | No | Dominant colour tag, e.g. navy, green, orange, black. | |
| region | No | uk or us. | |
| features | No | Conversion features the site must have, all of them, e.g. click-to-call, phone-in-header, review-count, quote-form, licence-number, van-photo. | |
| platform | No | What the site is built on, e.g. wordpress, webflow, wix, squarespace, custom. | |
| typeface | No | A typeface name to match, e.g. Inter, Poppins, DM Sans. | |
| screenshots | No | Include each result's screenshot as an image block. Set false for text only. |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | |
| returned | Yes | |
| total_matches | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world. The description adds substantial context beyond those: what each entry contains (screenshot, one-sentence summary, tags, builder credit), result ordering ('newest matches first'), and the editorially-curated, non-ranking nature of the corpus. Return ordering and content composition are genuine behavioral disclosures.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded: the corpus is described first, then filters, then ordering, then usage and exclusions. It is longer than average, yet nearly every clause carries information an agent needs; only the repeated examples could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 10 params, an output schema, and full annotation coverage, the remaining missing pieces are usage scope and corpus semantics, both of which the description supplies explicitly, including what it does not do. An agent has everything it needs to call and interpret this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter with examples and enums. The description adds only a high-level enumeration of filter dimensions ('trade, region, style, colour, platform, conversion features or typeface') and a free-text note, which largely restates what the schema supplies. Baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Search Handsome Local, a hand-picked gallery of real websites for trades and home services businesses'), specifies the domain (UK/US trades), and distinguishes itself from siblings get_website (detail fetch) and list_filters (facet enumeration). An agent can identify exactly what corpus this searches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context ('Use it for visual references when designing or building a website for a tradesperson') and explicit exclusions ('It does not rate or rank sites and it covers the trades listed only'). It does not explicitly name get_website as the tool to use for full details, so it stops short of full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
get_website - First observed
list_filters - First observed
search_websites
Related MCP Connectors
Search 7,000+ local service businesses across America by category, location, or keyword.
Browse and book local tradespeople in the UK.
Search licensed US contractors by trade or location, fetch profiles and reviews, and submit leads.
Find owner-operated plumbers, HVAC techs, electricians and roofers in OK, KS, NE, IA and MO.
Related MCP Servers
AlicenseNot gradedqualityBmaintenanceProvides verified local trade and service business data (e.g., radon mitigation, foundation repair) to AI agents via tools like search_providers and list_niches.1MIT- AlicenseBqualityFmaintenanceSearching google, individual websites and scraping their content. Fast and cost-effective. ⚡️9241 npm24MIT
- AlicenseAqualityCmaintenanceSearch for local businesses worldwide. Structured data optimized for AI agents. • Search Millions of businesses over 49 countries (Europe, Northamerica, Southamerica, Asia, Oceania) • Quality & demand scoring for every business • Ranking based on real user click-through data • No API key needed, free access • Rate limit: 500 requests/hour per IP61MIT
- AlicenseNot gradedqualityCmaintenanceDiscovers local businesses needing a website via OpenStreetMap and verifies their leads with checks like website existence, email deliverability, and site quality scoring.25 PyPIMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.