How to Use the PurpleAir MCP in Pydantic AI
Strictly type-safe air quality monitoring for Pydantic AI agents using the PurpleAir MCP server.
Works with every AI agent you already use
…and any MCP-compatible client
Connect PurpleAir MCP to Pydantic AI
Create your Vinkius account to connect PurpleAir to Pydantic AI — we handle the hosting, security, and runtime updates so you don't have to. No server setup required.
Key Capabilities
Validated sensor data for Pydantic AI
Every response from `get_sensor_data` is validated against your schema, ensuring your Pydantic AI agent only processes clean data. If the sensor returns malformed values, the agent catches the error immediately. This eliminates silent failures during critical air quality monitoring tasks. You get high-confidence ingestion of PM2.5, humidity, and temperature readings every time the tool runs.
Type-safe location lookups in Pydantic AI
Use `get_sensors_near_me` to find hardware and verify the output structure with Pydantic models. Your Pydantic AI agent maintains total control over the data shapes it receives from the field. This approach prevents hallucinated fields in your agent's reasoning. You define the exact structure expected from the sensor network before the query is ever executed.
Structured historical logs for Pydantic AI
Retrieve time-series data via `get_sensor_history` and let Pydantic AI handle the validation of timestamps and measurements. It creates a robust bridge between raw sensor history and your application logic. For bulk data, `get_sensor_history_csv` provides a predictable stream for your data processing models. It keeps your Pydantic AI agent's state consistent throughout long-running analysis cycles.
Set up PurpleAir MCP in Pydantic AI
Prerequisites
- Python 3.10+ installed
-
pydantic-ai-slim[fastmcp]package - Active Vinkius subscription with a valid endpoint token
- 1
Install Pydantic AI with FastMCP
Run
pip install "pydantic-ai-slim[fastmcp]". The FastMCP toolset replaces the deprecatedMCPServerHTTPclass with full protocol support. - 2
Configure the FastMCPToolset
Pass a JSON-style config dict to
FastMCPToolsetwith your Vinkius URL. Replace[YOUR_TOKEN_HERE]with your token from cloud.vinkius.com. Supports Streamable HTTP, SSE, and Stdio transports. - 3
Create and run your agent
Pass the toolset to
Agent(toolsets=[toolset])and callagent.run(). Swapopenai:gpt-4ofor any supported model — Anthropic, Google, Mistral, or Groq.
from pydantic_ai import Agent
from pydantic_ai.toolsets.fastmcp import FastMCPToolset
toolset = FastMCPToolset({
"mcpServers": {
"purpleair-mcp": {
"url": "https://edge.vinkius.com/[YOUR_TOKEN_HERE]/mcp"
}
}
})
agent = Agent(
"openai:gpt-4o",
toolsets=[toolset],
system_prompt="You have access to PurpleAir tools.",
)
result = await agent.run("List recent PurpleAir transactions")
print(result.output) Independent Platform Disclaimer: Vinkius is an independent platform and is not affiliated with, endorsed by, sponsored by, verified by, or otherwise authorized by PurpleAir. 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 PurpleAir MCP in Pydantic AI
Use it with your favorite AI tools
Connect this server to Cursor, Claude, VS Code, and more.
Start using the PurpleAir MCP today
We host it, we monitor it, we maintain it. You just paste one token.