How to Use the EMT Madrid (Open Data) MCP in CrewAI
Deploy a coordinated team of transit agents to monitor Madrid buses and bikes with CrewAI.
Works with every AI agent you already use
…and any MCP-compatible client
Connect EMT Madrid (Open Data) MCP to CrewAI
Create your Vinkius account to connect EMT Madrid (Open Data) to CrewAI and route execution through our secure gateway. The platform manages server hosting, runtime updates, and security layers. Configuration requires no manual server provisioning.
Run Madrid Transit Crews Using MCP Server Tools
The `get_bus_arrivals` tool fetches live wait times for any stop in the municipal network. Within a CrewAI team, a dedicated transit agent can feed these times to a moderator agent. While one agent watches the bus arrivals, another uses `list_bicimad_stations` to check nearby BiciMAD bike docks. They collaborate to recommend the fastest overall commute option to the user.
Optimize Multi-Modal Routes Autonomously
The `plan_bus_route` tool calculates transit paths across the city using EMT's internal routing engine. Your CrewAI analyst agent passes coordinates to this tool to generate initial travel plans. A second quality-assurance agent then double-checks the plan against live arrival data. If the scheduled bus is delayed, the crew dynamically recalculates the route.
Keep Crew Agents Authenticated with EMT Madrid
The `login` tool connects your agents to the EMT MobilityLabs developer portal to retrieve an active accessToken. CrewAI manages this credential step before assigning tasks to the rest of the crew. A specialized manager agent runs the login sequence in the background. This ensures the researcher agents always have active credentials when querying real-time bus or bike data.
Set up EMT Madrid (Open Data) MCP in CrewAI
Prerequisites
- Python 3.10+ installed
-
crewaipackage (pip install crewai) - Active Vinkius subscription with a valid endpoint token
- 1
Install CrewAI
Run
pip install crewaito install the framework. MCP support is built-in via themcpsparameter. - 2
Add the MCP URL to your agent
Pass your Vinkius endpoint directly to the
mcpslist. Replace[YOUR_TOKEN_HERE]with your token from cloud.vinkius.com. CrewAI handles tool discovery and caching automatically. - 3
Kick off your crew
Create a
Crewwith your agent and tasks. Callcrew.kickoff()— the agent will automatically invoke EMT Madrid (Open Data) tools as needed.
from crewai import Agent, Task, Crew
agent = Agent(
role="EMT Madrid (Open Data) Analyst",
goal="Access and analyze EMT Madrid (Open Data) data via MCP.",
backstory="Expert analyst with direct EMT Madrid (Open Data) access.",
mcps=[
"https://edge.vinkius.com/[YOUR_TOKEN_HERE]/mcp"
],
)
task = Task(
description="List recent EMT Madrid (Open Data) transactions",
agent=agent,
expected_output="A summary of recent activity",
)
crew = Crew(agents=[agent], tasks=[task])
result = crew.kickoff()
print(result) Prerequisites
- Python 3.10+ installed
-
crewai+crewai-toolspackages - Active Vinkius subscription with a valid endpoint token
- 1
Install dependencies
Run
pip install crewai crewai-tools. TheMCPServerAdapterhandles lifecycle management and tool conversion. - 2
Connect with MCPServerAdapter
Use
MCPServerAdapteras a context manager withSseServerParameterspointing to your Vinkius endpoint. The adapter automatically manages connection lifecycle. - 3
Assign tools and run
Pass the returned
mcp_toolsto your agent'stoolsparameter. The adapter converts MCP tools to nativeBaseToolobjects compatible with all CrewAI agents.
from crewai import Agent, Task, Crew
from crewai_tools import MCPServerAdapter
from mcp import SseServerParameters
server_params = SseServerParameters(
url="https://edge.vinkius.com/[YOUR_TOKEN_HERE]/mcp"
)
with MCPServerAdapter(server_params) as mcp_tools:
agent = Agent(
role="EMT Madrid (Open Data) Analyst",
goal="Access and analyze EMT Madrid (Open Data) data via MCP.",
backstory="Expert analyst with direct EMT Madrid (Open Data) access.",
tools=mcp_tools,
)
task = Task(
description="List recent EMT Madrid (Open Data) transactions",
agent=agent,
expected_output="A summary of recent activity",
)
crew = Crew(agents=[agent], tasks=[task])
result = crew.kickoff()
print(result) 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.
Why Choose Vinkius
Vinkius connects your tools to AI with real-time monitoring and automatic cost savings — all from one dashboard.
Real-time monitoring
Live
visibility into every interaction
Connect your favorite tools to your AI and see exactly what's happening — every request, every response, in real time.
Built-in savings
60%
lower AI costs
Vinkius compresses data between your apps and your AI automatically. Lower bills every month — no configuration required.
Single dashboard
One
place for every integration
Every tool your AI connects to, managed from a single screen. One account, complete control.
Common questions about EMT Madrid (Open Data) MCP in CrewAI
Use it with your favorite AI tools
Connect this server to Cursor, Claude, VS Code, and more.
Start using the EMT Madrid (Open Data) MCP today
We host it, we monitor it, we maintain it. You just paste one token.