Close Knit
by getcloseknit.com · remote · no sign-in to list tools · v2.0.1 · published by com.getcloseknit
London neighbourhoods and homes: crime, schools, prices, rents, commute, green space, sourced.
24 tools: 1 do something that can't be undone, 6 change things and 17 only read.
Scanned Oct 22, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone1Claude Code: ask: see these tools
- Changes things6Claude Code: ask: see these tools
- Only reads17Claude Code: allow: see these tools
2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http close-knit https://getcloseknit.com/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "open_shared_search" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "open_shared_search" says "open": a word for a change.
The server marks "evaluate_custom_criterion" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "evaluate_custom_criterion" says "evaluate": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
24 tools
Can't be undone 1Claude Code: ask
send_feedbackSend feedback about Close Knit to the team: a bug, missing or wrong data, an idea, or what worked.No findings
Why it is in this group
- The name "send_feedback" says "send": a word for sending, and what is sent cannot be taken back.
Description, as the server wrote it Send feedback about Close Knit to the team: a bug, missing or wrong data, an idea, or what worked. Call it only after the user agrees: show them the message first. Describe the product and what happened, never the person: no names, contact details, addresses, family, budget or other personal circumstances.
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
- readOnlyHint: false
- title: Send feedback
Changes things 6Claude Code: ask
assess_listingCheck 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 boro…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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 borough's official HPI, costs (stamp duty on the asking price, the borough's 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Assess listing
build_watch_specTurn a finished search into a watch: portal searches per postcode district, filters, a state file path for de-duplication and a ready prompt for a scheduled task in the user's Clau…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Turn a finished search into a watch: portal searches per postcode district, filters, a state file path for de-duplication and a ready prompt for a scheduled task in the user's Claude that reports only new listings. Stateless: nothing is stored on Close Knit.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Build watch spec
evaluate_custom_criterionEvaluate a criterion from places on the map for every London neighbourhood ('where are more cafés than kebab shops', 'most gyms in the area'), counting the places inside each neigh…1 finding
Why it is in this group
- The name "evaluate_custom_criterion" says "evaluate": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "evaluate_custom_criterion" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "evaluate_custom_criterion" says "evaluate": a word for a change.
Description, as the server wrote it Evaluate a criterion from places on the map for every London neighbourhood ('where are more cafés than kebab shops', 'most gyms in the area'), counting the places inside each neighbourhood's boundary: a preset_id or the user's own criterion (sets of OSM tag matchers and a formula). Returns the best and worst areas with place counts and London percentiles, the legend and a map link that shows it as a layer. Places, never people: religion or who lives there is refused.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Evaluate custom criterion
match_areasScore every area against a household's ordered criteria (preference-profile.v2: budget, ranges on any map layer, places, where zones, own criteria; must = filter).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Score every area against a household's ordered criteria (preference-profile.v2: budget, ranges on any map layer, places, where zones, own criteria; must = filter). Returns a match-pack.v2 with the best top_n (default 20, max 100) areas as a list with score, rank and percentile per area, its top 2 reasons and 2 weakest criteria, the bottom 10, and per-criterion components (value, fit, in/edge/out) as evidence for the listed areas only. Whole-London counts (scored, unscored, excluded, and excludedBy per unmet must) cover every area; mapUrl opens the full map for the search. Set analyticsConsent true only if the user agreed to store an anonymised profile summary; the tool works identically with false.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Match areas
rank_areas_by_metricRank every served area by one metric for one month and return the top N with rank, value, unit and quality.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Rank every served area by one metric for one month and return the top N with rank, value, unit and quality. Tied values share a rank (competition ranking); each row carries tiedCount, the number of areas sharing its value. Use it to answer 'which areas have the lowest crime / highest GBP/m2' or 'the least deprived' (deprivation is the official IMD decile, 10 = least deprived: order desc), 'the highest household income' (income, GBP a year) or 'the most social renting' (social-renting, % of households; neutral, never call it better or worse). Areas with suppressed values are excluded. Census layers (census-*, student-share) describe residents and are refused: never rank areas by who lives there. The find_areas factors disorder, epc-share, leasehold-share and schools rank too (latest value, period ignored).
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Rank areas by metric
Only reads 17Claude Code: allow
find_areasShortlist London neighbourhoods for a household: budget, bedrooms, weighted priorities (crime, station access, price level, official deprivation decile, noise, disorder, energy rat…No findings
Why it is in this group
- The name "find_areas" says "find": a word for reading.
Description, as the server wrote it Shortlist London neighbourhoods for a household: budget, bedrooms, weighted priorities (crime, station access, price level, official deprivation decile, noise, disorder, energy rating, leasehold share) and optional stations/boroughs to live near. Returns ranked areas with score, factor values, a ballpark price for the bedroom count and budget fit, postcode districts and website links. Pass rejected areas in exclude_area_ids when refining after the user's feedback (LSOA, MSOA or borough ids).
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Find areas
find_similar_areasNeighbourhoods like one the user liked (crime, deprivation, income, price level and station access percentiles), optionally only cheaper ones: 'like this but cheaper / elsewhere'.No findings
Why it is in this group
- The name "find_similar_areas" says "find": a word for reading.
Description, as the server wrote it Neighbourhoods like one the user liked (crime, deprivation, income, price level and station access percentiles), optionally only cheaper ones: 'like this but cheaper / elsewhere'.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Find similar areas
get_address_historyRecorded achieved sale prices for one address id (HM Land Registry Price Paid, GBP, with the EPC floor area where matched; no per-sale GBP/m2).No findings
Why it is in this group
- The name "get_address_history" says "get": a word for reading.
Description, as the server wrote it Recorded achieved sale prices for one address id (HM Land Registry Price Paid, GBP, with the EPC floor area where matched; no per-sale GBP/m2). These are historic transactions, never valuations or asking prices. listingLinks open the postcode on Rightmove (past listings and their photos), Zoopla and OnTheMarket: links only, Close Knit does not fetch or host listings.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get address history
get_area_evidence_packOne cited evidence pack for an area: market depth (as get_market_depth), the latest recorded crime rate, road and rail noise shares, state schools within 1.5 km with their standing…No findings
Why it is in this group
- The name "get_area_evidence_pack" says "get": a word for reading.
Description, as the server wrote it One cited evidence pack for an area: market depth (as get_market_depth), the latest recorded crime rate, road and rail noise shares, state schools within 1.5 km with their standing Ofsted grade, and, given an address_id inside the area, its building and street sale aggregates. Every block names its source release; not advice and not a valuation.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get area evidence pack
get_area_metricEvidence-backed value of one metric for one area in one month: value, London and England percentiles, quality, sample size, category breakdown where available, plus up to 12 prior …No findings
Why it is in this group
- The name "get_area_metric" says "get": a word for reading.
Description, as the server wrote it Evidence-backed value of one metric for one area in one month: value, London and England percentiles, quality, sample size, category breakdown where available, plus up to 12 prior months as evidence rows. Units follow the metric (per 1,000 residents, GBP/m2). Confidence is high only for observed (not modelled) values. Some metrics are published for a wider area (income per MSOA; rent change and mobile coverage per borough): on a smaller area they return the enclosing area's value with quality 'fallback' and carrierGeographyId naming where it came from. Period defaults to the metric's latest. The find_areas factors disorder, epc-share, leasehold-share and schools are read the same way for one neighbourhood (latest value, period ignored), to verify or explain a find_areas result.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get area metric
get_area_overviewOne neighbourhood in detail for a decision: local market (sales, turnover, leasehold share, £/m² medians, growth), the borough's official UK HPI (hpi: average price by type, 1/5/10…No findings
Why it is in this group
- The name "get_area_overview" says "get": a word for reading.
Description, as the server wrote it One neighbourhood in detail for a decision: local market (sales, turnover, leasehold share, £/m² medians, growth), the borough's official UK HPI (hpi: average price by type, 1/5/10-year change vs London: quote this for how prices moved), £/m² price trend, crime with its offence mix (topTypes, a busy-centre note), road/rail noise, nearby state schools with their standing Ofsted grade plus independent schools (schools.independent), planning rules (home: conservation, Article 4, listed buildings, broadband), council tax bands and a typical bill (councilTax), the IMD decile (deprivation), a ballpark price for a bedroom count and website links.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get area overview
get_commuteDoor-to-door minutes from one neighbourhood to the user's places on a weekday morning, by public transport (R5 on TfL timetables), bike (at the speed Santander Cycles riders reach;…No findings
Why it is in this group
- The name "get_commute" says "get": a word for reading.
Description, as the server wrote it Door-to-door minutes from one neighbourhood to the user's places on a weekday morning, by public transport (R5 on TfL timetables), bike (at the speed Santander Cycles riders reach; checked against TfL), car (typical morning traffic, no parking) and walking, each with a range. Places within 1.5 km of a commute hub (King's Cross, Bank, Canary Wharf, Oxford Circus…) are routed through it; others in Greater London get a straight-line estimate (estimate: true); places outside Greater London get no minutes (reason 'outside-london'). Journeys over 120 minutes are not timed (minutes null, capped: true).
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get commute
get_flood_riskFlood bands for an area's land (rivers/sea, surface water) and, with a UPRN, that home's own bands.No findings
Why it is in this group
- The name "get_flood_risk" says "get": a word for reading.
Description, as the server wrote it Flood bands for an area's land (rivers/sea, surface water) and, with a UPRN, that home's own bands. Bands show the likelihood for an area, not a specific property: send the user to the Environment Agency check for one address.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get flood risk
get_home_pricesOne London home's recorded sales (date, price, HM Land Registry link) and prices in its area today: the middle half (25th-75th percentile) of same-type standard sales since three y…No findings
Why it is in this group
- The name "get_home_prices" says "get": a word for reading.
Description, as the server wrote it One London home's recorded sales (date, price, HM Land Registry link) and prices in its area today: the middle half (25th-75th percentile) of same-type standard sales since three years back, each adjusted to the latest month by the local price index, with sample size and the area used (LSOA, else MSOA, else borough), and the coarse band its last sale fell in that year (top 10%, top quarter, upper middle, lower middle, bottom quarter, bottom 10%) with today's prices of that band in the area. Accepts a UPRN, an address id (uk:addr:…) from search_places, or an address fragment. Area statistics only: never say what the home is worth; describe the area. When a fragment matches several homes the tool returns their candidates instead of picking one: ask which home, or pass its addressId. Homes without a linked UPRN are reached by address id or fragment and carry uprn null. `facts` holds the home's type and tenure (Land Registry) and, where shown, energy-certificate facts (rating, potential rating, certificate date, built form, age band, rooms, floor level); null fields are not shown for this home; `withheld` lists features held back. Below 5 sales of the type nothing is shown. Hidden homes are not found.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get home prices
get_listing_search_linksPre-filtered searches on Rightmove, Zoopla, OnTheMarket (and OpenRent for rentals) for the postcode districts of shortlisted areas.No findings
Why it is in this group
- The name "get_listing_search_links" says "get": a word for reading.
Description, as the server wrote it Pre-filtered searches on Rightmove, Zoopla, OnTheMarket (and OpenRent for rentals) for the postcode districts of shortlisted areas. Links only: open them on the user's behalf to read listings; Close Knit itself never fetches or stores listings.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get listing search links
get_market_depthLocal market depth of one LSOA or MSOA from HM Land Registry Price Paid (standard category A sales only): sales in the last 12 months, turnover (% of EPC-linked homes that sold), t…No findings
Why it is in this group
- The name "get_market_depth" says "get": a word for reading.
Description, as the server wrote it Local market depth of one LSOA or MSOA from HM Land Registry Price Paid (standard category A sales only): sales in the last 12 months, turnover (% of EPC-linked homes that sold), the leasehold share OF SALES (not of homes), new-build and resale median GBP/m2 over 36 months with the new-build premium (each median needs 10 sales, the premium both), and the LSOA's GBP/m2 growth. Aggregates only: never a valuation, a listing or addresses.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get market depth
get_nearby_sales_summaryCounts and median GBP/m2 of other homes' recorded sales in the same building (postcode, house number or name, street) and on the same street (other buildings) as one address id, la…No findings
Why it is in this group
- The name "get_nearby_sales_summary" says "get": a word for reading.
Description, as the server wrote it Counts and median GBP/m2 of other homes' recorded sales in the same building (postcode, house number or name, street) and on the same street (other buildings) as one address id, last 10 years. The median is withheld under 5 standard sales with an EPC floor area. Summary only: no sale rows and no addresses; homes with a privacy objection are left out.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get nearby sales summary
get_rent_levelsMedian monthly rent by bedroom count for areas (the figure the site shows).No findings
Why it is in this group
- The name "get_rent_levels" says "get": a word for reading.
Description, as the server wrote it Median monthly rent by bedroom count for areas (the figure the site shows). Borough averages per LSOA; empty for a studio or before the rents are loaded.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get rent levels
list_custom_presetsReady-made custom criteria built from places on OpenStreetMap, with neutral descriptive names: kebab shops vs cafés, specialty coffee vs kebab shops, sandwich chains vs bakery chai…No findings
Why it is in this group
- The name "list_custom_presets" says "list": a word for reading.
Description, as the server wrote it Ready-made custom criteria built from places on OpenStreetMap, with neutral descriptive names: kebab shops vs cafés, specialty coffee vs kebab shops, sandwich chains vs bakery chains, independent vs chain cafés, the nearest gym or sports centre, bars, pubs and clubs (more or fewer, per 1,000 residents), cinemas, theatres, museums and galleries, universities, the nearest playground or nursery, variety of cuisines, bakeries vs betting shops, takeaways, coworking, bike parking, the nearest EV charging point, the nearest market, the nearest dog park, vet or pet shop. Each has an id for evaluate_custom_criterion and find_areas(custom=[…]), a mapUrl (the map coloured by it) and a one-line definition. Use the names as given: no brand names or value words ('good', 'cheap') in what you tell the user.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: List custom presets
list_metricsList every area metric the active release serves (id, unit, direction, available periods, legend, provenance, caveats), plus the My match factors (kind 'factor': disorder, epc-shar…No findings
Why it is in this group
- The name "list_metrics" says "list": a word for reading.
Description, as the server wrote it List every area metric the active release serves (id, unit, direction, available periods, legend, provenance, caveats), plus the My match factors (kind 'factor': disorder, epc-share, leasehold-share, schools) that get_area_metric and rank_areas_by_metric also read. Call first to learn valid metric_id/period values for the other area tools; compact=true returns only id, unit, direction and defaultPeriod. Sources carry licence and methodology links.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: List metrics
search_areasResolve free text (area name, ONS code, postcode, street) to geography ids (uk:lsoa|msoa|borough:…) and, where recorded sales exist, address ids (uk:addr:…).No findings
Why it is in this group
- The name "search_areas" says "search": a word for reading.
Description, as the server wrote it Resolve free text (area name, ONS code, postcode, street) to geography ids (uk:lsoa|msoa|borough:…) and, where recorded sales exist, address ids (uk:addr:…). Use the returned ids with get_area_metric, rank_areas_by_metric, get_address_history.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Search areas
search_placesResolve a place the user mentions (station, borough, neighbourhood, postcode, street) to ids.No findings
Why it is in this group
- The name "search_places" says "search": a word for reading.
Description, as the server wrote it Resolve a place the user mentions (station, borough, neighbourhood, postcode, street) to ids. Station lookup forgives spelling (Kings Cross, St James Park, Elephant and Castle) and knows London codes and nicknames (KX, TCR, LST, E&C, ally pally). Returns stations (osm:…, with TfL modes, lines and zone; twin stations such as Hammersmith are listed apart) for find_areas.near_stations, boroughs (uk:borough:…) for find_areas.boroughs, areas and addresses for get_area_overview and assess_listing.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Search places
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 2.0.1. Values in angle brackets are yours to fill in.
claude mcp add --transport http close-knit https://getcloseknit.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__close-knit__find_areas",
"mcp__close-knit__find_similar_areas",
"mcp__close-knit__get_area_overview",
"mcp__close-knit__list_metrics",
"mcp__close-knit__search_areas",
"mcp__close-knit__get_area_metric",
"mcp__close-knit__get_address_history",
"mcp__close-knit__get_home_prices",
"mcp__close-knit__get_market_depth",
"mcp__close-knit__get_nearby_sales_summary",
"mcp__close-knit__get_area_evidence_pack",
"mcp__close-knit__search_places",
"mcp__close-knit__get_commute",
"mcp__close-knit__get_flood_risk",
"mcp__close-knit__get_rent_levels",
"mcp__close-knit__get_listing_search_links",
"mcp__close-knit__list_custom_presets"
],
"ask": [
"mcp__close-knit__open_shared_search",
"mcp__close-knit__assess_listing",
"mcp__close-knit__rank_areas_by_metric",
"mcp__close-knit__match_areas",
"mcp__close-knit__evaluate_custom_criterion",
"mcp__close-knit__build_watch_spec",
"mcp__close-knit__send_feedback"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as close-knit. Review it before you use it.