Tradehand
Browse and book local tradespeople in the UK.
Should I use this
Quality & Safety
Findings (2)
- LOWin get_agent_discovery
- LOWin browse_trades
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"tradehand": {
"url": "https://tradehand.com/api/mcp"
}
}
}Remote endpoints
https://tradehand.com/api/mcpstreamable-httpWhat it can do
Tool inventory
Tools (7)
🟢browse_trades(query, cursor, limit)
List Tradehand's canonical UK trades. Instant quote is available before a trader is assigned.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string"
},
"cursor": {
"type": "string"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"default": 20
}
},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"schemaVersion": {
"type": "integer",
"const": 1
},
"outcome": {
"type": "string",
"enum": [
"ready",
"needs_input",
"blocked",
"pending",
"completed"
]
},
"data": {
"type": "object"
},
"revision": {
"type": "string"
},
"missingFacts": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"field",
"question"
],
"properties": {
"field": {
"type": "string"
},
"question": {
"type": "string"
}
}
}
},
"blockers": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
},
"nextActions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"code",
"label",
"requiredFacts"
],
"properties": {
"code": {
"type": "string"
},
"label": {
"type": "string"
},
"requiredFacts": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"continuation": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"kind": {
"type": "string",
"enum": [
"first_party"
]
},
"url": {
"type": "string",
"format": "uri"
}
}
}
},
"required": [
"schemaVersion",
"outcome",
"data",
"missingFacts",
"blockers",
"nextActions",
"continuation"
],
"additionalProperties": false
}🟢search_traders(trade, postcode, location, limit)
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.
Input Schema
{
"type": "object",
"properties": {
"trade": {
"type": "string",
"description": "Trade name or directory slug, for example Electricians, plumber, or roofers."
},
"postcode": {
"type": "string",
"description": "Optional full UK postcode, for example CO1 1AA."
},
"location": {
"type": "string",
"description": "Optional UK town, city, or borough; do not combine with postcode."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"default": 10
}
},
"required": [
"trade"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"ok",
"empty"
]
},
"trade": {
"type": "object",
"additionalProperties": false,
"required": [
"value",
"label",
"slug"
],
"properties": {
"value": {
"type": "string"
},
"label": {
"type": "string"
},
"slug": {
"type": "string"
}
}
},
"requestedLocation": {
"type": [
"string",
"null"
]
},
"resolvedArea": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"path"
],
"properties": {
"name": {
"type": "string"
},
"path": {
"type": [
"string",
"null"
],
"format": "uri"
}
}
},
"total": {
"type": "integer",
"minimum": 0
},
"returned": {
"type": "integer",
"minimum": 0
},
"truncated": {
"type": "boolean"
},
"coverageNote": {
"type": "string"
},
"listings": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"publicReference",
"name",
"trade",
"location",
"claimed",
"accreditations",
"sourceRegister",
"sourceCheckedAt",
"profileUrl"
],
"properties": {
"publicReference": {
"type": "string",
"description": "Public directory listing slug for get_trader."
},
"name": {
"type": "string"
},
"trade": {
"type": "string"
},
"location": {
"type": "string"
},
"claimed": {
"type": "boolean"
},
"accreditations": {
"type": "array",
"items": {
"type": "string"
}
},
"sourceRegister": {
"type": [
"string",
"null"
]
},
"sourceCheckedAt": {
"type": [
"string",
"null"
]
},
"profileUrl": {
"type": "string",
"format": "uri"
}
}
}
}
},
"required": [
"status",
"trade",
"requestedLocation",
"resolvedArea",
"total",
"returned",
"truncated",
"coverageNote",
"listings"
],
"additionalProperties": false
}🟢get_trader(publicReference)
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.
Input Schema
{
"type": "object",
"properties": {
"publicReference": {
"type": "string",
"description": "Public directory listing slug from search_traders."
}
},
"required": [
"publicReference"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"schemaVersion": {
"type": "integer",
"const": 1
},
"outcome": {
"type": "string",
"enum": [
"ready",
"needs_input",
"blocked",
"pending",
"completed"
]
},
"data": {
"type": "object"
},
"revision": {
"type": "string"
},
"missingFacts": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"field",
"question"
],
"properties": {
"field": {
"type": "string"
},
"question": {
"type": "string"
}
}
}
},
"blockers": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
},
"nextActions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"code",
"label",
"requiredFacts"
],
"properties": {
"code": {
"type": "string"
},
"label": {
"type": "string"
},
"requiredFacts": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"continuation": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"kind": {
"type": "string",
"enum": [
"first_party"
]
},
"url": {
"type": "string",
"format": "uri"
}
}
}
},
"required": [
"schemaVersion",
"outcome",
"data",
"missingFacts",
"blockers",
"nextActions",
"continuation"
],
"additionalProperties": false
}🟢get_service_options(publicReference)
Return the listing's actual catalogue services when one exists. Does not reserve a slot or claim bookability.
Input Schema
{
"type": "object",
"properties": {
"publicReference": {
"type": "string"
}
},
"required": [
"publicReference"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"schemaVersion": {
"type": "integer",
"const": 1
},
"outcome": {
"type": "string",
"enum": [
"ready",
"needs_input",
"blocked",
"pending",
"completed"
]
},
"data": {
"type": "object"
},
"revision": {
"type": "string"
},
"missingFacts": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"field",
"question"
],
"properties": {
"field": {
"type": "string"
},
"question": {
"type": "string"
}
}
}
},
"blockers": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
},
"nextActions": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"code",
"label",
"requiredFacts"
],
"properties": {
"code": {
"type": "string"
},
"label": {
"type": "string"
},
"requiredFacts": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"continuation": {
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"kind": {
"type": "string",
"enum": [
"first_party"
]
},
"url": {
"type": "string",
"format": "uri"
}
}
}
},
"required": [
"schemaVersion",
"outcome",
"data",
"missingFacts",
"blockers",
"nextActions",
"continuation"
],
"additionalProperties": false
}🟢get_page_markdown(path)
Fetch a public Tradehand website page as clean markdown for agent reading and summarisation.
Input Schema
{
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "Public path on tradehand.com, for example /pricing or /for-trades.",
"default": "/"
}
},
"required": [
"path"
],
"additionalProperties": false
}🟢get_agent_discovery
Return the public agent discovery endpoints, content policy, and canonical URLs for Tradehand.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢read_okf_concept(path)
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.
Input Schema
{
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "Bundle path under /okf, for example /okf/costs/eicr.md, /okf/costs/ or /okf/log.md.",
"default": "/okf/index.md"
}
},
"required": [
"path"
],
"additionalProperties": false
}Community
Evidence