Fire in da houseTop Tip:Paying $100+ per month for Perplexity, MidJourney, Runway, ChatGPT and other tools is crazy - get all your AI tools in one site starting at $15 per month with Galaxy AI Fire in da houseCheck it out free

mcp-dndzgz

MCP.Pizza Chef: danilat

The mcp-dndzgz is an MCP server providing real-time information on Zaragoza's public transport, including buses, trams, and bizi bike services. It integrates with the DNDzgz API to deliver live tram arrival estimations, station details, and transit updates, enabling seamless access to transit data within MCP-enabled applications.

Use This MCP server To

Provide real-time tram arrival times for Zaragoza transit apps Display Zaragoza bus and tram station information dynamically Integrate Zaragoza transit data into AI copilots or chatbots Enable route planning with live transit updates for Zaragoza Combine bike sharing (bizi) availability with public transit info Support location-based transit queries using Google Maps API Feed live Zaragoza transit context into LLM-powered workflows

README

DNDzgz MCP Server

This is an MCP (Model Context Protocol) server that provides information about the Zaragoza tram system, including real-time tram arrival estimations and station information using the DNDzgz API.

Installation

  1. Clone the repository:
git clone https://github.com/danilat/mcp-dndzgz.git
cd mcp-dndzgz
  1. Install dependencies:
npm install

Running the Application

Add a the environment variable with a valid google maps api key

GOOGLE_MAPS_API_KEY=your-api-key

To start the server:

npm start

Or configure in your MCP client, for example:

{
    "mcpServers": {
        "dndzgz": {
            "command": "node",
            "args": [
                "/Users/danilat/workspace/mcp-dndzgz/index.js"
            ],
            "env": {
                "GOOGLE_MAPS_API_KEY": "your-api-key"
            }
        }
    }
}

The server will start and connect to the MCP transport layer.

Available Tools

The server provides the following tools:

  1. zaragoza-tram-estimations: Get real-time arrival estimations for a specific tram station

    • Parameters:
      • station (number): ID of the tram station
    • Returns: JSON with estimated arrival times for both directions
  2. zaragoza-tram-stations: Get a list of all tram stations in Zaragoza

    • Parameters:
      • latitude (number): Latitude to sort stations by proximity
      • longitude (number): Longitude to sort stations by proximity
    • Returns: JSON with station information including location, name, and ID
  3. zaragoza-bus-stops: Get all bus stops in Zaragoza

    • Parameters:
      • latitude (number): Latitude to sort stops by proximity
      • longitude (number): Longitude to sort stops by proximity
    • Returns: JSON with bus stop locations, names, IDs, and lines
  4. zaragoza-bus-estimations: Get real-time arrival estimations for a specific bus stop

    • Parameters:
      • stop (number): ID of the bus stop
    • Returns: JSON with estimated arrival times for each line serving that stop
  5. zaragoza-bizi-stations: Get all Bizi stations in Zaragoza (public bicycle rental service)

    • Parameters:
      • latitude (number): Latitude to sort stations by proximity
      • longitude (number): Longitude to sort stations by proximity
    • Returns: JSON with Bizi station locations, names, and IDs
  6. zaragoza-bizi-estimations: Get real-time availability of bikes and free slots in a Bizi station

    • Parameters:
      • station (number): ID of the Bizi station
    • Returns: JSON with bikes and parking slot availability
  7. google-maps-link: Get a Google Maps link for a specific location

    • Parameters:
      • latitude (number): Latitude of the location
      • longitude (number): Longitude of the location
    • Returns: Google Maps URL showing the specified location
  8. geolocation-from-address: Get the geolocation (latitude and longitude) from an address and the formatted address that was found

    • Parameters:
      • address (string): The address to geolocate (e.g., "Plaza de San Francisco, Zaragoza, Spain")
    • Returns: JSON with latitude, longitude, confidence level, and formatted address

Dependencies

  • @modelcontextprotocol/sdk: ^1.9.0

Example

There is an screenshot with example using Claude Desktop

Screenshot of an example using Claude Desktop, asking in spanish to get the tram estimations for Romareda station

mcp-dndzgz FAQ

How do I install the mcp-dndzgz server?
Clone the GitHub repo, install dependencies with npm, and set your Google Maps API key in the environment before starting the server.
What environment variables are required to run this server?
You must provide a valid GOOGLE_MAPS_API_KEY environment variable for map-related features.
Can this server provide real-time updates for Zaragoza's tram system?
Yes, it uses the DNDzgz API to deliver real-time tram arrival estimations and station info.
How do I integrate this MCP server with my MCP client?
Configure your MCP client to start the server with the appropriate command, arguments, and environment variables as shown in the documentation.
Does this server support other Zaragoza transit modes besides trams?
Yes, it also provides information on Zaragoza buses and the bizi bike-sharing service.
Is the server compatible with multiple LLM providers?
Yes, it is designed to work with any MCP-compliant client and supports models like OpenAI, Claude, and Gemini.
What programming language is the server implemented in?
The server is implemented in Node.js and runs via npm scripts.
Can I customize or extend the server functionality?
Yes, since the source code is open on GitHub, you can modify or extend it to fit your needs.