SmartCityMCP

SmartCityMCP

3.1

If you are the rightful owner of SmartCityMCP and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

MCP server providing real-time traffic, bike-sharing, air quality, and weather data from Valencia, Spain for Claude and other LLMs.

Valencia Smart City MCP Server

MCP server providing real-time traffic, bike-sharing, air quality and weather data from Valencia, Spain for Claude and other LLMs.

Features

  • Real-time traffic conditions across Valencia
  • Valenbisi bike station availability
  • Air quality monitoring data from city stations
  • Weather data from Open-Meteo API (current, forecast, and historical)
  • Traffic congestion analysis
  • Search capabilities for specific roads, bike stations, or air quality information

Demo

Check out a live demos of this MCP in action with Claude Desktop :

Air quality: Claude MCP Demo Chat Air quality

Bike-sharing with Valenbisi : Claude MCP Demo Chat Valenbisi

Traffic : Claude MCP Demo Chat Traffic

Weather : Claude MCP Demo Chat Weather

This shared conversation demonstrates how Claude can access and analyze real-time Valencia urban data through the MCP.

Requirements

  • Python 3.10+
  • Claude Desktop or other MCP-compatible client
  • Internet connection

Installation

# Clone the repository
git clone https://github.com/sosanzma/SmartCityMCP.git
cd SmartCityMCP

# Install dependencies
pip install -r requirements.txt

Tools

The server exposes these tools:

Traffic Tools

  • get_traffic_status

    • Get current traffic status for road segments
    • Input: state_filter (optional, integer[]) - Filter by traffic state codes
    • Returns: List of road segments with their traffic states
  • get_congestion_summary

    • Get summary of current traffic congestion in Valencia
    • Returns: Statistics including congested segments and percentages
  • search_road_segment

    • Search for specific road segments by name
    • Input: name_query (string) - Case-insensitive search term
    • Returns: List of matching road segments with current state

Bike Sharing Tools

  • find_available_bikes

    • Find bike stations with available bikes
    • Inputs:
      • min_bikes (integer, default: 1) - Minimum number required
      • near_address (string, optional) - Address to search near
    • Returns: List of stations matching criteria with availability info
  • get_bike_station_status

    • Get detailed status of bike stations
    • Input: station_id (string, optional) - For specific station
    • Returns: Detailed status including bikes available and free slots

Air Quality Tools

  • get_air_quality_summary

    • Get overview of air quality across Valencia
    • Returns: Summary statistics of pollutant levels and air quality ratings
  • find_nearest_air_station

    • Find closest air quality monitoring station to coordinates
    • Inputs:
      • latitude (float) - Latitude coordinate
      • longitude (float) - Longitude coordinate
    • Returns: Nearest station details with distance and current readings
  • get_station_data

    • Get detailed information about air quality monitoring stations
    • Input: station_name (string) - Name to search for (partial match)
    • Returns: Detailed pollutant data for matching stations
  • get_pollutant_levels

    • Get levels of a specific pollutant across all stations
    • Input: pollutant (string) - Pollutant type (so2, no2, o3, co, pm10, pm25)
    • Returns: Measurements of specified pollutant with statistics
  • get_air_quality_map

    • Get geospatial data of air quality stations for mapping
    • Returns: Location data with quality ratings and pollutant levels

Weather Tools

  • get_current_weather

    • Get current weather conditions in Valencia
    • Returns: Current weather data including temperature, humidity, wind speed, and weather description
  • get_weather_forecast

    • Get weather forecast for Valencia
    • Input: days (integer, default: 3) - Number of days to forecast (1-7)
    • Returns: Hourly weather forecasts for the requested period
  • get_historical_weather

    • Get historical weather data for Valencia
    • Inputs:
      • start_date (string) - Start date in YYYY-MM-DD format
      • end_date (string) - End date in YYYY-MM-DD format
    • Returns: Historical weather data for the specified period
  • get_daily_weather_summary

    • Get daily weather summary for Valencia
    • Input: day_offset (integer, default: 0) - Day offset (0=today, 1=tomorrow, etc.)
    • Returns: Daily weather summary with min/max/avg values

Claude Desktop Integration

Add this to your claude_desktop_config.json (typically found in %APPDATA%\Claude on Windows or ~/Library/Application Support/Claude on macOS):

{
  "mcpServers": {
    "valenciaSmartCity": {
      "command": "uv",
      "args": ["run", "valencia_traffic_mcp.py"]
    }
  }
}

Alternatively, install directly with:

mcp install valencia_traffic_mcp.py --name "Valencia Smart City"

Development

Run the server directly:

# Run with MCP Inspector for development
mcp dev valencia_traffic_mcp.py

# Run directly (stdio transport)
python valencia_traffic_mcp.py

Example Queries

  • "How's the traffic in Valencia right now?"
  • "Are there any congested streets in downtown Valencia?"
  • "Where can I find a Valenbisi bike near the City Hall?"
  • "What's the air quality like in Valencia today?"
  • "Which areas of Valencia have the highest pollution levels?"
  • "What's the nearest air quality monitoring station to the train station?"
  • "Show me the NO2 levels across Valencia"
  • "What's the weather forecast for Valencia this week?"
  • "Will it rain tomorrow in Valencia?"
  • "What were the temperatures in Valencia last week?"
  • "Is it a good day for cycling in Valencia today?"

Data Sources

This server connects to the following data sources:

  • Valencia's open data platform:

    • Traffic data: estat-transit-temps-real-estado-trafico-tiempo-real
    • Bike stations: valenbisi-disponibilitat-valenbisi-disponibilidad
    • Air quality: estacions-contaminacio-atmosferiques-estaciones-contaminacion-atmosfericas
  • Open-Meteo API:

    • Current weather data
    • Weather forecast
    • Historical weather data

License

MIT