How to Use the TfL MCP in Mastra AI
Build resilient transport agents with mastra-ai.
Works with every AI agent you already use
…and any MCP-compatible client
Connect TfL MCP to Mastra AI
Create your Vinkius account to connect TfL to Mastra AI — we handle the hosting, security, and runtime updates so you don't have to. No server setup required.
Key Capabilities
Check service and compliance in sequence.
You can build a multi-step workflow that first calls `get_line_status` to check if the Jubilee Line is suspended. If it is, your agent automatically triggers another tool call: `get_road_disruptions` to see if surface transport alternatives are viable. This pattern of conditional checking—if line status fails, then check roads—is what makes a resilient agent using this MCP Server.
Verify vehicle requirements for travel.
Building a trip planner that accounts for driving compliance? Your agent runs `get_vehicle_details` to verify if the car is ULEZ compliant. If it fails, the workflow branches and automatically suggests using an alternative transport mode. The MCP Server supports this kind of complex decision-making by integrating vehicle checks with route planning.
Plan journeys that account for failures.
The agent can execute a trip plan from `get_journey`, but it's smarter. It first calls `get_road_disruptions` to see if the primary road segment is closed. If so, it doesn't just fail; it retries by calling `get_place_search` for nearby alternatives, providing the user with multiple options. Mastra AI handles these automatic retries and conditional branches perfectly.
Set up TfL MCP in Mastra AI
Prerequisites
- Node.js 18+ and a TypeScript project
-
@mastra/mcp+@mastra/corepackages - Active Vinkius subscription with a valid endpoint token
- 1
Install dependencies
Run
npm install @mastra/mcp @mastra/coreplus your preferred model provider (e.g.@ai-sdk/openai). - 2
Configure the MCPClient
Create an
MCPClientwith your Vinkius endpoint as aURLobject. Replace[YOUR_TOKEN_HERE]with your token from cloud.vinkius.com. - 3
Discover and inject tools
Call
mcpClient.listTools()and spread the result into your agent'stoolsobject. All TfL tools become native Mastra tools. - 4
Run with any model
Swap
openai("gpt-4o")for any AI SDK-compatible provider. Callagent.generate()and the agent routes tool calls through MCP automatically.
import { MCPClient } from "@mastra/mcp";
import { Agent } from "@mastra/core/agent";
import { openai } from "@ai-sdk/openai";
const mcpClient = new MCPClient({
id: "tfl-mcp-client",
servers: {
"tfl-mcp": {
url: new URL(
"https://edge.vinkius.com/[YOUR_TOKEN_HERE]/mcp"
),
},
},
});
const agent = new Agent({
name: "TfL Agent",
model: openai("gpt-4o"),
instructions: "You have access to TfL tools.",
tools: {
...(await mcpClient.listTools()),
},
});
const result = await agent.generate(
"List recent TfL transactions"
);
console.log(result.text); Independent Platform Disclaimer: Vinkius is an independent platform and is not affiliated with, endorsed by, sponsored by, verified by, or otherwise authorized by TfL. 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 TfL MCP in Mastra AI
Use it with your favorite AI tools
Connect this server to Cursor, Claude, VS Code, and more.
Start using the TfL MCP today
We host it, we monitor it, we maintain it. You just paste one token.