DEV Community

Renato Marinho
Renato Marinho

Posted on

The telemetry gap: Bringing Volvo's Connected API into the MCP ecosystem

I was looking at my agent's toolset yesterday and realized something unsettling. It wasn't just searching through my local repo or querying a Postgres instance to find an edge case. It was checking if the windows in my Volvo were closed.

We talk a lot about LLMs writing code, but we don't talk enough about the moment where 'context' shifts from digital files to physical state. When you bridge the gap between an agent and hardware via the Model Context Protocol (MCP), you aren't just giving it new data; you are extending its agency into the physical world.

The recent release of the Volvo Cars Connected MCP server is a perfect, albeit high-stakes, example of this shift. It isn't some novelty wrapper for checking your car's mileage. When you map tools like get_battery_status, get_doors_status, and get_tires_status to an agentic workflow, you are fundamentally changing how we interact with IoT infrastructure.

The technical reality of the implementation

You can find the specific server configuration here: https://vinkimius.com/mcp/volvo-cars-connected

Looking at the toolset, it's quite surgical. It doesn't try to be a 'car controller' in some vague sense. Instead, it exposes raw telemetry through clearly defined functions. If you are building an automated fleet monitoring system or just a personal assistant that actually understands your morning commute, the utility is there.

For instance, the get_battery_status and get_fuel_status tools allow an agent to perform logic-based reasoning. An agent doesn't just see "78% battery"; it can cross-reference that with a weather API or your calendar to warn you: "You have a long trip scheduled for tomorrow, and your charge is too low for the predicted cold temperatures."

Then there are the more granular status checks:

  • get_doors_status & get_windows_status: Real-time verification of vehicle security.
  • get_tires_status: Monitoring pressure to prevent maintenance neglect.
  • get_vehicle_statistics: Deep dives into trip meter data and usage patterns.

The beauty here is that the agent handles the polling logic. You don't write a cron job and an alert system; you write a prompt, and the protocol manages the interface with the VCC API.

The friction: Auth, OAuth, and why developers quit

Here is where most MCP implementations fail in production. If I want to use this server, I need my Volvo Access Token (via Volvo ID OAuth) and a VCC API Key.

The moment a developer—or an end-user—is faced with "Configure your OAuth callback" or "Navigate to the developer portal to create an app," half of them are gone. I've seen this repeatedly while building GitScrum and later MCPFusion. The technical barrier isn't the code; it's the authentication dance.

In a production-grade environment, you can't have agents blindly trying to refresh tokens that expired three weeks ago. This is why we built Vinkius the way we did. We focused on removing this friction by treating the connection as a subscription rather than an integration project. You grab a token, paste it into Claude or Cursor, and you are operational. The complexity of managing the underlying OAuth flow should be invisible to the person trying to automate their car's maintenance.

The security elephant in the room

We need to address the "scary fast" aspect that I see popping up in recent Dev.to discussions. When you give an agent access to get_doors_status or any tool that interacts with a vehicle's state, you are creating a new attack surface.

If your MCP server has high-privilege access to hardware, what happens when the LLM hallucinates? What happens if a prompt injection trick convinces the agent that it needs to check all doors—and then somehow triggers an unlock command (if such a tool were exposed)?

This is exactly why I built MCPFusion with strict governance. Every execution context in our V8 sandboxes runs under eight specific policies, including HMAC audit chains and kill switches. When you are dealing with physical assets like Volvo vehicles, security cannot be an afterthought or something you "fix in the next sprint." You need DLP (Data Loss Prevention) and SSRF prevention baked into the protocol layer itself. If you don't have a way to audit exactly what tool was called and why, you shouldn't be connecting agents to anything with a VIN.

The path forward

The implications for fleet management are massive. Imagine an agent that monitors get_odometer across fifty vehicles via the Geotab or Cartrack MCP servers (both available in our catalog) and automatically generates maintenance tickets in Jira when a threshold is met. That isn't science fiction; it's just structured telemetry being fed into a reasoning engine.

The gap between "this API exists" and "I can actually use this reliably in my agentic workflow" is where the real engineering work is happening right now. Whether it's Volvo, Tesla, or GM, the goal is to make hardware as programmable as a function call.

If you want to see how the tools are structured or test the connectivity yourself, check out the documentation here: https://vinkius.com/mcp/volvo-cars-connected.


MCPs are the music of AI Agents. We built the catalog. Discover Vinkius MCP Catalog.

Top comments (0)