How to Use the CARTO MCP in Mastra AI
Build resilient spatial workflows with Mastra AI and CARTO, featuring automatic retries and state management.
Works with every AI agent you already use
…and any MCP-compatible client
Connect CARTO MCP to Mastra AI
Create your Vinkius account to connect CARTO to Mastra AI and route execution through our secure gateway. The platform manages server hosting, runtime updates, and security layers. Configuration requires no manual server provisioning.
Mastra AI agents running spatial jobs
Automate your heavy ETL tasks by triggering `create_async_sql_job` within your Mastra agents. The system handles the job lifecycle so you don't have to write manual status checkers. Your agents watch the progress via `poll_async_job_status`. If a job hits a transient error, the framework logic handles the retry automatically.
Reliable routing and batch processing
Coordinate complex location tasks like bulk geocoding across multi-step workflows. Using `geocode_batch_addresses`, you can chain input data through your agent's decision tree. Every tool call is tracked. If a geocoding batch fails, your agent catches the state and logs the failure before attempting a fallback.
Spatial SQL for agent decision making
Give your agents the ability to run `execute_sql_query` to verify spatial conditions before taking action. It allows the agent to check if a point lies within a boundary before proceeding. This creates a closed-loop system. The agent queries your database, processes the result, and decides the next step based on real-world geography.
Set up CARTO 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 CARTO 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: "carto-mcp-client",
servers: {
"carto-mcp": {
url: new URL(
"https://edge.vinkius.com/[YOUR_TOKEN_HERE]/mcp"
),
},
},
});
const agent = new Agent({
name: "CARTO Agent",
model: openai("gpt-4o"),
instructions: "You have access to CARTO tools.",
tools: {
...(await mcpClient.listTools()),
},
});
const result = await agent.generate(
"List recent CARTO 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 CARTO. 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 CARTO MCP in Mastra AI
Use it with your favorite AI tools
Connect this server to Cursor, Claude, VS Code, and more.
Start using the CARTO MCP today
We host it, we monitor it, we maintain it. You just paste one token.