Skip to main content
Glama

gbfs-mcp 🚲

General Bikeshare Feed Specification (GBFS v3.0 / v2.3) Model Context Protocol (MCP) server & interactive CLI.

Connect AI assistants (Antigravity, Claude Desktop, Cursor, Claude Code) and developers to real-time bikeshare and micromobility availability worldwide across 1,000+ public systems (Citi Bike, Bay Wheels, Vélib', Santander Cycles, Biki, Lime, and more).


🌟 Features

  • 🌐 1,000+ Worldwide Systems: Built-in integration with MobilityData’s official systems.csv catalog.

  • ⚡ Dynamic Auto-Discovery: Seamlessly parses gbfs.json for both GBFS v3.0 (flat feed manifests) and GBFS v2.x (multi-language feed manifests).

  • 📍 Geographic Proximity Sorting: Rank stations and free-floating e-bikes/scooters by distance (lat, lon, radius_meters).

  • 🔋 Fleet & Battery Telemetry: Real-time visibility into vehicle types, electric vs. mechanical bikes, battery ranges, and dock availability.

  • 🤖 Built-in Agent Skill (SKILL.md): Complete agent guide included for querying and reasoning about shared micromobility feeds.


Related MCP server: mcp-citybikes

🛠️ MCP Tools

Tool

Parameters

Description

gbfs_list_systems

query?, limit?

Search 1,000+ public bikeshare systems by city, country, or system ID.

gbfs_get_system

system_id_or_url

Resolves gbfs.json manifest, operator info, and available endpoints.

gbfs_get_stations

system_id_or_url, latitude?, longitude?, radius_meters?, limit?

Fetches live station capacity, available bikes, e-bikes, and empty docks with proximity ranking.

gbfs_get_free_bikes

system_id_or_url, latitude?, longitude?, radius_meters?, limit?

Fetches dockless/floating bikes and scooters with battery range.

gbfs_get_alerts

system_id_or_url

Active operational notices, weather closures, or maintenance.

gbfs_get_vehicle_types

system_id_or_url

Vehicle specifications (form factors, propulsion, battery range).


🚀 Quick Start (CLI)

cd E:\development\gbfs-mcp
npm install
npm run build

# Search systems
node dist/index.js systems Minneapolis

# Get live station availability
node dist/index.js stations bay_wheels --limit 10

⚙️ MCP Configuration

Add to your mcp_config.json:

{
  "mcpServers": {
    "gbfs-mcp": {
      "command": "node",
      "args": ["E:/development/gbfs-mcp/dist/index.js", "serve"]
    }
  }
}

📄 License

MIT © Amin

Available Tools

6 tools
gbfs_get_alertsB

Fetch active system alerts, disruption notices, and weather closures from system_alerts.json.

Inputs: system_id_or_url (required).

gbfs_get_free_bikesB

Fetch real-time dockless/free-floating bikes and scooters (free_bike_status.json) with battery levels and coordinates.

Inputs: system_id_or_url (required), limit, latitude, longitude, +1 more.

gbfs_get_stationsB

Fetch real-time station status (available bikes, e-bikes, and docks) for a bikeshare system. Optionally sort and filter by geographic proximity.

Inputs: system_id_or_url (required), limit, latitude, longitude, +1 more.

gbfs_get_systemA

Fetch system metadata, operator information, and resolved feed endpoints from gbfs.json for a given system_id or auto-discovery URL.

Inputs: system_id_or_url (required).

gbfs_get_vehicle_typesB

Fetch vehicle fleet specifications (form factors, mechanical vs electric assist, maximum battery range) from vehicle_types.json.

Inputs: system_id_or_url (required).

gbfs_list_systemsA

Search the MobilityData systems.csv catalog of 1,000+ public bikeshare and micromobility systems worldwide by city name, country, operator, or system_id.

Inputs: limit, query.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 6 tools

    Disambiguation5/5

    Each tool targets a distinct GBFS resource and action: system discovery, system metadata, stations, free bikes, alerts, and vehicle types. There is no meaningful overlap that would cause an agent to select the wrong tool.

    Naming Consistency5/5

    All tools follow a consistent gbfs_<verb>_<noun> pattern, using list_ for catalog discovery and get_ for fetching specific data. The only minor irregularity is singular 'system' vs plural others, but it is intuitive as it returns a single system.

    Tool Count5/5

    With 6 tools, the server is well-scoped for a GBFS domain, covering the most commonly needed data feeds without bloat. Each tool serves a distinct, high-value purpose.

    Completeness4/5

    Core GBFS feeds such as station status, free bikes, alerts, and vehicle types are covered, and system metadata provides feed endpoints for raw access. The absence of a dedicated station_information tool for static station names/coordinates is a minor gap that agents can work around by consulting feed endpoints.

    Maintenance

    ActivitySlowing
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers