EMT Madrid (Open Data) MCP for AI. Real-time bus, bike, and full trip planning for Madrid.
Works with every AI agent you already use
…and any MCP-compatible client








Connect to your AI in seconds.
EMT Madrid (Open Data) MCP connects your AI agent directly to real-time public transit data for Madrid. Check next bus arrivals at any stop, see which BiciMAD stations have bikes and docks available, or calculate a full trip route using the city's official bus network.
What your AI can do
List bicimad stations
Provides a complete listing of all BiciMAD stations and their current bike/dock availability counts.
Get bus arrivals
Retrieves the precise estimated arrival time for a specified bus line at an official stop.
Login
Authenticates the connection by logging into EMT MobilityLabs to generate an access token.
Determines the best path between two points using the full EMT bus network.
Provides exact minutes until the next scheduled bus reaches a specific stop ID.
Lists every BiciMAD station and reports its current count of available bikes and empty docks.
Securely processes the necessary credentials to activate all other data tools.
Ask an AI about this
Waiting for input…
EMT Madrid (Open Data): 4 Tools
Use these tools to check live bus times, map local bike stations, calculate routes, or authenticate your connection to the EMT network.
Make your AI actually useful.
Add this MCP to Claude, Cursor, or Windsurf and your AI stops guessing. It gets real tools to look things up, take action, and handle the stuff you keep doing by hand.
Start using EMT Madrid (Open Data) on VinkiusList Bicimad Stations
Provides a complete listing of all BiciMAD stations and their current bike/dock availability counts.
Get Bus Arrivals
Retrieves the precise estimated arrival time for a specified bus line at an official...
Login
Authenticates the connection by logging into EMT MobilityLabs to generate an access...
Plan Bus Route
Generates a step-by-step route calculation between two points using only the...
Security and governance baked right in.
Pick your AI client below to get set up. Just create a Vinkius account, subscribe, and you're instantly up and running. We handle the entire backend infrastructure, delivering out-of-the-box support for HTTPS Streamable, SSE, and OAuth2—zero messy routing required.
Choose How to Get Started
Build a custom MCP for your own tools, or connect a ready-made integration from our catalog.
Build Your Own
Turn any API into an MCP. Import a spec, define Agent Skills, or deploy with MCPFusion.
- Import from OpenAPI, Swagger, or YAML specs
- Create Agent Skills with progressive disclosure
- Deploy to edge with MCPFusion framework
- Built in DLP, auth, and compliance on every call
- Real time usage dashboard and cost metering
- Publish to catalog or keep private
Make Your AI Do More
Start with EMT Madrid (Open Data), then connect any of our 5,100+ other servers whenever your AI needs more. One click, no limits.
- Use this MCP plus 5,100+ others, all in one place
- Add new capabilities to your AI anytime you want
- Every connection is secured and compliant automatically
- Track usage and costs across all your servers
- Works with Claude, ChatGPT, Cursor, and more
- New servers added to the catalog every week
Independent Platform Disclaimer: Vinkius is an independent platform and is not affiliated with, endorsed by, sponsored by, verified by, or otherwise authorized by EMT Madrid. All third-party trademarks, logos, and brand names are the property of their respective owners. Their use on this website is strictly for informational purposes to identify service compatibility and interoperability.
VINKIUS INFRASTRUCTURE
Cloud Hosted
Managed infra
V8 Isolated
Sandboxed per request
Zero-Trust Proxy
No stored credentials
DLP Enforced
Policy on every call
GDPR Compliant
EU data residency
Token Compression
~60% cost reduction
Works with Claude, ChatGPT, Cursor, and more
The Model Context Protocol standardizes how applications expose capabilities to LLMs. Instead of operating in isolation, your AI gains direct access to external platforms, live data, and real-world actions through secure, standardized connections.
This connection provides 4 powerful capabilities that interface natively with Claude, ChatGPT, Cursor, and other compatible AI platforms. No middleware. No custom integration required.
Coordinating a trip through Madrid used to mean opening five different apps.
Before connecting this data source, planning a simple cross-city journey was a manual mess. You'd open Google Maps for the general path; switch to a dedicated bus app to check arrivals; then jump into a bike sharing website just to see if you could walk part of it. It involved constant context switching and copying IDs.
Now, your agent pulls all that information together. Instead of clicking through multiple services, you ask one question: 'How do I get from X to Y?' The system gives you the full path, integrating bus schedules and bike availability into a single, coherent answer.
Get instant access to Madrid's live transit data with EMT Madrid (Open Data) MCP
You ditch the need for separate apps. The ability to combine route planning and real-time arrivals into one command means you don't waste time verifying if a bus is running or if your bike ride will be cut short by an empty dock.
It’s accurate, official data delivered instantly. You just ask, and the MCP handles the complexity of fetching reliable information from the city's core systems.
What your AI can actually do with this
Need to get around Madrid? Instead of juggling multiple apps—one for buses, one for bike sharing, another for maps—your agent handles it all. This connection gives your AI client direct access to Madrid’s official mobility data. You can ask your agent simple questions like, “What bus should I take from here?” or “Are there any available bikes near Puerta del Sol?” The system pulls live information on everything: the precise arrival time of Line 19 at a specific stop, or how many docks are free at the nearest BiciMAD station.
All this data is managed through Vinkius, allowing you to connect your preferred AI client and treat Madrid's entire transit network as one unified tool set.
019e3891-12ac-7038-a90c-2a2711b56040 Here's how it actually works
The bottom line is that after initial setup, querying Madrid’s transport data happens through natural conversation, not manual API calls.
First, subscribe to this MCP and provide your EMT MobilityLabs API key.
Next, your agent uses the login tool to secure an access token with the official system.
Finally, you ask your AI client a question—for example, asking for bus arrivals or planning a route—and the agent executes the appropriate tool.
Who is this actually for?
This MCP is for anyone whose job depends on knowing exactly how to move people or goods around a complex urban area. It helps the commuter who needs instant updates and the operations team that runs logistics across multiple points.
Uses the data to model traffic flow, analyzing patterns of bus usage and bike density across different city sectors.
Calculates optimal routes for field teams or delivery services that rely on public transit hubs as starting points.
Provides accurate, real-time itineraries to clients, combining bus schedules with local bike availability status.
What Changes When You Connect
You stop switching between different city apps. Your agent checks live arrivals using get_bus_arrivals without you opening multiple browser tabs.
Get a complete picture of local movement. Use the listing tool to check all BiciMAD stations and their status in one go, knowing exactly where bikes are available.
Stop guessing your travel time. The MCP calculates full itineraries using plan_bus_route, giving you the best path from start point to destination.
It's official data. This connector uses the same live feeds that local apps rely on, guaranteeing accurate information for critical mobility workflows.
The process is clean: You just ask your agent a question; it handles the necessary login and executes the right tool in sequence.
See it in action
A traveler needs to get from their hotel to a museum across town.
The user asks, 'How do I get to the Prado Museum?' The agent runs plan_bus_route, suggests taking Line 27, and tells them exactly where to board. This saves minutes of research and walking.
A commuter is waiting at a major transfer hub.
The user asks, 'When does the next bus come?' The agent uses get_bus_arrivals by stop ID 1022. It reports that Line 51 arrives in 3 minutes and Line 19 is estimated for 8 minutes.
An event organizer needs to check transport options for attendees.
The agent runs list_bicimad_stations across the area. It reports that while one station is full, a nearby location has 15 free docks and 12 bikes ready.
A developer needs to build a custom dashboard for city services.
They use the MCP's structured tools to pull continuous real-time data streams from get_bus_arrivals and combine it with route planning outputs into one unified feed.
The honest tradeoffs
Asking for general directions.
I just need to know the best way to get downtown. Is there a bus or train?
The agent needs specific inputs. To calculate a route, you must use plan_bus_route and provide both your starting stop ID and your final destination.
Assuming all transport is available.
I should check if there are bikes near the park right now.
Always run list_bicimad_stations first. This shows you a comprehensive list of stations and their current availability, so you don't waste time checking empty areas.
Relying on vague search terms.
Tell me about bus times near the big square.
You must use a specific stop ID. Run get_bus_arrivals and provide the unique stop ID to get accurate, real-time timing data.
When It Fits, When It Doesn't
Use this MCP if your goal is actionable, real-time mobility planning within Madrid using bus or bike networks. If you need to know a specific trip route, use plan_bus_route. If you just want to check the status of every local resource (bikes/docks), run list_bicimad_stations. Never use this if your query is purely historical—this data reflects live feeds. Don't try to map complex journeys involving underground rail lines, as this MCP only handles EMT bus network paths.
Questions you might have
How do I check bus arrivals using get_bus_arrivals? +
You must provide a specific stop ID. Just give your agent the unique stop number and the line you want to track, and it tells you the minutes until arrival.
What is the difference between plan_bus_route and get_bus_arrivals? +
plan_bus_route gives you a multi-step itinerary (Start -> Bus Line X -> End Point). get_bus_arrivals only tells you when the next bus arrives at one single spot.
Can I check bike availability with list_bicimad_stations? +
Yes. This tool lists all BiciMAD stations and reports exactly how many bikes are available for use, along with empty docks.
Do I need to run the login tool first? +
Yes. The agent needs to successfully complete the login process to get an access token before it can query any real-time data like bus or bike status.
If I use `get_bus_arrivals` and the stop ID is invalid, what should my agent expect? +
The tool returns a standardized error code or an empty dataset. Your AI client can read this structured output to tell the user that the specific Stop ID wasn't found, instead of just crashing.
When I call `list_bicimad_stations`, is there a way to filter results by neighborhood? +
The tool fetches all station data. You must apply geographical filtering yourself using the latitude and longitude coordinates provided in the output, since the MCP itself doesn't support location parameters.
For `plan_bus_route`, do I need precise numeric stop IDs, or can I use descriptive names? +
The best results come from using the unique Stop ID. While some stops might be known by name, supplying the official number ensures accurate route calculation and avoids ambiguity.
What should happen if my agent makes too many requests to `plan_bus_route` quickly? +
The underlying EMT API enforces rate limits. If you hit the limit, your AI client will receive a 429 error code. You'll need to build a retry loop with backoff logic into your application.
How do I check when the next bus arrives at a specific stop? +
You can use the get_bus_arrivals tool by providing the unique Stop ID. The agent will return real-time estimates for all lines serving that stop.
Can I see the availability of BiciMAD electric bikes? +
Yes! The list_bicimad_stations tool provides a complete list of all stations in Madrid, including the number of available bikes and free docks at each location.
Does this server require a login to access the data? +
The server uses the login tool internally or via your API key to authenticate with EMT MobilityLabs, ensuring you have a valid session to fetch real-time transport data.
We've already built the connector for EMT Madrid (Open Data). Just plug in your AI agents and start using Vinkius.
No hosting. No infrastructure. No complex setup.
All 4 tools are live and waiting.
You're up and running in seconds.
Vinkius gives your AI agents access to the full catalog of app connectors, all fully managed, secure, and enterprise-ready. One subscription, every tool you need.
Built, hosted, and secured by Vinkius. You just connect and go.