Pumperly
OCI · DRUMSERGIO/PUMPERLY-MCP · 2 COMPONENTS
Cheapest fuel and EV charging near a place or along a drive, in about 40 countries
Available components
Last scanned (1 hour ago)
Scores higher than 60% of OCI servers
Category Maps and Location
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security0
- No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
- Known CVEs could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.Unverified
- Install-script risk not yet assessed.Unverified
- Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.Unverified
Provenance & Transparency35
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: no license is declared. See how to fix → Fail
- Actively maintained (last published 7 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability77
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2169 tokens (~216/item across 10 items; 6 tools + 4 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management30
- Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 6 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Unverified: 1 category
A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 2 Nov 26 +1
- Provenance: unverified → fail ▼ security
- 1 Nov 26 0
- Provenance: fail → unverified ▼ security
- 31 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.
- 29 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 28 Oct 26 0
- Tool safety: pass → unverified ▼ security
- Stability: 0.00 → unverified ▼ security
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: 100 → unverified ▼ functional
- Capabilities: pass → unverified ▼ functional
- Package version: v0.2.0 → v0.2.1 functional
- 27 Oct 26 +32
- Provenance: unverified → fail ▼ security
- Injection markers: unverified → pass ▲ security
- First check of Judged manipulation: pass security
- Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
- Stability: unverified → 0.00 ▲ functional
- Schema quality: unverified → 100 ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- First check of Tool coverage: 100 functional
- First check of Destructive annotations: pass functional
- First check of Schema quality: excellent functional
- First check of Schema quality: fail functional
- First check of Tool coverage: 100 functional
- First check of Schema quality: fail functional
- Package version: v0.1.2 → v0.2.0 functional
- 26 Oct 26 0
- Provenance: fail → unverified ▼ security
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed oci/drumsergio/pumperly-mcp@v0.2.1
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | oci |
| Reason | No attestation published |
Background: How many MCP packages publish verified provenance →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
calculate_route Calculate a driving route ~293
Calculate a driving route and return its distance (km), driving time (minutes) and bounding box, with up to 2 alternatives when there are no waypoints. Ends can be place names, "lat,lon" text or coordinates. To find fuel along the way, call cheapest_fuel_on_route instead: it routes and searches in one call. Set include_geometry only to pass the line to find_route_stations; it can be up to 2000 points.
| Name | Type | Req | Description |
|---|---|---|---|
| dest_lat | number | – | End latitude, decimal degrees. |
| dest_lon | number | – | End longitude, decimal degrees. |
| destination | string | – | End as a place name ("Valencia") or "lat,lon" text. Or give dest_lat and dest_lon. |
| include_geometry | boolean | – | Include each route's GeoJSON LineString ([lon, lat] points). Default false. |
| origin | string | – | Start as a place name ("Madrid") or "lat,lon" text ("40.4168,-3.7038"). Or give origin_lat and origin_lon. |
| origin_lat | number | – | Start latitude, decimal degrees. |
| origin_lon | number | – | Start longitude, decimal degrees. |
| waypoints | array | – | Optional stops in order, as [lon, lat] pairs (longitude first), at most 5. Example: [[-1.13, 40.34]]. |
| Name | Type | Req | Description |
|---|---|---|---|
| destination | object | yes | – |
| origin | object | yes | – |
| routes | array | yes | – |
No examples provided.
cheapest_fuel_on_route Cheapest fuel along a trip ~399
Plan a drive and find where to fill up: routes from origin to destination, then lists the stations within corridor_km of the route, cheapest first, with each one's km from the start. Ends can be place names ("Madrid", "Valencia"), "lat,lon" text or coordinates. Prices are per litre (per kg for CNG, LNG and H2, per kWh for EV) in local currency; cross-border trips mix currencies, see pumperly://exchange-rates. Uses two of the API's 30 route searches per minute.
| Name | Type | Req | Description |
|---|---|---|---|
| corridor_km | number | – | How far off the route a station may be, in km, 0.5 to 50. Default 2 (a short detour). |
| dest_lat | number | – | End latitude, decimal degrees. |
| dest_lon | number | – | End longitude, decimal degrees. |
| destination | string | – | End as a place name ("Valencia") or "lat,lon" text. Or give dest_lat and dest_lon. |
| fuel | string | yes | Fuel code. Common ones: B7 = diesel, E5 = petrol 95, E10 = petrol 95 E10, E5_98 = petrol 98, LPG = autogas, EV = charging. The pumperly://fuel-types resource lists all 16 with labels and price units. |
| limit | integer | – | How many stations to return, 1 to 50. Default 10. |
| origin | string | – | Start as a place name ("Madrid") or "lat,lon" text ("40.4168,-3.7038"). Or give origin_lat and origin_lon. |
| origin_lat | number | – | Start latitude, decimal degrees. |
| origin_lon | number | – | Start longitude, decimal degrees. |
| sort_by | string | – | price (cheapest first, default) or route (in driving order). |
| Name | Type | Req | Description |
|---|---|---|---|
| destination | object | yes | – |
| distance_km | number | yes | – |
| duration_min | number | yes | – |
| origin | object | yes | – |
| stations | object | yes | – |
No examples provided.
find_nearest_stations Find nearest fuel or EV stations ~359
Find the fuel stations or EV chargers closest to a point, with current prices. Give the point as lat and lon, or as a place name in near (geocoded for you). sort_by=distance (default) returns the nearest; sort_by=price returns the cheapest among the 50 nearest within the radius. Prices are per litre (per kg for CNG, LNG and H2, per kWh for EV) in the station's local currency. Covers about 40 countries, mostly in Europe; pumperly://stats lists them.
| Name | Type | Req | Description |
|---|---|---|---|
| fuel | string | yes | Fuel code. Common ones: B7 = diesel, E5 = petrol 95, E10 = petrol 95 E10, E5_98 = petrol 98, LPG = autogas, EV = charging. The pumperly://fuel-types resource lists all 16 with labels and price units. |
| lat | number | – | Latitude of the search point in decimal degrees, e.g. 40.4168. Give with lon, or use near instead. |
| limit | integer | – | How many stations to return, 1 to 50. Default 5. |
| lon | number | – | Longitude of the search point in decimal degrees, e.g. -3.7038. Give with lat, or use near instead. |
| near | string | – | Place name or address to search around, e.g. "Atocha, Madrid". Used when lat and lon are not given. |
| radius_km | number | – | Search radius in km, 0.5 to 100. Default 10. |
| sort_by | string | – | distance (nearest first, default) or price (cheapest first). |
| Name | Type | Req | Description |
|---|---|---|---|
| center | null|object | – | – |
| found | integer | yes | – |
| fuel | string | yes | – |
| prices | null|array | yes | – |
| returned | integer | yes | – |
| sort_by | string | yes | – |
| stations | null|array | yes | – |
| unit | string | yes | What prices are per: L, kg or kWh |
No examples provided.
find_route_stations Fuel or EV stations along a route line ~296
List the fuel stations or EV chargers within corridor_km of a route line you already have, cheapest first by default, with each station's km along the route. Most callers want cheapest_fuel_on_route, which takes place names and does the routing too. Prices are per litre (per kg for CNG, LNG and H2, per kWh for EV) in local currency. The API allows 30 route searches per minute.
| Name | Type | Req | Description |
|---|---|---|---|
| corridor_km | number | – | How far from the route a station may be, in km, 0.5 to 50. Default 5. |
| fuel | string | yes | Fuel code. Common ones: B7 = diesel, E5 = petrol 95, E10 = petrol 95 E10, E5_98 = petrol 98, LPG = autogas, EV = charging. The pumperly://fuel-types resource lists all 16 with labels and price units. |
| geometry | object | yes | GeoJSON LineString of the route: {"type":"LineString","coordinates":[[lon,lat],...]}, longitude first, 2 to 2000 points. calculate_route returns one with include_geometry=true. |
| limit | integer | – | How many stations to return, 1 to 50. Default 10. |
| sort_by | string | – | price (cheapest first, default) or route (in driving order from the start). |
| Name | Type | Req | Description |
|---|---|---|---|
| center | null|object | – | – |
| found | integer | yes | – |
| fuel | string | yes | – |
| prices | null|array | yes | – |
| returned | integer | yes | – |
| sort_by | string | yes | – |
| stations | null|array | yes | – |
| unit | string | yes | What prices are per: L, kg or kWh |
No examples provided.
geocode Geocode a place name ~150
Turn a place name or address into coordinates (lat, lon), best match first. The station and route tools already accept place names, so call this only to pick between ambiguous places or to get coordinates for a bbox. Give lat and lon to prefer results near a point.
| Name | Type | Req | Description |
|---|---|---|---|
| lat | number | – | Optional latitude to prefer nearby results. Give with lon. |
| limit | integer | – | How many matches to return, 1 to 10. Default 5. |
| lon | number | – | Optional longitude to prefer nearby results. Give with lat. |
| query | string | yes | City, address or point of interest, e.g. "Puerta del Sol, Madrid". At most 200 characters. |
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | – |
| results | null|array | yes | – |
No examples provided.
get_stations_in_area Fuel or EV stations in an area ~284
List the fuel stations or EV chargers inside a bounding box with current prices, cheapest first by default, plus the min, median and max price per currency. Use it for "cheapest diesel in this town". For a point and radius use find_nearest_stations; along a trip use cheapest_fuel_on_route. Prices are per litre (per kg for CNG, LNG and H2, per kWh for EV) in local currency. Keep the box city-sized: a whole-country box can exceed the 8 MB answer cap.
| Name | Type | Req | Description |
|---|---|---|---|
| bbox | string | yes | Bounding box as "minLon,minLat,maxLon,maxLat" in decimal degrees, longitude first. Example for central Madrid: "-3.75,40.38,-3.65,40.45". |
| fuel | string | yes | Fuel code. Common ones: B7 = diesel, E5 = petrol 95, E10 = petrol 95 E10, E5_98 = petrol 98, LPG = autogas, EV = charging. The pumperly://fuel-types resource lists all 16 with labels and price units. |
| limit | integer | – | How many stations to return, 1 to 100. Default 20. |
| sort_by | string | – | price (cheapest first, default) or distance (from the centre of the box). |
| Name | Type | Req | Description |
|---|---|---|---|
| center | null|object | – | – |
| found | integer | yes | – |
| fuel | string | yes | – |
| prices | null|array | yes | – |
| returned | integer | yes | – |
| sort_by | string | yes | – |
| stations | null|array | yes | – |
| unit | string | yes | What prices are per: L, kg or kWh |
No examples provided.
How do I install the Pumperly MCP server?
Pumperly runs locally as a container image, launched with docker run --rm -i -e PUMPERLY_URL drumsergio/pumperly-mcp:v0.2.1. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.
oci · drumsergio/pumperly-mcp
claude mcp add geiserx-pumperly-mcp -- docker run --rm -i -e PUMPERLY_URL drumsergio/pumperly-mcp:v0.2.1
This image reads PUMPERLY_URL. Set it in your client's env block for this server; docker run -e passes it through to the container.
What is the Pumperly MCP server?
Pumperly is an MCP server listed in the public MCP registry as io.github.GeiserX/pumperly-mcp. Cheapest fuel and EV charging near a place or along a drive, in about 40 countries. This page covers its container image (drumsergio/pumperly-mcp).
Is the Pumperly MCP server safe to use?
Pumperly scores 43 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Pumperly MCP server expose?
Pumperly exposes 6 tools: calculate_route, cheapest_fuel_on_route, find_nearest_stations, find_route_stations, geocode, get_stations_in_area. Their descriptions and schemas cost roughly 1,781 tokens of context every time the server is loaded.
Is the Pumperly MCP server still maintained?
Pumperly is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.