EV charging prices in Lithuania
Server Details
Live public EV charging prices, stations, networks and costs in Lithuania (open data, CC BY 4.0).
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 6 tools
Three tools converge on charging prices: charging_cost (session cost estimate), cheapest_charging (cheapest networks/stations) and operator_tariffs (one operator's price detail). The overlap is sharpened by the descriptions themselves — charging_cost with no `operator` returns cheapest/most expensive networks and the national typical price, which is essentially what cheapest_charging does by default, so an agent can plausibly pick either for 'what does charging cost in Lithuania'. electricity_price and price_changes are clearly distinct, and the detailed arg descriptions help, but boundaries are not clean.
All names are snake_case, two-word, and readable (charging_cost, cheapest_charging, electricity_price, find_stations, operator_tariffs, price_changes). There is no strict verb_noun convention — most are noun phrases and find_stations is the lone verb-led outlier — but the style is uniform enough to be predictable.
Six tools is well-scoped for a price-data server: cost estimation, cheapest options, station lookup, per-operator tariffs, wholesale electricity and price history. Each answers a distinct class of question and none feels redundant padding or missing.
The surface covers the lifecycle well: find stations, price them per operator, estimate a session cost, rank the cheapest, and track price changes, plus wholesale prices for home charging. Minor gaps remain — no lookup of a single station by id, no cross-operator/roaming comparison or subscription-vs-ad-hoc modeling beyond what operator_tariffs describes — but agents can work around these by combining tools.
Available Tools
6 toolscharging_costEV charging cost calculatorARead-onlyIdempotentInspect
Estimate what a charge costs in EUR at public chargers in Lithuania, per charging network, at each network's typical (median) ad hoc price incl. VAT. Give either kwh (energy to add) or car_battery_kwh with from_pct and to_pct. Without operator returns the cheapest networks, the most expensive one and the national typical price. Excludes per-minute or session fees, which extra_fees: true flags.
| Name | Required | Description | Default |
|---|---|---|---|
| kwh | No | Energy to add, kWh. Alternative to car_battery_kwh. | |
| to_pct | No | State of charge at the end, %. Default 80. | |
| from_pct | No | State of charge at the start, %. Default 20. | |
| operator | No | Charging network name or slug, to price one network only. | |
| power_class | Yes | Price class: "ac" = AC charging (usually up to 22 kW), "dc" = DC fast charging under 150 kW, "hpc" = high-power DC at 150 kW or more. | |
| car_battery_kwh | No | Usable battery capacity, kWh, e.g. 58 for a VW ID.3 Pro. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint and idempotentHint, so the safety profile is covered. The description adds genuinely useful behavioral context — that prices are median ad hoc rates incl. VAT and that per-minute/session fees are excluded — but the phantom `extra_fees` flag undercuts that clarity by promising a toggle the tool cannot accept.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense sentences, front-loaded with what is priced and in what currency, then input modes, then default output shape. Only the trailing extra-fees clause fails to earn its place, since it describes a capability the schema does not expose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 what the no-operator call returns (cheapest, most expensive, national typical price), which is the key completeness gap for a 6-parameter calculator. It stops short of describing the per-operator return shape, and the phantom `extra_fees` reference is a real defect for an agent trying to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 and the schema already documents each parameter's meaning and units. The description restates the kwh vs car_battery_kwh alternative and the percent-pair combination but adds no syntax or format detail beyond the schema, and it introduces a nonexistent `extra_fees` parameter that muddies the parameter model.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Estimate what a charge costs in EUR') with concrete scope: public chargers in Lithuania, per network, median ad hoc price incl. VAT. It is clear what the tool computes, though it never names the closest sibling (cheapest_charging) even though it also returns 'the cheapest networks', leaving an agent to infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It does give real input guidance: supply either `kwh` or `car_battery_kwh` with `from_pct`/`to_pct`, and omitting `operator` switches to a summary view. However, there is no when-to-use versus alternatives such as cheapest_charging or operator_tariffs, and the mention of an `extra_fees: true` flag references a parameter that does not exist in the schema, which actively misleads invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cheapest_chargingCheapest EV charging in LithuaniaARead-onlyInspect
The cheapest public EV charging in Lithuania for a price class (ac, dc or hpc), in EUR/kWh incl. VAT. Give city for the cheapest stations there, or route {from, to} for the cheapest stations along a driving route (within 2 km of it). With neither, returns the national ranking of charging networks by price plus the cheapest stations in the country. Each result has a source_url to cite.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City or town in Lithuania, e.g. "Kaunas" (or "Kaune"). | |
| limit | No | Stations to return. Default 5. | |
| route | No | A driving route inside Lithuania. Slower than `city`; rate limited. | |
| power_class | Yes | Price class: "ac" = AC charging (usually up to 22 kW), "dc" = DC fast charging under 150 kW, "hpc" = high-power DC at 150 kW or more. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true; the description adds real behavioral context — the 2 km route corridor, the fallback national ranking, VAT-inclusive pricing, and a `source_url` per result for citation. It omits rate-limit specifics in the description (they appear only in the schema's route note), which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, front-loaded with the resource and unit of measure, then the three input modes, then the return shape. No filler or restatement of the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 burden of describing returns and does so adequately (network price ranking, cheapest stations, source_url). Minor gaps remain around result ordering and the rate-limit behavior of route queries, which an agent might want before calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning by explaining the interaction between `city`, `route`, and the neither-given case — semantics the per-parameter schema text does not convey. It does not discuss `limit` behavior beyond what the schema documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and scope: cheapest public EV charging in Lithuania, priced in EUR/kWh incl. VAT, segmented by power class. This clearly differentiates it from siblings like find_stations (location lookup) and charging_cost (per-session cost).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly describes three invocation modes: `city` for local cheapest stations, `route` {from,to} for corridor results within 2 km, and neither for the national network ranking. It does not, however, say when to prefer this over siblings such as charging_cost or operator_tariffs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
electricity_priceNord Pool electricity price, LithuaniaARead-onlyInspect
Hourly WHOLESALE electricity prices for Lithuania (Nord Pool day-ahead, LT bidding zone) for today or tomorrow, in euro cents per kWh EXCLUDING VAT, by Europe/Vilnius hour, with the daily average and the cheapest and dearest hour. Useful for timing home charging on a dynamic tariff. Not a retail or public charging price. Tomorrow's prices are published around 14:00 Vilnius time. Ask resolution "15min" for the quarter-hour prices (96 a day since 2025-10-01), which show short dips the hourly average hides.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Which day. Default "today". | |
| resolution | No | "15min" adds the quarter-hour prices as [HH:MM, ct/kWh] pairs and the cheapest and dearest quarter-hour. Default "hour". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true, so the description carries the rest and does so well: units (euro cents per kWh), VAT exclusion, bidding zone, timezone bucketing, aggregate fields, and the data-availability window for tomorrow. The note that 15min yields 96 values a day since 2025-10-01 and exposes short dips is exactly the kind of behavioral detail annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with what the tool returns, then usage, then the exclusion, then the timing caveat, then the parameter hint. Dense but every sentence carries distinct information; nothing is padding or restatement of the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, yet the description fully describes the return shape (per-hour prices by Europe/Vilnius hour plus daily average and cheapest/dearest hour, and the 15min pair format). For a two-enum, read-only lookup tool, an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters are enums already documented, so baseline is 3. The description goes further by explaining why resolution="15min" matters (quarter-hour dips hidden by hourly averages) and by framing date as today-or-tomorrow with an implied default, adding decision value rather than just restating enum values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (hourly wholesale electricity prices for Lithuania, Nord Pool day-ahead LT zone) with units, VAT treatment, timezone, and the aggregates returned. It explicitly distinguishes itself from retail/public charging price tools, so an agent can separate it from charging_cost and operator_tariffs without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete use case (timing home charging on a dynamic tariff) and an explicit exclusion ("Not a retail or public charging price"), plus a timing caveat that tomorrow's data appears around 14:00 Vilnius time. It stops short of naming the sibling tools by name, leaving the routing to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_stationsFind EV charging stations in LithuaniaARead-onlyIdempotentInspect
Find public EV charging stations in Lithuania near a point (lat/lng) or in a city, with current prices in EUR/kWh incl. VAT, max power in kW, connector types and live free charge points. With near results are sorted by distance; otherwise cheapest first (in power_class when given). Each station has a source_url to cite. Coverage: Lithuania only.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City or town in Lithuania, e.g. "Vilnius", "Kaunas", "Klaipėda". Inflected forms like "Kaune" work too. | |
| near | No | Search around this point. Use instead of `city` when you know coordinates. | |
| limit | No | Maximum stations to return. Default 10. | |
| operator | No | Charging network name or slug, e.g. "Ignitis ON", "Eldrive". | |
| standard | No | Connector standard the station must have. | |
| radius_km | No | Search radius around `near`, km. Default 5. | |
| power_class | No | Price class: "ac" = AC charging (usually up to 22 kW), "dc" = DC fast charging under 150 kW, "hpc" = high-power DC at 150 kW or more. Only stations with a price in this class are returned. | |
| available_only | No | Only stations with at least one charge point reported free right now. | |
| max_price_eur_kwh | No | Maximum price, EUR per kWh incl. VAT (in `power_class` when given). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds useful behavior beyond that: sorting changes based on `near` (distance) versus city (cheapest first, respecting `power_class`), live free-charge-point freshness, inclusion of a `source_url` to cite, and Lithuania-only coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four compact sentences with zero filler. Purpose is front-loaded, then sorting behavior, then citation value, then coverage. Every sentence contributes an actionable fact for invocation or interpretation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter nested search tool with no output schema, the description does a good job covering purpose, sort behavior, returned data categories, and citation support. It stops short of explaining pagination or total-count behavior, but the schema supplies the `limit` bound, so the remaining gap is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description adds genuine meaning by explaining how the `near`/`city` choice alters result ordering and how `power_class` scopes that ordering. It also reinforces the geographic limit ('Coverage: Lithuania only') that constrains the `city` parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Find public EV charging stations in Lithuania' with two search modes (near point or city). It distinguishes itself from the price-focused siblings by focusing on station discovery and listing returned fields, so an agent can tell what it does 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by stating the two search modes ('near a point' or 'in a city') but gives no explicit when-to-use guidance versus sibling tools like cheapest_charging or operator_tariffs. Since find_stations also includes prices, an agent receives no rule for choosing between station discovery and price comparison tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
operator_tariffsCharging network tariffsARead-onlyIdempotentInspect
Current prices of one EV charging network (operator) in Lithuania: minimum and typical EUR/kWh incl. VAT for AC, DC (<150 kW) and HPC (≥150 kW), extra per-minute, parking and session fees, and subscription plans where the operator publishes them. Accepts a brand, legal name or slug, e.g. "Ignitis ON", "Eldrive", "ignitis-on".
| Name | Required | Description | Default |
|---|---|---|---|
| operator | Yes | Charging network brand, legal name or slug, e.g. "Ignitis ON", "Eldrive", "ignitis-on". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only and idempotent behavior, so the description's job is to add operational context – and it does: geographic scope (Lithuania), a coverage caveat ('where the operator publishes them'), and a breakdown of the fee categories returned. It stops short of saying how fresh the prices are or what happens when an operator has no published tariffs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with scope and price components, followed by accepted input forms. The fee enumeration is dense but each clause conveys a distinct returned field; nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 so concretely (dimensions, currency, VAT inclusion, fee types, subscription plans). Remaining minor gaps are price freshness and behavior on an unknown operator.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter already documents accepted forms (brand, legal name, slug) with examples, so the description's repetition of 'Ignitis ON', 'Eldrive', 'ignitis-on' adds little beyond the schema. Baseline 3 applies; no match-resolution or fallback behavior is described.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (current EV charging network tariffs for one operator in Lithuania) and enumerates what the record contains: min/typical EUR/kWh incl. VAT split by AC, DC (<150 kW) and HPC (≥150 kW), plus per-minute, parking, session fees and subscription plans. It does not explicitly contrast itself with siblings like charging_cost or cheapest_charging, but the operator-level tariff-card framing makes it distinguishable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: you call it when you want the published price card of a named network. There is no explicit when-not guidance and no routing to charging_cost or cheapest_charging, which an agent comparing cost tools would benefit from.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
price_changesEV charging price changesARead-onlyIdempotentInspect
Significant changes of public EV charging prices in Lithuania since a date, per charging network and price class (ac, dc, hpc), newest first: from/to EUR/kWh incl. VAT and the change in %. "median" means the network's median station price moved; "partial" means many stations were repriced but the median held. History goes back at most 365 days.
| Name | Required | Description | Default |
|---|---|---|---|
| operator | No | Charging network name or slug, to list one network only. | |
| since_date | Yes | Earliest date to include, YYYY-MM-DD (Europe/Vilnius). At most 365 days back. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds real value beyond that: newest-first ordering, the 365-day history ceiling, VAT-inclusive units, and the definitions of 'median' vs 'partial' repricing events. It still says nothing about volume of results, pagination, or how 'significant' is thresholded.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, followed by one clarifying sentence for the two event types; every clause carries information. It is dense and quote-heavy, which slightly slows parsing, but nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 burden of explaining returns and does so: field set, units, VAT inclusion, sort order, and the meaning of the two change categories. Combined with the history limit and the simple two-parameter schema, an agent has everything needed to call and interpret it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented, including the YYYY-MM-DD format and the 365-day limit. The description's mention of network and price class does not add syntax or constraints beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific resource (public EV charging price changes in Lithuania) with a temporal filter and enumerates the returned fields (from/to EUR/kWh incl. VAT, change in %), so the agent knows exactly what it retrieves. It does not explicitly name how it differs from operator_tariffs or electricity_price, leaving the level-vs-change distinction to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the 'since a date' framing and the 365-day cap, but there is no explicit statement of when to prefer this over operator_tariffs or charging_cost, and no when-not guidance. An agent can guess the context but is not routed.
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 tool update
- Changed
electricity_price1 field changed- added
Input schema / properties / resolutionAdded value: +{ + "description": "\"15min\" adds the quarter-hour prices as [HH:MM, ct/kWh] pairs and the cheapest and dearest quarter-hour. Default \"hour\".", + "enum": [ + "hour", + "15min" + ], + "type": "string" +}
6 tool updates
- First observed
charging_cost - First observed
cheapest_charging - First observed
electricity_price - First observed
find_stations - First observed
operator_tariffs - First observed
price_changes
Related MCP Connectors
EV charging sites, plugs, tariffs, live status and history from European national access points.
Find EV charging stations, live availability and prices across the Netherlands via NDW data.
Open Charge Map MCP — global EV charging station database (openchargemap.io).
EV chargers near a point and charging networks in AU, NZ, US, UK and Canada. Free, no key.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables MCP clients to find the cheapest fuel stations and nearby EV chargers in Portugal using official open data, including live charger status and prices with filters for location, fuel type, connector, power, and availability.5MIT
- AlicenseNot gradedqualityDmaintenanceRecommends EV charging stations with low failure risk by considering vehicle type, connector, remaining range, and real-time public data.MIT
- FlicenseNot gradedqualityDmaintenanceProvides real-time electricity prices, cheapest hours, and contract comparison for 40+ countries, enabling AI agents to make energy-aware decisions.5-
- AlicenseAqualityCmaintenanceLive and historical electricity prices, demand, generation mix and carbon intensity for 25 grid zones (US, Europe, GB, Australia). Hosted endpoint plus local stdio bridge; free sample mode, free API key, or x402 pay-per-call.6MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.