MCP-Server

Tradehand

io.github.Humanleap/tradehand
Business & Betrieb Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

Searches a UK directory of tradespeople, retrieves public trader and service details, and provides public website content.

browse_trades
List Tradehand's canonical UK trades. Instant quote is available before a trader is assigned.
Nur Lesen
Eingabeschema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 20, 'minimum': 1}, 'query': {'type': 'string'}, 'cursor': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['schemaVersion', 'outcome', 'data', 'missingFacts', 'blockers', 'nextActions', 'continuation'], 'properties': {'data': {'type': 'object'}, 'outcome': {'enum': ['ready', 'needs_input', 'blocked', 'pending', 'completed'], 'type': 'string'}, 'blockers': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'string'}, 'message': {'type': 'string'}}, 'additionalProperties': False}}, 'revision': {'type': 'string'}, 'nextActions': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'label', 'requiredFacts'], 'properties': {'code': {'type': 'string'}, 'label': {'type': 'string'}, 'requiredFacts': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'continuation': {'type': ['object', 'null'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'kind': {'enum': ['first_party'], 'type': 'string'}}, 'additionalProperties': False}, 'missingFacts': {'type': 'array', 'items': {'type': 'object', 'required': ['field', 'question'], 'properties': {'field': {'type': 'string'}, 'question': {'type': 'string'}}, 'additionalProperties': False}}, 'schemaVersion': {'type': 'integer', 'const': 1}}, 'additionalProperties': False}
get_agent_discovery
Return the public agent discovery endpoints, content policy, and canonical URLs for Tradehand.
Nur Lesen
Eingabeschema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
get_page_markdown
Fetch a public Tradehand website page as clean markdown for agent reading and summarisation.
Nur Lesen
Eingabeschema
{'type': 'object', 'required': ['path'], 'properties': {'path': {'type': 'string', 'default': '/', 'description': 'Public path on tradehand.com, for example /pricing or /for-trades.'}}, 'additionalProperties': False}
get_service_options
Return the listing's actual catalogue services when one exists. Does not reserve a slot or claim bookability.
Nur Lesen Externer Zugriff
Eingabeschema
{'type': 'object', 'required': ['publicReference'], 'properties': {'publicReference': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['schemaVersion', 'outcome', 'data', 'missingFacts', 'blockers', 'nextActions', 'continuation'], 'properties': {'data': {'type': 'object'}, 'outcome': {'enum': ['ready', 'needs_input', 'blocked', 'pending', 'completed'], 'type': 'string'}, 'blockers': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'string'}, 'message': {'type': 'string'}}, 'additionalProperties': False}}, 'revision': {'type': 'string'}, 'nextActions': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'label', 'requiredFacts'], 'properties': {'code': {'type': 'string'}, 'label': {'type': 'string'}, 'requiredFacts': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'continuation': {'type': ['object', 'null'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'kind': {'enum': ['first_party'], 'type': 'string'}}, 'additionalProperties': False}, 'missingFacts': {'type': 'array', 'items': {'type': 'object', 'required': ['field', 'question'], 'properties': {'field': {'type': 'string'}, 'question': {'type': 'string'}}, 'additionalProperties': False}}, 'schemaVersion': {'type': 'integer', 'const': 1}}, 'additionalProperties': False}
get_trader
Return a public directory profile by listing slug. Instant quote remains available even when the listing has no purchasable catalogue. Does not expose phone, street address or coordinates.
Nur Lesen Externer Zugriff
Eingabeschema
{'type': 'object', 'required': ['publicReference'], 'properties': {'publicReference': {'type': 'string', 'description': 'Public directory listing slug from search_traders.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['schemaVersion', 'outcome', 'data', 'missingFacts', 'blockers', 'nextActions', 'continuation'], 'properties': {'data': {'type': 'object'}, 'outcome': {'enum': ['ready', 'needs_input', 'blocked', 'pending', 'completed'], 'type': 'string'}, 'blockers': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'string'}, 'message': {'type': 'string'}}, 'additionalProperties': False}}, 'revision': {'type': 'string'}, 'nextActions': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'label', 'requiredFacts'], 'properties': {'code': {'type': 'string'}, 'label': {'type': 'string'}, 'requiredFacts': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'continuation': {'type': ['object', 'null'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'kind': {'enum': ['first_party'], 'type': 'string'}}, 'additionalProperties': False}, 'missingFacts': {'type': 'array', 'items': {'type': 'object', 'required': ['field', 'question'], 'properties': {'field': {'type': 'string'}, 'question': {'type': 'string'}}, 'additionalProperties': False}}, 'schemaVersion': {'type': 'integer', 'const': 1}}, 'additionalProperties': False}
read_okf_concept
Read one file of the Tradehand Open Knowledge Format bundle under /okf as raw markdown, YAML frontmatter intact. Start at /okf/index.md for the list of concepts.
Nur Lesen
Eingabeschema
{'type': 'object', 'required': ['path'], 'properties': {'path': {'type': 'string', 'default': '/okf/index.md', 'description': 'Bundle path under /okf, for example /okf/costs/eicr.md, /okf/costs/ or /okf/log.md.'}}, 'additionalProperties': False}
search_traders
Find current public Tradehand directory listings by trade and optional UK postcode or place. Returns claim state, listing-source freshness, accreditation names, and canonical profile URLs; it does not claim availability, expose mixed-source ratings, or contact anyone.
Nur Lesen Externer Zugriff
Eingabeschema
{'type': 'object', 'required': ['trade'], 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 20, 'minimum': 1}, 'trade': {'type': 'string', 'description': 'Trade name or directory slug, for example Electricians, plumber, or roofers.'}, 'location': {'type': 'string', 'description': 'Optional UK town, city, or borough; do not combine with postcode.'}, 'postcode': {'type': 'string', 'description': 'Optional full UK postcode, for example CO1 1AA.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['status', 'trade', 'requestedLocation', 'resolvedArea', 'total', 'returned', 'truncated', 'coverageNote', 'listings'], 'properties': {'total': {'type': 'integer', 'minimum': 0}, 'trade': {'type': 'object', 'required': ['value', 'label', 'slug'], 'properties': {'slug': {'type': 'string'}, 'label': {'type': 'string'}, 'value': {'type': 'string'}}, 'additionalProperties': False}, 'status': {'enum': ['ok', 'empty'], 'type': 'string'}, 'listings': {'type': 'array', 'items': {'type': 'object', 'required': ['publicReference', 'name', 'trade', 'location', 'claimed', 'accreditations', 'sourceRegister', 'sourceCheckedAt', 'profileUrl'], 'properties': {'name': {'type': 'string'}, 'trade': {'type': 'string'}, 'claimed': {'type': 'boolean'}, 'location': {'type': 'string'}, 'profileUrl': {'type': 'string', 'format': 'uri'}, 'accreditations': {'type': 'array', 'items': {'type': 'string'}}, 'sourceRegister': {'type': ['string', 'null']}, 'publicReference': {'type': 'string', 'description': 'Public directory listing slug for get_trader.'}, 'sourceCheckedAt': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'returned': {'type': 'integer', 'minimum': 0}, 'truncated': {'type': 'boolean'}, 'coverageNote': {'type': 'string'}, 'resolvedArea': {'type': 'object', 'required': ['name', 'path'], 'properties': {'name': {'type': 'string'}, 'path': {'type': ['string', 'null'], 'format': 'uri'}}, 'additionalProperties': False}, 'requestedLocation': {'type': ['string', 'null']}}, 'additionalProperties': False}
Hinzugefügt
read_okf_concept
2. October 2026 02:40
Hinzugefügt
get_agent_discovery
2. October 2026 02:40
Hinzugefügt
get_page_markdown
2. October 2026 02:40
Hinzugefügt
get_service_options
2. October 2026 02:40
Hinzugefügt
get_trader
2. October 2026 02:40
Hinzugefügt
search_traders
2. October 2026 02:40
Hinzugefügt
browse_trades
2. October 2026 02:40