Skip to main content
Glama

Yatmo MCP server: neighbourhood data for AI assistants and agents

Listed on mcpservers.org

Yatmo exposes its neighbourhood intelligence to AI clients through a remote MCP server. Connect Claude, Cursor, VS Code or your own agent, and it can answer "what is around this property?" with real data: nearest school, nursery, supermarket, public transport, train station, motorway access, distances with travel times, and a quotable summary paragraph, in 25 countries.

Two ways to use it: the hosted server operated by Yatmo at https://mcp.yatmo.com/mcp/v1 (Streamable HTTP, nothing to install), or the local edition in this repository (npx -y @yatmo/mcp, stdio), which exposes the same four tools and calls the Yatmo API with your key. This repository also holds ready-to-copy client configurations and a quick start. Full documentation: documentation.yatmo.com/mcp.

The four tools

Tool

Returns

yatmo_get_location_summary

A human-readable neighbourhood paragraph plus the nearest school, nursery, supermarket, transport and the reverse-geocoded place

yatmo_get_nearby_pois

An ordered list of points of interest around a property, optionally filtered by category, within a radius

yatmo_get_nearest_by_category

The single nearest place of a category, with distance and travel time

yatmo_get_accessibility_profile

Public-transport presence, nearest stop, nearest train station, nearest motorway access

All tools take latitude, longitude, country (BE, FR, UK...) and language, and return the same envelope: text (a summary the assistant can quote), facts (structured data), warnings and metadata. Categories use one vocabulary everywhere: school, nursery, supermarket, public_transport, train_station, motorway. Details: tools reference.

Related MCP server: real-estate-data-mcp-server

Authentication

Every request carries your Yatmo backend key in the LicenceKey header (LicenseKey is accepted too). Keep the key in the client's secret store, never in a public web page: the key grants access to your Yatmo account. Get a key at yatmo.com; keys explained.

Connect a client

Generic remote-MCP configuration (configs/mcp.json), accepted by most clients, sometimes under a slightly different parent key:

{
  "mcpServers": {
    "yatmo": {
      "url": "https://mcp.yatmo.com/mcp/v1",
      "headers": { "LicenceKey": "YOUR_KEY" }
    }
  }
}

Claude.ai and Claude Desktop: Settings > Connectors > Add custom connector, URL https://mcp.yatmo.com/mcp/v1, custom header LicenceKey: YOUR_KEY. The four tools appear once the connector is enabled.

Claude Code:

claude mcp add --transport http yatmo https://mcp.yatmo.com/mcp/v1 --header "LicenceKey: YOUR_KEY"

Cursor: copy configs/cursor/mcp.json to .cursor/mcp.json in your project (or to ~/.cursor/mcp.json for every project).

VS Code (Copilot agent mode): copy configs/vscode/mcp.json to .vscode/mcp.json.

Your own agent (Anthropic, OpenAI or any LLM SDK): use an MCP client library (TypeScript, Python, .NET, Go) with the Streamable HTTP transport, add the LicenceKey header to the transport, and forward the four tool definitions to the model. quickstart.py shows the raw protocol without any library.

Run it locally (stdio)

For clients that prefer a local process, or to inspect the code: @yatmo/mcp on npm, Node.js 18 or later, two dependencies (the official MCP SDK and zod). Same tools, same JSON answers as the hosted server; the key is read from the LicenceKey environment variable and sent to the Yatmo API only.

{
  "mcpServers": {
    "yatmo": {
      "command": "npx",
      "args": ["-y", "@yatmo/mcp"],
      "env": { "LicenceKey": "YOUR_YATMO_KEY" }
    }
  }
}

From a clone: npm install, then LicenceKey=YOUR_YATMO_KEY node src/index.js. Tests: npm test (mapping checked on a real API answer). Listing the tools works without a key; a tool call without one returns a 401 envelope.

Try it from the command line

export YATMO_KEY=your_backend_key
python3 quickstart.py          # initialize, list the tools, call yatmo_get_location_summary on a Brussels address
sh quickstart.sh               # the same three calls with curl

Prompts that work well

  • "What is the neighbourhood like around 50.8467, 4.3525 in Belgium? Answer in French."

  • "Nearest primary school and supermarket to this listing, with travel times on foot."

  • "Is this address well served by public transport? Nearest train station and motorway access?"

  • "List the points of interest within 800 m of the property, schools and supermarkets only."

The assistant answers from the text and facts of the tools; distances come with the mode they were measured in.

More

MIT licence for the files of this repository. Yatmo is a paid service for real estate portals, agency networks and developers.

Directories

The server is published in the official MCP registry as com.yatmo/yatmo (server.json in this repository) and submitted to the Docker MCP Catalog, Smithery and mcp.so. In clients that read the registry, search for "yatmo" or "real estate".

Available Tools

4 tools
yatmo_get_accessibility_profileAccessibility profile of a propertyA
Read-onlyIdempotent
Inspect

Returns a synthetic accessibility view of a property: public-transport presence and nearest stop distance. Use it to answer questions like 'is this property practical without a car?'.

ParametersJSON Schema
NameRequiredDescriptionDefault
countryYesCountry code (market), e.g. BE, FR, NL
languageYesLanguage code, e.g. fr, en, nl, de
latitudeYesLatitude, -90..90
longitudeYesLongitude, -180..180

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and openWorld, so the safety profile is covered. The description adds a genuinely non-obvious disclosure — the view is 'synthetic' — which tells the agent the data is not authoritative and should be caveated, plus it names the two fields returned. No statement about distance units or resolution, minor.

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 sentences, zero filler, and the most important clause (what is returned) is front-loaded before the usage hint. Nothing is repeated from the title or schema.

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?

With no output schema, the description carries the return-value burden and does name both returned facts. It is complete enough to call the tool correctly and interpret the result, though it stops short of unit/format detail for the distance and of any sibling disambiguation.

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%: country, language, latitude and longitude each carry format examples and range bounds. The description adds nothing about parameter semantics, so the baseline of 3 applies when the schema does all the work.

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

Purpose4/5

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

The description names a specific verb ('Returns') and resource ('a synthetic accessibility view of a property') and enumerates the payload (public-transport presence, nearest stop distance), which is enough to distinguish it from nearby_pois or location_summary by content. It never names a sibling explicitly, but the output content is specific enough to route correctly.

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?

It gives a concrete usage trigger: 'Use it to answer questions like is this property practical without a car?'. That is clear context for when to reach for this tool, though it offers no exclusions or named alternatives versus yatmo_get_nearby_pois or yatmo_get_location_summary.

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

yatmo_get_location_summaryNeighbourhood summary of a propertyA
Read-onlyIdempotent
Inspect

Returns a human-readable neighbourhood summary plus structured facts (nearest school, nearest supermarket, public transport) around a property location. Use this to explain why a property is well situated.

ParametersJSON Schema
NameRequiredDescriptionDefault
countryYesCountry code (market), e.g. BE, FR, NL
languageYesLanguage code, e.g. fr, en, nl, de
latitudeYesLatitude, -90..90
longitudeYesLongitude, -180..180

TDQS

A3.6/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered. The description adds value by disclosing the shape of the response (human-readable summary plus structured facts), but says nothing about latency, caching, or the open-world dependency implied by openWorldHint.

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 tight sentences: the return contract first, then the intended use. Every clause earns its place and nothing is front-loaded incorrectly.

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?

With no output schema, the description must carry the return-value burden, and it does so at a high level by naming the summary and the specific fact categories. It is nearly complete for a read-only lookup; only the contrast with sibling tools and any format/pagination details are missing.

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%, so all four parameters (latitude, longitude, language, country) are already documented with ranges and example codes. The description adds no parameter-level detail such as coordinate precision or how language/country interact, so the baseline 3 applies.

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

Purpose4/5

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

The description names a specific verb and resource: returns a neighbourhood summary plus structured facts (nearest school, supermarket, transport) around a location. This is clearly distinguishable from a generic POI lookup, though it does not explicitly contrast itself with the overlapping siblings yatmo_get_nearby_pois or yatmo_get_nearest_by_category.

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

Usage Guidelines3/5

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

It gives one contextual use case ('explain why a property is well situated'), which implies usage but offers no when-not conditions and never names an alternative sibling tool. An agent must infer the boundary against yatmo_get_nearby_pois and yatmo_get_nearest_by_category on its own.

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

yatmo_get_nearby_poisPoints of interest around a propertyB
Read-onlyIdempotent
Inspect

Lists points of interest around a property, optionally filtered by category, within a radius. Categories: school, nursery, supermarket, public_transport, train_station, motorway. 'school' returns actual schools (excluding daycare); 'nursery' returns crèches/daycare only.

ParametersJSON Schema
NameRequiredDescriptionDefault
countryYesCountry code (market), e.g. BE, FR, NL
languageYesLanguage code, e.g. fr, en, nl, de
latitudeYesLatitude, -90..90
longitudeYesLongitude, -180..180
categoriesNoCategory tokens to keep; empty = all
maxResultsNoMaximum POIs to return (capped at 50)
radiusMetersNoSearch radius in meters (capped at 3000)

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds category disambiguation (school vs. nursery) but says nothing about result ordering, truncation behavior, or what happens when the radius yields no matches – gaps the annotations don't fill.

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?

Three sentences, front-loaded with the core action before the category detail, and no filler. Only mild redundancy between the general 'filtered by category' clause and the subsequent category glossary.

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?

For a 7-parameter, 4-required geo query with no output schema, the description covers purpose and category semantics but omits the return shape and what fields each POI carries, plus any note on ordering or result-count behavior. Adequate but with clear gaps for a tool whose output the agent must reason about.

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%, so baseline is 3, but the description goes beyond it: it enumerates the valid category tokens and disambiguates two overlapping ones ('school' excludes daycare, 'nursery' is crèches/daycare only). That is real added meaning for a parameter the schema documents only as free-form strings ('Category tokens to keep; empty = all') with no enum. It does not add anything on radiusMeters/maxResults, but the schema's capping notes suffice there.

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

Purpose4/5

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

Specific verb and resource: 'Lists points of interest around a property' with the optional category filter and radius scoping stated up front. It does not, however, name or contrast itself with the sibling tools (yatmo_get_nearest_by_category, yatmo_get_location_summary), so the reader can't tell from the text alone which tool to pick for a proximity query.

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

Usage Guidelines2/5

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

The description explains what can be filtered but never states when to use this tool versus yatmo_get_nearest_by_category or yatmo_get_accessibility_profile, which are clearly adjacent in scope. No prerequisites, no when-not-to-use guidance.

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

yatmo_get_nearest_by_categoryNearest place of a categoryA
Read-onlyIdempotent
Inspect

Returns the single nearest point of interest of a given category (e.g. the nearest school) with distance and travel time. Categories: school, nursery, supermarket, public_transport, train_station, motorway.

ParametersJSON Schema
NameRequiredDescriptionDefault
countryYesCountry code (market), e.g. BE, FR, NL
categoryYesCategory token, e.g. school, nursery, supermarket, train_station, motorway, public_transport
languageYesLanguage code, e.g. fr, en, nl, de
latitudeYesLatitude, -90..90
longitudeYesLongitude, -180..180

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, open-world and non-destructive behavior, so the safety profile is covered. The description adds genuinely useful context beyond them: the result is a single point and it includes distance and travel time, which matters because there is no output schema.

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?

Two tight sentences with the primary behavior front-loaded and the category list last. Minor redundancy: the category values repeat what is already in the category parameter description.

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?

For a five-parameter required-input lookup with no output schema, the description usefully discloses that the response carries distance and travel time. It does not explain how language/country affect results, but nothing critical to calling it correctly is missing.

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%, so all five parameters including units and ranges are already documented in the schema. The description's category list largely duplicates the schema's category description and adds no format or semantics beyond it, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource with a clear scope qualifier: 'the single nearest point of interest of a given category.' The word 'single' implicitly separates it from the plural sibling yatmo_get_nearby_pois, but no sibling is named explicitly.

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

Usage Guidelines3/5

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

The category enumeration hints at when the tool applies, and 'single nearest' suggests a one-result use case, but there is no explicit guidance on when to choose this over yatmo_get_nearby_pois or yatmo_get_accessibility_profile, nor any stated preconditions.

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 observedyatmo_get_accessibility_profile
    • First observedyatmo_get_location_summary
    • First observedyatmo_get_nearby_pois
    • First observedyatmo_get_nearest_by_category

TDQS

A3.6/5.0

Scored across 4 tools

Disambiguation3/5

The four tools overlap substantially: yatmo_get_location_summary already reports nearest school, supermarket, and public transport, which duplicates what yatmo_get_nearest_by_category returns, and yatmo_get_accessibility_profile re-covers public-transport/nearest-stop data. Descriptions do clarify the granularity (aggregated summary vs. list vs. single nearest vs. derived accessibility view), so an agent can mostly choose correctly, but the boundaries are fuzzy.

Naming Consistency5/5

All tools follow a strict 'yatmo_get_<noun>' snake_case pattern (get_location_summary, get_nearby_pois, get_nearest_by_category, get_accessibility_profile). The verb and namespace prefix are uniform throughout with no deviation.

Tool Count4/5

Four tools is a tight but sensible scope for a neighbourhood/property-location service, and each tool maps to a distinct query granularity. It is on the lean side, but no tool feels redundant enough to be dead weight.

Completeness4/5

The surface covers the core location workflows: aggregate summary, filtered POI listing, single nearest POI with distance/travel time, and an accessibility view. Minor gaps exist (e.g., no batch/multi-category query or distance/commute matrix), but agents can compose the existing tools to cover most questions.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    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
  • A
    license
    A
    quality
    D
    maintenance
    Provides US real estate data including housing stats, demographics, nearby amenities, area comparisons, cost-of-living analysis, and neighborhood search via free public APIs without any API keys.
    6
    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.
    -
  • A
    license
    A
    quality
    B
    maintenance
    Unified UK property search across major portals with deduplication and open-data enrichment, enabling natural-language queries for listings, sold prices, EPC, crime, schools, and market stats.
    10
    MIT