Handsome Local
Search hand-picked websites for plumbers, electricians, roofers and other trades, with screenshots.
我該用這個嗎
品質與安全性
發現項目(2)
- LOW在 search_websites 中
- LOW在 get_website 中
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"handsome-local": {
"url": "https://handsomelocal.com/mcp"
}
}
}遠端端點
https://handsomelocal.com/mcpstreamable-http它能做什麼
工具清單
工具(3)
🟢search_websites(trade, region, style, colour, platform, ...)
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.
輸入結構描述
{
"type": "object",
"properties": {
"trade": {
"description": "Primary trade of the business, e.g. plumbers, electricians, roofers, construction, hvac, landscapers.",
"type": "string",
"enum": [
"plumbers",
"electricians",
"roofers",
"construction",
"hvac",
"landscapers",
"handyman",
"cleaners",
"pest-control"
]
},
"region": {
"description": "uk or us.",
"type": "string",
"enum": [
"uk",
"us"
]
},
"style": {
"description": "Visual style tag, e.g. minimal, bold, photographic, dark, traditional.",
"type": "string",
"enum": [
"minimal",
"bold",
"photographic",
"illustrated",
"corporate",
"friendly",
"dark",
"colourful",
"typographic",
"traditional"
]
},
"colour": {
"description": "Dominant colour tag, e.g. navy, green, orange, black.",
"type": "string",
"enum": [
"black",
"white",
"grey",
"beige",
"brown",
"blue",
"navy",
"teal",
"green",
"yellow",
"orange",
"red",
"pink",
"purple",
"multicolour"
]
},
"platform": {
"description": "What the site is built on, e.g. wordpress, webflow, wix, squarespace, custom.",
"type": "string",
"enum": [
"wordpress",
"wix",
"squarespace",
"webflow",
"framer",
"duda",
"godaddy",
"shopify",
"astro",
"custom",
"unknown"
]
},
"features": {
"description": "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.",
"maxItems": 6,
"type": "array",
"items": {
"type": "string",
"enum": [
"click-to-call",
"phone-in-header",
"sticky-cta",
"quote-form",
"online-booking",
"live-chat",
"reviews-widget",
"review-count",
"accreditation-badges",
"licence-number",
"before-and-after",
"project-gallery",
"service-area-map",
"team-photos",
"van-photo",
"prices-shown",
"emergency-line"
]
}
},
"typeface": {
"description": "A typeface name to match, e.g. Inter, Poppins, DM Sans.",
"type": "string",
"minLength": 1,
"maxLength": 60
},
"query": {
"description": "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\").",
"type": "string",
"minLength": 1,
"maxLength": 120
},
"limit": {
"default": 5,
"description": "How many results to return, 1 to 8.",
"type": "integer",
"minimum": 1,
"maximum": 8
},
"screenshots": {
"default": true,
"description": "Include each result's screenshot as an image block. Set false for text only.",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"total_matches": {
"type": "number"
},
"returned": {
"type": "number"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"trade": {
"type": "string"
},
"region": {
"type": "string"
},
"town": {
"type": "string"
},
"summary": {
"type": "string"
},
"credit": {
"type": "string"
},
"website": {
"type": "string"
},
"page": {
"type": "string"
},
"screenshot": {
"type": "string"
},
"features": {
"type": "array",
"items": {
"type": "string"
}
},
"style": {
"type": "array",
"items": {
"type": "string"
}
},
"colour": {
"type": "array",
"items": {
"type": "string"
}
},
"platform": {
"type": "string"
},
"typeface": {
"type": "array",
"items": {
"type": "string"
}
},
"tech": {
"type": "array",
"items": {
"type": "string"
}
},
"published_at": {
"type": "string"
}
},
"required": [
"slug",
"name",
"trade",
"region",
"summary",
"credit",
"website",
"page",
"features",
"style",
"colour",
"platform",
"typeface",
"tech"
],
"additionalProperties": false
}
}
},
"required": [
"total_matches",
"returned",
"results"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_website(slug, screenshot)
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.
輸入結構描述
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Entry slug, lower case with hyphens."
},
"screenshot": {
"default": true,
"description": "Include the card screenshot as an image block.",
"type": "boolean"
}
},
"required": [
"slug"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"trade": {
"type": "string"
},
"region": {
"type": "string"
},
"town": {
"type": "string"
},
"summary": {
"type": "string"
},
"credit": {
"type": "string"
},
"website": {
"type": "string"
},
"page": {
"type": "string"
},
"screenshot": {
"type": "string"
},
"features": {
"type": "array",
"items": {
"type": "string"
}
},
"style": {
"type": "array",
"items": {
"type": "string"
}
},
"colour": {
"type": "array",
"items": {
"type": "string"
}
},
"platform": {
"type": "string"
},
"typeface": {
"type": "array",
"items": {
"type": "string"
}
},
"tech": {
"type": "array",
"items": {
"type": "string"
}
},
"published_at": {
"type": "string"
},
"review": {
"type": "string"
},
"captured_at": {
"type": "string"
},
"full_page_screenshot": {
"type": "string"
}
},
"required": [
"slug",
"name",
"trade",
"region",
"summary",
"credit",
"website",
"page",
"features",
"style",
"colour",
"platform",
"typeface",
"tech",
"review",
"captured_at"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_filters
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.
輸入結構描述
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"total": {
"type": "number"
},
"generated": {
"type": "string"
},
"trades": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string"
},
"entry_term": {
"type": "string"
},
"count": {
"type": "number"
}
},
"required": [
"id",
"label",
"entry_term",
"count"
],
"additionalProperties": false
}
},
"facets": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "array",
"items": {
"type": "object",
"properties": {
"term": {
"type": "string"
},
"label": {
"type": "string"
},
"count": {
"type": "number"
}
},
"required": [
"term",
"label",
"count"
],
"additionalProperties": false
}
}
}
},
"required": [
"total",
"generated",
"trades",
"facets"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}社群
證據