Skip to main content
Glama

OpenStreetMap features by tag

osm_features

Map and list OpenStreetMap objects matching exact OSM tags inside an area — a bbox, a point and radius, or a named place. Use when you know the tags ("place=village|hamlet", "amenity=clinic", "railway=tram", "highway=*+name=Rue de Lyon") or need everything near a coordinate with distances; use build_map for natural-language questions and statistics. No model interpretation: tags and area are taken as given, every feature is an OSM object with all its tags. Each layer reports ok / empty (OSM has none matching here) / unavailable (no source answered — says nothing about whether any exist). Returns a shareable map plus a compact table per layer (name, osm id, distance_m for point searches, address, coordinates). Costs 1 credit; refunded when no layer has a feature.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "layers": "<layers>",
      "area": "<area>"
    },
    "name": "osm_features"
  }
}

Input Schema

NameRequiredDescriptionDefault
areaYesExactly one of: bbox, point + radius_m, or place (its extent; add radius_m for a radius around it, e.g. an address). Areas up to ~300 km across.
limitNoMax features per layer (default 200)
layersYes1–5 layers, each drawn and listed separately
rationaleNoOptional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations it discloses a credit cost with a refund condition, per-layer status semantics (ok / empty / unavailable) with the crucial caveat that 'unavailable' says nothing about existence, and the exact return shape (map plus table with distance_m for point searches). That is exactly the kind of behavior the sparse annotations (openWorldHint only) leave undisclosed.

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?

Front-loaded with purpose, then usage routing, then semantics, then output and cost. Every sentence carries distinct information — no restatement of the title or schema, and the densely packed examples are doing real work.

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 naming the returned artifacts and table columns, and it flags the paid-credit dimension and the empty-vs-unavailable distinction. For a nested, multi-layer, open-world query tool this is complete enough to call correctly.

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 the schema already documents area forms, tag syntax, limits and the optional rationale. The description reinforces that tags and area are taken literally and that point searches yield distance_m, but adds no syntax or constraint detail beyond the schema; baseline 3 applies.

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 a concrete verb and resource ('Map and list OpenStreetMap objects matching exact OSM tags inside an area'), specifies the three area forms, and explicitly contrasts with build_map for natural-language queries. An agent can distinguish it from siblings without opening the schema.

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

Usage Guidelines5/5

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

It gives an explicit when-to-use ('when you know the tags ... or need everything near a coordinate with distances') and a when-not-to-use routing to build_map. The 'no model interpretation' clause tells the agent not to paraphrase tags, which is actionable invocation guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources