Pumperly Mcp

by GeiserX

287 downloads
Not rated
GitHub

Description

<h1 align="center">Pumperly-MCP</h1> <p align="center"> <a href="https://www.npmjs.com/package/pumperly-mcp"><img src="https://img.shields.io/npm/v/pumperly-mcp?style=flat-square&logo=npm" alt="npm"/></a> <img…

About

<h1 align="center">Pumperly-MCP</h1> <p align="center"> <a href="https://www.npmjs.com/package/pumperly-mcp"><img src="https://img.shields.io/npm/v/pumperly-mcp?style=flat-square&logo=npm" alt="npm"/></a> <img src="https://img.shields.io/badge/Go-1.24-blue?style=flat-square&logo=go&logoColor=white" alt="Go"/> <a…

Details

Author
GeiserX
Downloads
287
Categories
Other, API

- Provides read‑only resources (pumperly://config, pumperly://stats, pumperly://exchange‑rates)
- Offers tools: find_nearest_stations, get_stations_in_area, calculate_route, find_route_stations, geocode
- Exposes a single JSON‑RPC endpoint at /mcp
- Supports both HTTP and stdio transports
- Fully tested with the MCP Inspector

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Pumperly Mcp
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Install via Docker Compose (drumsergio/pumperly-mcp:latest), via npm (npx pumperly-mcp or global install), or by building from source with Go. Configure the Pumperly instance URL with the PUMPERLY_URL environment variable, choose transport (HTTP on port 8080 by default or stdio), and then use MCP tools to interact.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "pumperly mcp": {
            "pumperly": {
                "command": "npx",
                "args": [
                    "-y",
                    "pumperly-mcp"
                ],
                "env": {
                    "PUMPERLY_URL": "https://pumperly.com"
                }
            }
        }
    }
}

McpServers

{
    "pumperly": {
        "command": "npx",
        "args": [
            "-y",
            "pumperly-mcp"
        ],
        "env": {
            "PUMPERLY_URL": "https://pumperly.com"
        }
    }
}

<h1 align="center">Pumperly-MCP</h1>

<p align="center">
<a href="https://www.npmjs.com/package/pumperly-mcp">npm</a>
Go
<a href="https://hub.docker.com/r/drumsergio/pumperly-mcp">Docker Pulls</a>
<a href="https://github.com/GeiserX/pumperly-mcp/stargazers">GitHub Stars</a>
<a href="https://github.com/GeiserX/pumperly-mcp/blob/main/LICENSE">License</a>
</p>
<p align="center">
<a href="https://registry.modelcontextprotocol.io">Official MCP Registry</a>
<a href="https://glama.ai/mcp/servers/GeiserX/pumperly-mcp">Glama MCP Server</a>
<a href="https://mcpservers.org/servers/geiserx/pumperly-mcp">MCPServers.org</a>
<a href="https://mcp.so/server/pumperly-mcp">mcp.so</a>
<a href="https://github.com/toolsdk-ai/toolsdk-mcp-registry">ToolSDK Registry</a>
</p>

<p align="center"><strong>A tiny bridge that exposes any Pumperly instance as an MCP server, enabling LLMs to query real-time fuel prices, find stations, plan routes, and geocode locations.</strong></p>

---

What you get

| Type | What for | MCP URI / Tool id |
|---------------|----------------------------------------------------------------|----------------------------------|
| Resources | Browse configuration, statistics, and exchange rates read-only | pumperly://config<br>pumperly://stats<br>pumperly://exchange-rates |
| Tools | Find stations, calculate routes, and geocode locations | find_nearest_stations<br>get_stations_in_area<br>calculate_route<br>find_route_stations<br>geocode |

Everything is exposed over a single JSON-RPC endpoint (/mcp).
LLMs / Agents can: initialize -> readResource -> listTools -> callTool ... and so on.

---

Quick-start (Docker Compose)

services:
  pumperly-mcp:
    image: drumsergio/pumperly-mcp:latest
    ports:
      - "127.0.0.1:8080:8080"
    environment:
      - PUMPERLY_URL=https://pumperly.com

> Security note: The HTTP transport listens on 127.0.0.1:8080 by default. If you need to expose it on a network, place it behind a reverse proxy with authentication.

Install via npm (stdio transport)

npx pumperly-mcp

Or install globally:

npm install -g pumperly-mcp
pumperly-mcp

This downloads the pre-built Go binary from GitHub Releases for your platform and runs it with stdio transport. Requires at least one published release.

Local build

git clone https://github.com/GeiserX/pumperly-mcp
cd pumperly-mcp

(optional) create .env from the sample

cp .env.example .env && $EDITOR .env

go run ./cmd/server

Configuration

| Variable | Default | Description |
|----------------|--------------------------|--------------------------------------------------|
| PUMPERLY_URL | https://pumperly.com | Pumperly instance URL (without trailing /) |
| LISTEN_ADDR | 127.0.0.1:8080 | HTTP listen address (Docker sets 0.0.0.0:8080) |
| TRANSPORT | _(empty = HTTP)_ | Set to stdio for stdio transport |

Put them in a .env file (from .env.example) or set them in the environment.

Testing

Tested with Inspector and it is currently fully working. Before making a PR, make sure this MCP server behaves well via this medium.

Example configuration for client LLMs

{
  "schema_version": "v1",
  "name_for_human": "Pumperly-MCP",
  "name_for_model": "pumperly_mcp",
  "description_for_human": "Query real-time fuel prices, find stations, plan routes, and geocode locations via Pumperly.",
  "description_for_model": "Interact with a Pumperly instance that aggregates fuel station data. First call initialize, then reuse the returned session id in header \"Mcp-Session-Id\" for every other call. Use readResource to fetch URIs that begin with pumperly://. Use listTools to discover available actions and callTool to execute them.",
  "auth": { "type": "none" },
  "api": {
    "type": "jsonrpc-mcp",
    "url":  "http://localhost:8080/mcp",
    "init_method": "initialize",
    "session_header": "Mcp-Session-Id"
  },
  "logo_url": "https://pumperly.com/logo.png",
  "contact_email": "acsdesk@protonmail.com",
  "legal_info_url": "https://github.com/GeiserX/pumperly-mcp/blob/main/LICENSE"
}

Credits

Pumperly -- real-time fuel price aggregation

MCP-GO -- modern MCP implementation

GoReleaser -- painless multi-arch releases

Maintainers

@GeiserX.

Contributing

Feel free to dive in! Open an issue or submit PRs.

Pumperly-MCP follows the Contributor Covenant Code of Conduct.

Other MCP Servers by GeiserX

- cashpilot-mcp — Passive income monitoring
- duplicacy-mcp — Backup health monitoring
- genieacs-mcp — TR-069 device management
- lynxprompt-mcp — AI configuration blueprints
- telegram-archive-mcp — Telegram message archive

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.