LondonIQ MCP Server
Model Context Protocol server for the LondonIQ London property and area intelligence API. Gives Claude and other AI assistants real-time access to postcode data, crime rates, school ratings, transport links, investment metrics, and more across 181,000 London postcodes.
Free to use
LondonIQ MCP is free. No key required for personal use and evaluation.
npx @londoniq/mcp-server
Building something commercial? Get a dedicated API key with guaranteed quota:londoniq.co.uk/developer
Free for personal use, research, and evaluation.Commercial use (products, client work, resale) requires a REST API subscription.
What you can ask Claude
"What's the crime rate in Hackney and is it improving?"
"Find postcodes within 30 mins of Canary Wharf under £500k with good schools"
"Compare E8 1AB to SW3 4HH — which is better for a family?"
"Is SW17 0EJ in a flood risk zone?"
"Where should I invest in London property under £350k?"
"How long is the commute from Tooting to Liverpool Street?"
Quick start
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"londoniq": {
"command": "npx",
"args": ["-y", "@londoniq/mcp-server"]
}
}
}
Restart Claude Desktop. Ask: "What's the liveability score for E14 9RH?"
Tools
15 tools covering every dimension of London area intelligence:
| Tool | What it returns |
|---|---|
get_postcode_overview |
Headline scores, property, transport, safety snapshot |
get_postcode_property |
Prices, price history, rental rates, EPC ratings |
get_postcode_transport |
PTAL, tube/rail stations, commute times to City/Canary Wharf/Heathrow |
get_postcode_crime |
Crime rate, band, trend, breakdown by crime type |
get_postcode_schools |
Ofsted ratings, KS2/Progress 8 scores, school counts |
get_postcode_environment |
Air quality, flood risk, noise, green space, ULEZ |
get_postcode_investment |
Rental yield, gentrification score, market heat, buyer demand |
get_postcode_demographics |
IMD deprivation, income, tenure, education, age profile |
get_nearby_places |
Nearest tube, rail, schools, bus stops within a radius |
calculate_journey |
Door-to-door commute time via TfL Journey Planner |
compare_postcodes |
Side-by-side comparison of two postcodes |
find_postcodes_by_criteria |
Discover postcodes by budget, commute, safety criteria |
get_borough_overview |
Borough-level averages and top postcodes |
get_commute_postcodes |
All areas within N minutes of a workplace |
get_investment_hotspots |
London postcodes ranked by investment score |
Client configuration
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"londoniq": {
"command": "npx",
"args": ["-y", "@londoniq/mcp-server"]
}
}
}
Claude Code
~/.claude/mcp.json (global) or .mcp.json in your project:
{
"mcpServers": {
"londoniq": {
"command": "npx",
"args": ["-y", "@londoniq/mcp-server"]
}
}
}
Cursor
.cursor/mcp.json in your project root:
{
"londoniq": {
"command": "npx",
"args": ["-y", "@londoniq/mcp-server"]
}
}
Tool reference
get_postcode_overview
Complete intelligence snapshot for a postcode.
| Parameter | Type | Required | Description |
|---|---|---|---|
postcode |
string | ✓ | London postcode, e.g. SW17 0EJ |
get_postcode_property
Prices, price history, rental rates, EPC ratings.
| Parameter | Type | Required | Description |
|---|---|---|---|
postcode |
string | ✓ | London postcode |
get_postcode_transport
PTAL score, nearest stations, commute times to City/Canary Wharf/Heathrow.
| Parameter | Type | Required | Description |
|---|---|---|---|
postcode |
string | ✓ | London postcode |
get_postcode_crime
Crime rate, band (LOW/MEDIUM/HIGH/VERY HIGH), trend (RISING/STABLE/FALLING), breakdown by type.
| Parameter | Type | Required | Description |
|---|---|---|---|
postcode |
string | ✓ | London postcode |
get_postcode_schools
Ofsted ratings, KS2/Progress 8 scores, nearest schools.
| Parameter | Type | Required | Description |
|---|---|---|---|
postcode |
string | ✓ | London postcode |
get_postcode_environment
Air quality index, flood risk, noise level, green space %, ULEZ zone.
| Parameter | Type | Required | Description |
|---|---|---|---|
postcode |
string | ✓ | London postcode |
get_postcode_investment
Rental yield, gentrification score, market heat, pipeline pressure, buyer demand.
| Parameter | Type | Required | Description |
|---|---|---|---|
postcode |
string | ✓ | London postcode |
get_postcode_demographics
IMD decile, median income, age profile, tenure mix (owned/rented), education.
| Parameter | Type | Required | Description |
|---|---|---|---|
postcode |
string | ✓ | London postcode |
get_nearby_places
Nearest tube, rail, Overground, DLR, schools, and bus stops within a radius.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
postcode |
string | ✓ | — | London postcode |
radius_m |
integer | — | 800 | Search radius in metres (max 1500) |
type |
enum | — | all |
Filter: all, stations, schools, buses |
calculate_journey
Door-to-door journey time via TfL Journey Planner. Returns duration, walking time, transfers, route summary, reliability score, crowding risk.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
from_postcode |
string | ✓ | — | Origin postcode |
to_postcode |
string | ✓ | — | Destination postcode |
mode |
enum | — | public_transport |
public_transport, walking, cycling, driving |
departure_time |
string | — | now | 24-hour time, e.g. 08:30 |
compare_postcodes
Side-by-side comparison across all dimensions.
| Parameter | Type | Required | Description |
|---|---|---|---|
postcode_a |
string | ✓ | First postcode |
postcode_b |
string | ✓ | Second postcode |
find_postcodes_by_criteria
Discover postcodes by budget, commute time, safety, and schools.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
max_price |
integer | — | — | Max property price in £ |
origin |
string | — | — | Workplace postcode for commute filtering |
max_commute_minutes |
integer | — | — | Max commute time in minutes (requires origin) |
limit |
integer | — | 10 | Results to return (max 50) |
get_borough_overview
Borough-level averages, top postcodes by liveability.
| Parameter | Type | Required | Description |
|---|---|---|---|
borough |
string | ✓ | Borough name or slug, e.g. Wandsworth, tower-hamlets |
get_commute_postcodes
All areas reachable within a commute time, ranked by liveability. Covers Greater London plus commuter belt (Surrey, Herts, Essex, Kent, Berkshire).
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
workplace_postcode |
string | ✓ | — | Workplace postcode |
max_commute_minutes |
integer | — | 30 | Max commute time in minutes (max 90) |
limit |
integer | — | 20 | Results to return (max 50) |
get_investment_hotspots
London postcodes ranked by composite investment score. Grades: A (75+) Strong · B (60–74) Good · C (45–59) Moderate · D (30–44) Weak · E (<30) Avoid.
| Parameter | Type | Required | Description |
|---|---|---|---|
limit |
integer | — | Results to return (default 10, max 50) |
borough |
string | — | Filter to a specific borough |
max_price |
integer | — | Max median property price filter in £ |
min_grade |
enum | — | Minimum grade: A, B, C, or D |
HTTP server mode
For remote access or web-based MCP clients (e.g. Smithery):
npm run start:http
Runs on port 3001. Endpoints: GET /health, GET /sse, POST /messages.
Environment variables
| Variable | Required | Description |
|---|---|---|
LONDONIQ_API_KEY |
Yes | Your LondonIQ API key (get one at londoniq.co.uk/developer) |
PORT |
No | HTTP server port (default 3001, HTTP mode only) |
Links
- LondonIQ: londoniq.co.uk
- API docs: londoniq.co.uk/developers
- MCP specification: modelcontextprotocol.io