mcpField
T
TankoUp

TankoUp

Remote
github.comMaps & Travel0Updated 1w ago

About TankoUp

TankoUp is an MCP server for finding lower-cost fuel at about 12,000 stations across Spain, using government price data refreshed every four hours. Drivers can compare nearby and route-side stations as well as provincial prices.

Key features

  1. 01Find fuel near a town or location
  2. 02Search stations along a driving route
  3. 03Compare provincial prices and trends
  4. 04View station prices, hours, and address
  5. 05Rank by trip-adjusted fuel cost

Use cases

  1. 01Find lower-priced diesel near a town
  2. 02Choose a fuel stop on a long drive
  3. 03Compare a province's prices with Spain
  4. 04Check a station's current prices and hours

MCP support

The server provides four read-only fuel-search and station-information tools over Streamable HTTP at a public endpoint with no authentication. It obtains data through the TankoUp API, which is fed from Spanish government open data.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://mcp.tankoup.com/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Tools

Details

From the project README

TankoUp MCP server

Ask Claude, ChatGPT or any MCP client where to fill up for less in Spain.

This is the Model Context Protocol server for TankoUp, the app that finds the cheapest petrol station in Spain. It covers about 12,000 stations: mainland Spain, the Balearic and Canary Islands, Ceuta and Melilla. Prices come from the Spanish government's open data (MITECO) and refresh every 4 hours.

  • Endpoint: https://mcp.tankoup.com/mcp (Streamable HTTP)
  • Authentication: none. The data is public and the tools only read it.

"Where is the cheapest diesel near Lucena?" "I'm driving from Madrid to Valencia tomorrow. Where should I fill up with 95?" "How much is petrol in Bizkaia compared with the rest of Spain?"

Tools

ToolWhat it answers
find_cheapest_fuel_nearbyThe best stations near a town, city or point, for one fuel
find_cheapest_fuel_on_routeThe best stations along a driving route, up to 1,200 km
get_province_fuel_pricesAverage and lowest prices in a province, its 30-day trend, how it compares with Spain, and its cheapest stations
get_station_detailsEvery fuel's price at one station, its opening hours, address and links

Fuels: diesel (Gasóleo A), diesel_premium, sp95 (Gasolina 95 E5), sp95_e10, sp98 and lpg (GLP).

Stations are ranked by total cost, not by pump price alone: the price of a 40 L fill plus the fuel burned driving there and back (or leaving the route and rejoining it). A station 2 cents cheaper but 15 km away usually loses.

Places are Spanish towns and cities by name ("Lucena, Córdoba", "San Sebastián", "Palma"), resolved against every municipality with a fuel station. For a street, a landmark or the user's position, the client passes latitude and longitude.

Every answer is short and structured: a few stations, each with its price, distance, whether it is open now, a link to open it in TankoUp and a Google Maps directions link. Each answer also carries the TankoUp app's App Store and Google Play links.

Connect

Claude (claude.ai and Desktop; it then works on mobile too): Customize → Connectors → Add → Add custom connector, and paste https://mcp.tankoup.com/mcp.

ChatGPT (any plan, Free included): Plugins → Add → Add custom MCP server, paste the URL above and pick "No authentication". Then mention @TankoUp in a chat.

Claude Code:

claude mcp add --transport http tankoup https://mcp.tankoup.com/mcp

Any other client that speaks Streamable HTTP: point it at https://mcp.tankoup.com/mcp.

Claude answering with the TankoUp connector

How it works

Claude / ChatGPT ──MCP──▶ tankoup-mcp (Cloud Run) ──HTTPS──▶ TankoUp API ──▶ Postgres
                                                     (the API the app and website use,
                                                      fed from MITECO every 4 hours)
  • Python with the official MCP Python SDK (v2), served over Streamable HTTP in stateless mode with JSON responses, so any instance can answer any request.
  • The server owns no data. Every price comes from the same API that serves the TankoUp apps and website; it never touches the database or the government feed.
  • Place names resolve offline against a gazetteer of every Spanish municipality with a fuel station (src/tankoup_mcp/data/places.json, built from the API by scripts/build_places.py). No geocoding service, no third party.
  • Answers are cached in memory for 10 minutes.
  • Limits: 120 requests a minute per client IP and 600 a minute per instance, at most one instance, and 100 route searches a day.
  • Runs on Google Cloud Run in europe-west1 (Belgium), scaling to zero when idle.

Privacy

The server keeps no record of what you ask. It logs one line per tool call with the tool's name, the protocol version and how long it took; never the arguments, places or coordinates. Like any web service it sees the caller's IP address, which for Claude and ChatGPT is the platform's, not yours; Google Cloud's request logs keep it for 30 days. Links into tankoup.com and the app stores carry utm_source=mcp, so TankoUp's own analytics can count visits and installs that came through an assistant; nothing about the conversation goes with them. Nothing is shared with anyone. TankoUp's privacy policy: https://tankoup.com/en/legal/privacy-policy.

Run it yourself

Requires Python 3.12+ and uv.

uv sync
TANKOUP_API_KEY=... uv run uvicorn tankoup_mcp.app:app --port 8000

Then open MCP Inspector against http://localhost:8000/mcp:

npx @modelcontextprotocol/inspector
VariableDefault
TANKOUP_API_KEY—Key for the TankoUp API
TANKOUP_API_URLhttps://api.tankoup.com
CACHE_TTL_S600How long answers are cached
RATE_LIMIT_PER_IP120Requests to /mcp per client IP per minute
RATE_LIMIT_GLOBAL600Requests to /mcp per instance per minute
ROUTE_DAILY_LIMIT100Route searches per instance per day
ALLOWED_HOSTSemptyHost allowlist; empty turns DNS-rebinding protection off, which is right behind Cloud Run
Tests
uv run pytest

Every tool is tested against a mocked API with real response shapes, plus the HTTP layer: a legacy client's handshake and tool call, rate limits, CORS and health.

Against a running server, scripts/smoke.py calls every tool once:

uv run python scripts/smoke.py https://mcp.tankoup.com/mcp
Deploy
scripts/setup-gcp.sh   # once: the API key in Secret Manager and a service account
scripts/deploy.sh      # build in Cloud Build and deploy to Cloud Run

License

MIT. Fuel price data: Ministerio para la Transición Ecológica y el Reto Demográfico (MITECO), Spain, open data.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.