Skip to main content
Glama

find_charging_station

Read-onlyIdempotent

Find EV charging sites near a place or coordinate with operator, plug type, max power, price per kWh and live free points. Filter by connector, power, operator or availability now.

Instructions

Returns EV charging sites near a place or coordinate: operator, plugs, max power, price per kWh where published, and how many points are free now where the operator publishes live status. Filters: plug, power (min/max kW), operator, free now. Use when an EV driver asks where to charge ("Wo kann ich laden?", "CCS 150 kW near Leipzig", "ist gerade eine Säule frei?"). Do NOT use for petrol or diesel (find_cheapest_fuel) or E-Kennzeichen rules (get_driving_rules). Radius ≤ 25 km, ≤ 10 sites; availability is missing for most operators and is then unknown, never free. Show the attribution line.

Input Schema

NameRequiredDescriptionDefault
latNoLatitude in WGS 84, e.g. 48.137. Use with lon when the caller already holds coordinates; otherwise use place.
lonNoLongitude in WGS 84, e.g. 11.576. Use with lat; otherwise use place.
limitNoHow many lines to return, nearest first (1–10, default 5). Places within 50 m that read alike are folded into one line that says how many units it holds; structuredContent.sites has one entry per place of the lines shown, with siteIds naming every record of that place, so it can be longer than limit.
placeNoWhere to look, as free text: a city ("München", "Munich"), a district or Kreis ("Kreis Fulda"), a Bundesland, a station or stop ("Hamburg Hbf"), a motorway junction ("AK Neufahrn"), or a street address with a house number ("Bahnhofstraße 12, 36037 Fulda"). A motorway number alone ("A7") resolves to the road, which has no single point — name a town or junction on it instead. Use this instead of coordinates whenever the person named a place. An address needs its town or postcode — a street and a number alone exist in many towns. Give either place OR lat+lon, never both.
languageNoSet this on every call to the language the person is writing in: "en" if they wrote English, "de" if they wrote German. Do not leave it out: it defaults to German ("de"), which is only the fallback when the language is genuinely unclear, so an English question sent without it is answered in German — a wrong answer. Place names, station names and road numbers are never translated in either language; in English the German term is kept in parentheses so the person recognises it on signs and in local apps.de
operatorNoOnly sites of this charge-point operator brand, as the person names it: "IONITY", "EnBW", "Tesla", "Aral pulse". Spellings of one brand match together ("EnBW mobility+ AG", "ENBW"); sites whose source names no operator are left out. Omit unless the person named an operator — a question about WHO operates the chargers sets none.
connectorNoPlug the car needs: "ccs2" (CCS Combo 2 — the DC fast-charging standard on almost every European EV), "type2" (Typ 2 / Mennekes, the AC socket) or "chademo" (older Japanese DC, e.g. Nissan Leaf). Omit unless the person named their plug or their car model — filtering on a guess hides chargers they could have used.
radius_kmNoSearch radius around the place in kilometres (1–25, default 10). A charging stop is worth a detour, so this is wider than the fuel radius — but 25 km is the cap, and a larger circle is a dataset request rather than a driver's question.
max_power_kwNoOnly charging points of at most this many kW (1–1000). Use for a normal AC post ("normale AC-Säule", "Wallbox": 22) or, with min_power_kw, a band (50 and 149 = DC fast but not HPC). Never below min_power_kw. Omit unless the person set an upper limit.
min_power_kwNoOnly charging points of at least this many kW (1–1000). Use when the person names a number or asks for fast charging: 50 = DC fast (a bare "fast"/"schnell"/"Schnelllader"), 150 = HPC ("HPC", "ultra", "ultraschnell"), 300 = the fastest posts in Germany. Omit for "where can I charge" — 11 kW overnight is a valid answer to that question.
only_availableNoWhen true, return only sites with at least one point reported FREE right now. Default false. Use it when the person asks what is free at this moment. Note that only some operators publish live status: the result always says how many nearby sites were dropped because their status is unknown, so the filter never silently hides a charger that may well be free.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv2.4.4
    • addedInput schema / properties / max_power_kw
      Added value: +{
      +  "description": "Only charging points of at most this many kW (1–1000). Use for a normal AC post (\"normale AC-Säule\", \"Wallbox\": 22) or, with min_power_kw, a band (50 and 149 = DC fast but not HPC). Never below min_power_kw. Omit unless the person set an upper limit.",
      +  "maximum": 1000,
      +  "minimum": 1,
      +  "type": "number"
      +}
    • addedInput schema / properties / operator
      Added value: +{
      +  "description": "Only sites of this charge-point operator brand, as the person names it: \"IONITY\", \"EnBW\", \"Tesla\", \"Aral pulse\". Spellings of one brand match together (\"EnBW mobility+ AG\", \"ENBW\"); sites whose source names no operator are left out. Omit unless the person named an operator — a question about WHO operates the chargers sets none.",
      +  "maxLength": 80,
      +  "minLength": 1,
      +  "type": "string"
      +}
  2. Changed1 schema field changedv2.1.22
    • changedInput schema / properties / limit / description
      Previous value: -"How many lines to return, nearest first (1–10, default 5). Records of one place within 50 m that read alike are folded into one line that says how many units it holds; structuredContent.sites lists every record of the lines shown, so it can be longer than limit."New value: +"How many lines to return, nearest first (1–10, default 5). Places within 50 m that read alike are folded into one line that says how many units it holds; structuredContent.sites has one entry per place of the lines shown, with siteIds naming every record of that place, so it can be longer than limit."
  3. Changed2 schema fields changedv2.1.18
    • changedInput schema / properties / language / description
      Previous value: -"Set this on every call to the language the person is writing in: \"en\" if they wrote English, \"de\" if they wrote German. Do not leave it out because it has a default — the default is only the fallback when the language is genuinely unclear, and an English question answered in German is a wrong answer. Place names, station names and road numbers are never translated in either language; in English the German term is kept in parentheses so the person recognises it on signs and in local apps."New value: +"Set this on every call to the language the person is writing in: \"en\" if they wrote English, \"de\" if they wrote German. Do not leave it out: it defaults to German (\"de\"), which is only the fallback when the language is genuinely unclear, so an English question sent without it is answered in German — a wrong answer. Place names, station names and road numbers are never translated in either language; in English the German term is kept in parentheses so the person recognises it on signs and in local apps."
    • changedInput schema / properties / limit / description
      Previous value: -"How many charging sites to return, nearest first (1–10, default 5)."New value: +"How many lines to return, nearest first (1–10, default 5). Records of one place within 50 m that read alike are folded into one line that says how many units it holds; structuredContent.sites lists every record of the lines shown, so it can be longer than limit."
  4. Changed2 schema fields changedv1.8.29
    • changedInput schema / properties / min_power_kw / description
      Previous value: -"Only charging points of at least this many kW (1–1000). Use when the person asks for fast charging or names a number: 50 = DC fast, 150 = HPC, 300 = the fastest posts in Germany. Omit for \"where can I charge\" — 11 kW overnight is a valid answer to that question."New value: +"Only charging points of at least this many kW (1–1000). Use when the person names a number or asks for fast charging: 50 = DC fast (a bare \"fast\"/\"schnell\"/\"Schnelllader\"), 150 = HPC (\"HPC\", \"ultra\", \"ultraschnell\"), 300 = the fastest posts in Germany. Omit for \"where can I charge\" — 11 kW overnight is a valid answer to that question."
    • changedInput schema / properties / place / description
      Previous value: -"Where to look, as free text: a city (\"München\", \"Munich\"), a district or Kreis (\"Kreis Fulda\"), a Bundesland, a station or stop (\"Hamburg Hbf\"), a motorway (\"A7\"), or a street address with a house number (\"Hauptstraße 12, 36037 Fulda\"). Use this instead of coordinates whenever the person named a place. An address needs its town or postcode — a street and a number alone exist in many towns. Give either place OR lat+lon, never both."New value: +"Where to look, as free text: a city (\"München\", \"Munich\"), a district or Kreis (\"Kreis Fulda\"), a Bundesland, a station or stop (\"Hamburg Hbf\"), a motorway junction (\"AK Neufahrn\"), or a street address with a house number (\"Bahnhofstraße 12, 36037 Fulda\"). A motorway number alone (\"A7\") resolves to the road, which has no single point — name a town or junction on it instead. Use this instead of coordinates whenever the person named a place. An address needs its town or postcode — a street and a number alone exist in many towns. Give either place OR lat+lon, never both."
  5. Changed1 schema field changedv1.7.3
    • addedInput schema / properties / place / maxLength
      Added value: +120
  6. First observedv0.0.9

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive safety, and the description adds behavior the annotations cannot: live availability is missing for most operators and must be shown as unknown, never as free, and an attribution line must be displayed. These are genuine correctness constraints beyond the structured data.

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?

Front-loaded with what is returned, then filters, then usage routing and constraints in a compact block with zero filler. Slightly dense with parenthetical examples, but every sentence carries operational information.

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?

There is no output schema, and the description compensates by naming the result fields and the attribution requirement. With 11 parameters, all schema-documented, and a mutation-free read tool, an agent has everything needed to call it correctly and interpret the response.

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 each of the 11 parameters is already fully documented with units, ranges, defaults and examples. The description only summarizes the filter set ('plug, power (min/max kW), operator, free now') and repeats the radius/site caps, adding little the schema doesn't already say. 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?

States a specific verb and resource ('Returns EV charging sites near a place or coordinate') and immediately enumerates the returned fields (operator, plugs, max power, price per kWh, free-point counts). It explicitly names sibling tools it is not (find_cheapest_fuel, get_driving_rules), so an agent can distinguish it 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?

Gives concrete trigger phrases ('Wo kann ich laden?', 'CCS 150 kW near Leipzig') and explicit exclusions routing to find_cheapest_fuel and get_driving_rules. It also names the operating envelope (radius ≤ 25 km, ≤ 10 sites), leaving little to inference.

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