routes-mcp-israel
Integrates with Google Routes API and Google Places API to provide real-time public transit routing for Israel, including Hebrew-localized directions and arrival times.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@routes-mcp-israelGet transit routes from Tel Aviv to Jerusalem"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Routes MCP - Real-time Transit for Israel
An MCP (Model Context Protocol) server that provides real-time public transit information for Israel, combining Google Routes API, Google Places API, and GTFS data with curlbus for accurate arrival times.
Features
Get transit routes between any two addresses in Israel
Hebrew-localized times and addresses
Real-time bus/train arrival information via curlbus
Automatic city detection using Google Places API
GTFS-based stop code matching for accurate real-time data
Configurable number of routes returned
Related MCP server: Google Maps MCP Server for Cloud Run
Google API Setup
1. Create a Google Cloud Project
Go to Google Cloud Console
Create a new project or select an existing one
2. Enable Required APIs
Enable these APIs in your Google Cloud project:
Routes API
Go to Routes API
Click "Enable"
Places API (New)
Go to Places API (New)
Click "Enable"
3. Create API Key
Go to API Keys
Click "Create Credentials" → "API Key"
Copy your API key
(Optional) Restrict the key to only Routes API and Places API for security
Installation
Prerequisites
Install uv package manager
Python 3.8+
Setup
git clone <your-repo-url>
cd routes_mcpConfiguration
Claude Desktop
Add to your Claude Desktop configuration file (claude_desktop_config.json):
{
"mcpServers": {
"routes-israel": {
"command": "uv",
"args": ["--directory", "/path/to/routes_mcp", "run", "server.py"],
"env": {
"GOOGLE_API_KEY": "your_google_api_key_here",
"MAX_ROUTES": "2"
}
}
}
}Cursor
Add to your Cursor configuration file. The location depends on your OS:
macOS: ~/Library/Application Support/Cursor/User/globalStorage/storage.json
Linux: ~/.config/Cursor/User/globalStorage/storage.json
Windows: %APPDATA%\Cursor\User\globalStorage\storage.json
Add this configuration:
{
"mcpServers": {
"routes-israel": {
"command": "uv",
"args": ["--directory", "/path/to/routes_mcp", "run", "server.py"],
"env": {
"GOOGLE_API_KEY": "your_google_api_key_here",
"MAX_ROUTES": "2"
}
}
}
}Note: If the file doesn't exist, create it with the above content.
Other MCP Clients
Other MCP clients use the same protocol and similar configuration.
Manual Python Installation
If you prefer traditional pip:
pip install fastmcp httpx pydanticThen use:
{
"mcpServers": {
"routes-israel": {
"command": "python",
"args": ["/path/to/routes_mcp/server.py"],
"env": {
"GOOGLE_API_KEY": "your_google_api_key_here",
"MAX_ROUTES": "2"
}
}
}
}Environment Variables
Variable | Required | Default | Description |
| ✅ Yes | - | Your Google API key with Routes and Places API enabled |
| No |
| Maximum number of routes to return (for performance) |
Usage
The server provides one tool: get_route
Example
Get transit routes from "תל אביב" to "ירושלים"Response Format
{
"routes": [
[
{
"operator": "אגד",
"route_number": "405",
"departure_stop": "תחנה מרכזית תל אביב/קומה 3/רציף 16",
"arrival_stop": "תחנה מרכזית ירושלים/יעקב פת/רציף 15",
"departure_time": "17:16",
"arrival_time": "17:47",
"real_time_data": {
"arrivals": ["13 min", "28 min"],
"next_arrival": "13 min",
"status": "success"
}
}
]
]
}How It Works
Google Routes API: Gets transit directions with Hebrew localization
Google Places API: Extracts origin city from place_id for accurate GTFS matching
GTFS API: Finds exact stop codes based on city and station names
Curlbus Integration: Gets real-time arrival data using GTFS stop codes
Optimization: Only fetches real-time data for the first step of each route
Development
Running the Server
GOOGLE_API_KEY="your_key" uv run server.pyTesting Individual Components
# Test Google Routes API
curl -X POST -H 'Content-Type: application/json' \
-H 'X-Goog-Api-Key: your_key' \
-H 'X-Goog-FieldMask: routes.legs.steps.transitDetails,routes.geocodingResults' \
-d '{"languageCode":"he-IL","origin":{"address":"address1"},"destination":{"address":"address2"},"travelMode":"TRANSIT"}' \
'https://routes.googleapis.com/directions/v2:computeRoutes'
# Test Google Places API
curl -X GET -H 'X-Goog-Api-Key: your_key' \
-H 'X-Goog-FieldMask: addressComponents' \
'https://places.googleapis.com/v1/places/PLACE_ID?languageCode=he'Logs
Monitor logs for debugging:
tail -f /tmp/routes_mcp.logArchitecture
Google Routes API: Provides transit routing with Hebrew localization
Google Places API: Converts place_id to city names for GTFS matching
GTFS API: Israeli public transit stop database for accurate matching
Curlbus: Real-time arrival data from Israeli transit operators
Optimization: Limits to first 2 routes, real-time data only for first transit step
API Rate Limits & Performance
Routes limited to
MAX_ROUTES(default: 2) for faster responsesReal-time data only fetched for first transit step per route
Timeouts: 8s for GTFS lookup, 3s for real-time data
All external API calls are properly timed out to prevent hanging
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/yoni-j/routes-mcp-israel'
If you have feedback or need assistance with the MCP directory API, please join our Discord server