Skip to main content
Glama

Handsome Local

Server Details

Search hand-picked websites for plumbers, electricians, roofers and other trades, with screenshots.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.3/5.0

Scored across 3 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness4/5

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 tools
get_websiteGet one website entryA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesEntry slug, lower case with hyphens.
screenshotNoInclude the card screenshot as an image block.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
pageYes
slugYes
techYes
townNo
styleYes
tradeYes
colourYes
creditYes
regionYes
reviewYes
summaryYes
websiteYes
featuresYes
platformYes
typefaceYes
screenshotNo
captured_atYes
published_atNo
full_page_screenshotNo

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 tagsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYes
facetsYes
tradesYes
generatedYes

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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 websitesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many results to return, 1 to 8.
queryNoFree 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").
styleNoVisual style tag, e.g. minimal, bold, photographic, dark, traditional.
tradeNoPrimary trade of the business, e.g. plumbers, electricians, roofers, construction, hvac, landscapers.
colourNoDominant colour tag, e.g. navy, green, orange, black.
regionNouk or us.
featuresNoConversion features the site must have, all of them, e.g. click-to-call, phone-in-header, review-count, quote-form, licence-number, van-photo.
platformNoWhat the site is built on, e.g. wordpress, webflow, wix, squarespace, custom.
typefaceNoA typeface name to match, e.g. Inter, Poppins, DM Sans.
screenshotsNoInclude each result's screenshot as an image block. Set false for text only.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultsYes
returnedYes
total_matchesYes

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 3 tool updates
    • First observedget_website
    • First observedlist_filters
    • First observedsearch_websites

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides verified local trade and service business data (e.g., radon mitigation, foundation repair) to AI agents via tools like search_providers and list_niches.
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Search 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 IP
    6
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Discovers local businesses needing a website via OpenStreetMap and verifies their leads with checks like website existence, email deliverability, and site quality scoring.
    25 PyPI
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources