SPTrans Olho Vivo MCP for AI. Track São Paulo buses live, from GPS coordinates to arrival forecasts.
Works with every AI agent you already use
…and any MCP-compatible client








Connect to your AI in seconds.
SPTrans Olho Vivo connects your AI agent to São Paulo's public transit system data. It lets you track buses in real time—get precise GPS coordinates, check arrival forecasts at any stop or along a line, and look up entire bus networks using structured queries.
What your AI can do
Get forecast by line
Calculates predicted arrival times for all stops along one specified route.
Get forecast by stop
Lists predicted arrivals from all lines heading to a specific stop code.
Get forecast
Provides arrival predictions for a specific stop and a given bus line.
Get real-time GPS coordinates for all buses, or filter the data to show only vehicles on a specific bus line.
Retrieve estimated arrival times for lines at a single stop, or get a forecast of arrivals across an entire route.
Search for bus lines by name/number, find specific stops using addresses, and list operating companies in the area.
Check the live GPS location of buses that are currently parked or undergoing maintenance at a terminal garage.
List and search through the city's defined intelligent bus corridors to understand network geography.
Ask an AI about this
Waiting for input…
SPTrans Olho Vivo: 13 Tools for Transit Data Access
These tools give your agent access to every aspect of the São Paulo bus transit system—from tracking single buses to listing entire corridors.
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 SPTrans Olho Vivo on VinkiusGet Forecast By Line
Calculates predicted arrival times for all stops along one specified route.
Get Forecast By Stop
Lists predicted arrivals from all lines heading to a specific stop code.
Get Forecast
Provides arrival predictions for a specific stop and a given bus line.
Get Positions By Line
Gets the real-time GPS coordinates for every bus currently running on a single...
Get Positions In Garage
Retrieves the current GPS location of buses that are parked or waiting in a terminal...
Get All Positions
Retrieves the current GPS coordinates for every single active bus in the São Paulo network.
List Companies
Lists all operating companies involved in São Paulo's bus transit network by area.
List Corridors
Returns a list of the city’s official intelligent bus corridors and their boundaries.
Search Lines By Direction
Searches for bus lines, applying a filter based on their general direction of travel.
Search Lines
Finds existing bus lines using either a name or a route number for filtering.
Search Stops By Corridor
Lists all known stops that fall within a specified intelligent transit corridor.
Search Stops By Line
Returns every stop location associated with a specific bus line number or name.
Search Stops
Locates specific bus stops by entering the name or the physical address of the stop.
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 SPTrans Olho Vivo, 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 SPTrans Olho Vivo. 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 13 powerful capabilities that interface natively with Claude, ChatGPT, Cursor, and other compatible AI platforms. No middleware. No custom integration required.
Getting real-time bus status shouldn't require multiple API calls.
Today, checking a single route requires juggling several systems: first, checking the official line list; then, finding the stop code for your location; after that, querying a separate forecast endpoint. It’s slow, and it often fails if you miss one required parameter.
With this MCP server, you ask your agent: 'What's coming to me?' The agent automatically runs `search_stops` by address and then uses the resulting ID in `get_forecast_by_stop`. You get a clean answer detailing arrival times for multiple lines—no manual API chaining required.
SPTrans Olho Vivo MCP Server: Live Tracking Data
Manual tracking used to mean relying on outdated physical signs or clicking through a dozen different dashboards just to see if the bus was running. You were stuck looking at static, aggregated data.
Now, your agent can run `get_all_positions` and give you precise, current intelligence about every single vehicle in motion across São Paulo. It’s live visibility, period.
What your AI can actually do with this
Connect this server and you'll give your AI agent access to São Paulo’s real-time transit data. You can ask it anything about the city bus network—getting live positions, predicting arrivals, or mapping out specific routes—without switching apps or digging through documentation.
Live Vehicle Tracking
Your agent uses this server to track buses in motion. You can call get_all_positions to pull the current GPS coordinates for every active bus across the entire São Paulo network. If you need a tighter focus, get_positions_by_line lets you get real-time coordinates only for buses running on one specific route.
For vehicles that aren't moving but are parked or waiting in a terminal garage, use get_positions_in_garage.
Predicting Bus Arrivals
Need to know when the next bus hits? You can run predictions using several tools. Call get_forecast to get arrival times for a specific stop and a given line. If you want to see what's coming into one spot, regardless of the line, use get_forecast_by_stop. For full route planning, get_forecast_by_line calculates predicted arrivals across every single stop on a defined route.
Finding Network Elements
The server helps you map out the entire system. You can find specific bus lines by name or number using search_lines, or narrow that down further by direction of travel with search_lines_by_direction. If you're looking for a stop, use search_stops to locate it via its name or physical address. To see every stop associated with one line, run search_stops_by_line; if you want all stops within a specific transit corridor, use search_stops_by_corridor.
You can also list the operating companies involved in the area by calling list_companies, and review the city's defined intelligent bus corridors and their boundaries using list_corridors.
Comprehensive Data Discovery
Your agent processes this data through multiple steps. If you start by searching for a stop, say using search_stops, your AI client can then take that result and pass it directly into get_forecast_by_stop. To get the current picture of every bus running in town, the system runs get_all_positions; if you only care about one line's status, it uses get_positions_by_line.
The Flow In Action
When your agent needs to know what lines are available, it can first use search_lines, and then pass that information along with a stop ID found via search_stops to calculate expected arrivals using get_forecast. The server handles all the structured queries, delivering concrete answers about arrival times or vehicle locations.
You don't have to manage any of this complexity; just ask your agent, and it uses these tools to get you the answer.
019e38f1-6db6-72c2-9a21-bcebd5a0dd8c Here's how it actually works
The bottom line is you get live operational data from São Paulo's bus network without writing any code or running complex database joins yourself.
First, subscribe to the SPTrans Olho Vivo server and provide your required API Token.
Next, tell your AI agent what you need—for example, 'Find all buses near Paulista Avenue.'
The agent runs the necessary sequence of tools (like search_stops then get_positions_by_line) and delivers the final answer in plain text.
Who is this actually for?
This is for the commuter who needs to know if their usual route is delayed, and for the urban planner analyzing fleet efficiency. If you work with transit data in São Paulo, this server gives your agent the backbone it needs.
Needs to know if their bus arrives soon without opening a separate app or checking multiple websites.
Analyzes real-time fleet distribution and identifies bottlenecks by querying corridor efficiency and vehicle density.
Builds custom applications or workflows that require structured, reliable access to live public transit feeds via natural language commands.
What Changes When You Connect
Pinpoint exact bus locations right now. Use get_all_positions to see the entire fleet's movement or use get_positions_by_line to track a single route in real time.
Get immediate arrival predictions without guessing. Ask for forecasts at your stop using get_forecast_by_stop, which checks multiple lines arriving there.
Map the whole system quickly. You can find out what buses run through an area by using list_corridors or finding stops via search_stops.
Understand network structure instantly. Use list_companies to see who operates in a sector, and use list_corridors to map the major transit paths.
Save time on searches. Instead of manually checking routes, ask your agent to find all stops for a line using search_stops_by_line.
See it in action
Commuter needs immediate route info
A commuter is standing at an unknown stop. They tell their agent: 'What's coming to me?' The agent uses search_stops with the address, gets the stop ID, and immediately runs get_forecast_by_stop. The result tells them which lines and when they arrive.
Planner needs fleet density data
A researcher wants to know how many buses are currently active on Line 33657. They instruct the agent: 'Show me all positions for line 33657.' The agent uses get_positions_by_line and returns a count of active vehicles, helping analyze peak usage.
Developer needs to build a widget
A developer's app needs to show all major routes in an area. They ask the agent: 'List all intelligent corridors.' The agent executes list_corridors, providing the foundational boundaries necessary for their map visualization layer.
User checks a specific destination
A user is planning a trip to Terminal Lapa. They ask: 'What lines go there?' The agent uses search_stops and then runs search_lines_by_direction using the resulting stop data, giving them all relevant options.
The honest tradeoffs
Asking for historical trends
Asking: 'What was the average delay on Line 33657 last Tuesday?' The system cannot answer this because it only provides real-time status.
This server gives live data. If you need to track something, use get_positions_by_line or get_all_positions for the current moment.
Calling general search first
Just running 'search_lines' without follow-up parameters. You get a huge list of lines and no actionable data.
Always pair searches with a goal. If you need arrivals, use search_stops to find the stop ID, then run get_forecast_by_stop.
Assuming all buses are visible
Expecting to see every bus on the network at all times. Some buses might be out of service or parked.
Use get_positions_in_garage to specifically check for buses that are currently in a terminal garage, separating them from active routes.
When It Fits, When It Doesn't
Use this server if your task requires immediate, operational data about physical movement in São Paulo's transit system. You need to know: where is it now? When is it getting there? This is perfect for live tracking and short-term forecasting.
Don't use it if you need deep historical trend analysis (e.g., average delays over a year). For that, you need an archive or logging tool. Also, don't use it to calculate complex routes; it only gives you the components—the stops and lines—you must assemble the route yourself. Use search_stops for coordinates, but remember you have to build the journey logic on your end.
Questions you might have
How do I find the bus stops needed for get_forecast_by_stop? +
You must use search_stops first to locate a stop by name or address. This tool returns the unique stop ID, which you then pass into get_forecast_by_stop.
What is the difference between get_all_positions and get_positions_by_line? +
get_all_positions gives you coordinates for every single bus on the whole network. get_positions_by_line limits that view, giving you GPS data only for buses running on one specific line.
Can I use search_lines to find a route by direction? +
Yes, you can narrow down results using search_lines_by_direction. This is better than just using search_lines if you know the general way the bus is heading.
What data does list_corridors provide? +
list_corridors provides a list of the city's official intelligent corridors. You can then use search_stops_by_corridor to find all stops within that specific boundary.
When should I use `get_positions_in_garage` instead of tracking active buses? +
Use this tool for vehicles that aren't running routes. It tracks the real-time location of buses parked in a garage, specific to certain companies or lines. This is useful when you need to check fleet availability before service hours.
If my search using `search_lines` returns no data, how should my agent handle it? +
The server will return a structured empty list and an HTTP 200 status code. Your AI client must check for null or empty arrays in the response body rather than waiting for a hard error message.
What are the recommended rate limits when calling `get_forecast` repeatedly? +
We recommend implementing a backoff strategy if you poll frequently. While we don't list specific limits, continuous high-volume requests risk throttling; always check Vinkius documentation for current usage tiers.
What data points are available when I call `list_companies`? +
The tool returns a structured list of operating companies. Each entry includes the company's official name, its associated area code, and general operational status information for filtering.
How do I find the specific code for a bus line? +
Use the search_lines tool with the line number or name (e.g., '8000' or 'Lapa'). The agent will return the line code (cl), which is required for tracking positions or forecasts.
Can I see the arrival times for all buses at a particular stop? +
Yes! Use the get_forecast_by_stop tool with the stop code (cp). It will list all upcoming bus arrivals for that location in real-time.
Is it possible to track the live location of buses on a map? +
While the MCP returns raw coordinates, you can use get_positions_by_line to get the latitude and longitude of every active bus on a line, which your AI can then describe or plot.
We've already built the connector for SPTrans Olho Vivo. Just plug in your AI agents and start using Vinkius.
No hosting. No infrastructure. No complex setup.
All 13 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.