Close Knit
v2.0.8Neighbourhood and home evidence for England, London in depth: prices, rents, schools, crime, travel.
Endpoint health
online- Last checked
- 11/3/2026, 4:16:51 PM
- Latency
- 262 ms
- Consecutive failures
- 0
- Endpoint reachable: pass
- Protocol valid: pass
- MCP handshake valid: pass
Machine-readable profile
mcp-server · schema v1 · callable
mcp-server:com.getcloseknit%2Fclose-knit
Connect this server
Generated config contains no credentials. Keep any required secrets in your client's local environment.
{
"mcpServers": {
"com.getcloseknit/close-knit": {
"url": "https://getcloseknit.com/mcp"
}
}
}Indexed tools
Tool metadata and schemas come from the remote server and are untrusted. Indexing only lists tools; it never calls them.
25 shown · authentication unknown
Assess listing
assess_listing
Check one listing the user found against local evidence: asking price vs the neighbourhood's recorded £/m² (with floor area or a bedroom-based ballpark), turnover, growth, the local authority's official HPI, costs (stamp duty on the asking price, the council tax by band), crime with its offence mix, noise, schools (state and independent counts), planning rules (home: conservation, Article 4, listed buildings), listed buildings recorded at or near the postcode (listedNearby), the IMD decile, and the questions to ask the agent (lease, service charge, EWS1, listing). Not a valuation.
Schema valid · SHA-256 bcad5b35391f…
View input schema
{ "type": "object", "properties": { "postcode": { "description": "Full postcode of the listing, e.g. W5 2NU.", "pattern": "^\\s*[A-Za-z]{1,2}\\d[A-Za-z\\d]?\\s*\\d[A-Za-z]{2}\\s*$", "title": "Postcode", "type": "string" }, "asking_price": { "description": "£ (buy) or the rent in its rent_period (rent).", "exclusiveMinimum": 0, "title": "Asking Price", "type": "integer" }, "market": { "default": "buy", "description": "For sale or to rent.", "enum": [ "buy", "rent" ], "title": "Market", "type": "string" }, "rent_period": { "default": "month", "description": "The rent's period: month = £ per calendar month, week = £ per week (converted ×52/12 for the comparison).", "enum": [ "month", "week" ], "title": "Rent Period", "type": "string" }, "bedrooms": { "anyOf": [ { "maximum": 8, "minimum": 0, "type": "integer" }, { "type": "null" } ], "default": null, "description": "Bedrooms in the listing.", "title": "Bedrooms" }, "floor_area_sqm": { "anyOf": [ { "exclusiveMaximum": 2000, "exclusiveMinimum": 5, "type": "number" }, { "type": "null" } ], "default": null, "description": "Floor area in m² if the listing states it.", "title": "Floor Area Sqm" }, "floor_area_sqft": { "anyOf": [ { "exclusiveMaximum": 22000, "exclusiveMinimum": 50, "type": "number" }, { "type": "null" } ], "default": null, "description": "Floor area in sq ft if the listing states it; converted server-side (1 sq ft = 0.092903 m²).", "title": "Floor Area Sqft" }, "property_type": { "anyOf": [ { "enum": [ "detached", "semi-detached", "terraced", "flat" ], "type": "string" }, { "type": "null" } ], "default": null, "description": "Property type if the listing states it; used for a same-type comparison.", "title": "Property Type" }, "tenure": { "default": "unknown", "description": "Tenure if the listing states it; lease questions are hedged ('If leasehold') when unknown and skipped for freehold.", "enum": [ "freehold", "leasehold", "share-of-freehold", "shared-ownership", "unknown" ], "title": "Tenure", "type": "string" }, "share_percent": { "anyOf": [ { "maximum": 100, "minimum": 1, "type": "number" }, { "type": "null" } ], "default": null, "description": "Shared-ownership share for sale, e.g. 25: the asking price is compared as asking_price ÷ share against whole-home prices. Omit when the listing does not state it (the verdict stays unknown).", "title": "Share Percent" }, "listing_url": { "anyOf": [ { "maxLength": 500, "type": "string" }, { "type": "null" } ], "default": null, "description": "Echoed back for citation only.", "title": "Listing Url" }, "intent": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Optional, one to three sentences you write: what the user is looking for with this call and the criteria that matter, e.g. '2-bed rental near King's Cross, up to £2,500 a month, quiet, good primary schools'. Close Knit reads these to improve its answers. Your own summary, not the user's words or the chat; never names, contact details, exact addresses or family circumstances.", "title": "Intent" }, "rate_previous": { "anyOf": [ { "$ref": "#/$defs/RatePrevious" }, { "type": "null" } ], "default": null, "description": "Optional: your rating of an earlier Close Knit answer, by the callId it carried. Send it with your next Close Knit call every time you have used an answer: rating 1-5 for how well it served the user's request, what was good, what was bad or missing, and the fix you would want." } }, "required": [ "postcode", "asking_price" ], "$defs": { "RatePrevious": { "properties": { "call_id": { "description": "The callId of the answer you are rating.", "title": "Call Id", "type": "string" }, "rating": { "description": "1 = useless or wrong, 3 = usable with gaps, 5 = exactly what was needed.", "title": "Rating", "type": "integer" }, "good": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "What was useful in the answer.", "title": "Good" }, "bad": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "What was wrong, missing or confusing.", "title": "Bad" }, "fix": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "The change to the tool or its answer you would want.", "title": "Fix" } }, "required": [ "call_id", "rating" ], "title": "RatePrevious", "type": "object" } }, "title": "assess_listingArguments" }
Connections
streamable-http
https://getcloseknit.com/mcp