Skip to main content
Glama
zyfy-uk

Zyfy MCP Server

Official
by zyfy-uk

@zyfy-uk/mcp

npm license

MCP server for Zyfy — UK postcode and vehicle intelligence for Claude, Cursor, and other AI agents.

Add this server to Claude Desktop, Claude Code, or Cursor and ask natural language questions about UK postcodes and vehicles. No code required.

Prerequisites

  • Node.js 18 or later

  • A Zyfy API key — sign up free at zyfy.uk (free tier includes 100 requests/month). Your key will look like ea_live_....

Related MCP server: homedata-mcp

Setup

Claude Desktop

Add to your Claude Desktop configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "zyfy": {
      "command": "npx",
      "args": ["-y", "@zyfy-uk/mcp"],
      "env": {
        "ZYFY_API_KEY": "ea_live_your_key_here"
      }
    }
  }
}

Restart Claude Desktop after saving the file.

Claude Code

Add a .mcp.json file in your project root:

{
  "mcpServers": {
    "zyfy": {
      "command": "npx",
      "args": ["-y", "@zyfy-uk/mcp"],
      "env": {
        "ZYFY_API_KEY": "ea_live_your_key_here"
      }
    }
  }
}

Note: Do not commit .mcp.json if it contains your API key — add .mcp.json to your .gitignore.

For a global setup (applies to all projects), add the same block to ~/.claude.json instead.

The same .mcp.json format works in Cursor and any other MCP-compatible client.

Available tools

Tool

Description

lookup_postcode

Flood risk, crime rate, broadband coverage, average property price, deprivation index (IMD), and MP details for any UK postcode

lookup_vehicle

Make, MOT history, tax/MOT status and expiry, ULEZ compliance, safety score, and odometer trend for any UK vehicle registration

nearest_postcode

Full enrichment data for the nearest postcode to a lat/lon coordinate

postcodes_within

All postcodes within a radius of a lat/lon coordinate, each with full enrichment data

See zyfy.uk/docs for the full response schema and signal reference.

Example prompts

  • What's the flood risk at SW1A 2AA?

  • Is AB12 CDE ULEZ compliant, and when does its MOT expire?

  • What's the average property price and crime rate for the postcode nearest to 51.5074, -0.1278?

  • List all postcodes within 500 metres of 51.5, -0.1 and their flood risk bands.

Quota

Each tool call uses one quota unit from your Zyfy account. postcodes_within uses one unit per postcode returned. Your remaining quota is included in every response. See zyfy.uk/pricing for plan details.

When your quota is exhausted, tools return a message with the reset date and a link to upgrade. When you hit the per-minute rate limit, tools return a message with how many seconds to wait.

If a response includes "enrichmentPending": true, Zyfy is still processing that record in the background. The result contains the best available data — retry in a few seconds for a complete result.

License

MIT

Available Tools

4 tools
lookup_postcodeA

Look up enriched data for a UK postcode. Returns geographic signals (region, constituency, rural/urban classification), risk signals (flood risk for rivers/sea and surface water, crime rate band), property signals (average price, EPC average), broadband coverage (superfast, ultrafast, gigabit, 4G, 5G), deprivation index (IMD decile), and local MP details. Northern Ireland (BT prefix) postcodes are not supported.

ParametersJSON Schema
NameRequiredDescriptionDefault
postcodeYesUK postcode, e.g. 'SW1A 2AA' or 'SW1A2AA'

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It implies a read-only lookup by listing returned data, but does not explicitly state it is non-destructive, mention authentication, rate limits, or other behaviors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph that front-loads the main purpose, but it lists many data categories, making it slightly verbose. Every sentence adds value, but could be more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by listing all categories of returned data, providing sufficient context for an agent to understand the output. It also notes the unsupported region, making it complete for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a description and example for the only parameter 'postcode'. The description adds no new semantic meaning beyond the schema's explanation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Look up enriched data for a UK postcode' and lists specific data categories (geographic, risk, property, broadband, deprivation, MP details), clearly distinguishing it from siblings like 'nearest_postcode' and 'postcodes_within'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states it is for UK postcodes and notes that Northern Ireland (BT prefix) postcodes are not supported, providing a clear when-not-to-use condition. It does not name alternative tools but the sibling names imply different purposes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lookup_vehicleA

Look up enriched data for a UK vehicle by registration mark. Returns make, colour, fuel type, engine capacity, year of manufacture, tax status and expiry, MOT status and expiry, days remaining until MOT/tax expires, ULEZ compliance, computed safety score, condition score, odometer trend versus fleet average, and MOT history summary with advisory and failure counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
registrationYesUK registration mark, e.g. 'AB12 CDE' or 'AB12CDE'

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden for behavioral disclosure. It describes the returned data but does not mention side effects (it appears read-only), rate limits, error conditions, or authorization requirements. This is insufficient for a tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that starts with the purpose but then lists many fields in a dense, unstructured manner. While complete, it could be more readable with bullets or shorter sentences. The essential information is present but not optimally organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple tool (one parameter, no output schema, no annotations), the description provides a comprehensive list of return fields. However, it lacks details on error cases (e.g., missing or invalid registration), performance expectations, or what happens if data is unavailable. This is adequate but not thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter 'registration'. The description adds format guidance with examples ('e.g., AB12 CDE or AB12CDE'), which helps the agent format input correctly. This extra detail raises the score above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: 'Look up enriched data for a UK vehicle by registration mark.' It lists specific fields returned, making the purpose unmistakable. Sibling tools are all postcode-related, so this tool is well-differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for UK vehicle lookups by registration mark. It does not explicitly state when not to use it or provide alternatives, but the context of siblings (postcode tools) and the single parameter make usage straightforward. An exclusion for non-UK vehicles is implied but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nearest_postcodeA

Find the nearest UK postcode to a latitude/longitude coordinate and return its full enrichment data. Useful when you have coordinates and need the corresponding postcode along with its risk and demographic signals.

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitude (WGS84), e.g. 51.5074
lonYesLongitude (WGS84), e.g. -0.1278
radiusNoSearch radius in metres. Default 1000, maximum 10000.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so description must cover behavior. It mentions returning 'full enrichment data' and 'risk and demographic signals', which is good. However, it doesn't explain what happens if no postcode is found, radius effects, or coordinate validity. Adequate but has gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with action and purpose. Every word earns its place; no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema or annotations, the description explains what it does, when to use it, and what it returns (enrichment data). Could mention radius or error states, but overall sufficient for a simple geospatial tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (all parameters have descriptions in the schema). The tool description adds no further parameter guidance beyond reinforcing 'latitude/longitude coordinate'. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool finds the nearest UK postcode to given coordinates and returns enrichment data. It distinguishes from siblings: lookup_postcode retrieves by code, postcodes_within returns multiple, while this tool finds the single nearest from a coordinate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear use case ('when you have coordinates and need the corresponding postcode'). It implies when to use but does not explicitly mention when not to or compare with postcodes_within.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

postcodes_withinA

Return all UK postcodes within a given radius of a latitude/longitude coordinate, each with full enrichment data. Results are ordered by distance ascending. Each returned postcode costs one quota unit. Requires a Starter plan or above. Maximum radius 5000 metres.

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitude (WGS84), e.g. 51.5074
lonYesLongitude (WGS84), e.g. -0.1278
radiusNoSearch radius in metres. Default 1000, maximum 5000.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden. It discloses ordering (distance ascending), cost (one quota per postcode), requirements (Starter plan), and max radius (5000m). Missing details on error handling or rate limits, but the disclosed info is substantial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, consisting of four sentences that front-load the purpose, then add ordering, cost/requirements, and a size constraint. Every sentence serves a purpose with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description covers key behaviors, it lacks details about the return format (what 'full enrichment data' contains) and does not mention pagination or limits on the number of postcodes returned. This is a gap for a tool that could return many results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds value by explaining the radius unit, default, and max, and clarifying that results are ordered by distance. It reinforces the coordinate reference (WGS84) and adds behavioral context not in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns all UK postcodes within a radius of a lat/lon coordinate with full enrichment data. It distinguishes from sibling tools like 'nearest_postcode' which likely returns a single nearest postcode, and 'lookup_postcode' for a specific postcode.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use the tool (to get all postcodes within a radius) and includes constraints (Starter plan required, quota cost, max radius). However, it does not explicitly contrast with alternatives or state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv0.1.0
    • First observedlookup_postcode
    • First observedlookup_vehicle
    • First observednearest_postcode
    • First observedpostcodes_within

TDQS

A4.1/5.0

Scored across 4 tools

Disambiguation5/5

Each tool serves a distinct purpose: postcode enrichment by code, by coordinates, radius search, and vehicle lookup. No overlap between tools, making selection unambiguous.

Naming Consistency4/5

All tool names use lowercase and underscores, but they mix verb+noun (lookup_postcode, lookup_vehicle) with descriptive phrases (nearest_postcode, postcodes_within). While readable, the pattern is not perfectly uniform.

Tool Count5/5

4 tools is well-scoped for a focused UK data enrichment server. Each tool provides a distinct capability without unnecessary complexity.

Completeness4/5

Covers core postcode lookups (by code, coordinates, radius) and vehicle enrichment. Minor gaps like address lookup or reverse geocoding for addresses are absent, but the set is coherent for its stated domain.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables users to search UK property prices by postcode, street, or city using the HM Land Registry's SPARQL endpoint. It also provides tools for resolving postcodes and finding nearby locations through Ordnance Survey data.
    2
    2
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to query UK property data including EPCs, sale history, planning, flood risk, council tax, demographics, and more via the Homedata API.
    18
    MIT
  • -
    license
    Not graded
    quality
    C
    maintenance
    Provides real-time London area intelligence including postcode data, crime, schools, transport, and investment metrics, enabling AI assistants to answer property-related queries.
    -