Post

Battle of the MCP Agents: mcp-use vs Pydantic AI vs Agno

Battle of the MCP Agents: mcp-use vs Pydantic AI vs Agno

A comprehensive speed test and developer experience comparison of three leading MCP (Model Context Protocol) frameworks for building AI agents with tool access.

The Challenge

We set out to answer a simple question: Which MCP framework gives you the best developer experience and performance for building AI agents that can search Airbnb listings?

Using the same model (moonshotai/kimi-k2-instruct via Groq) and identical search criteria (“Find a place in Barcelona, Spain for July 18-19, 2025 for 2 adults”), we tested three popular frameworks:

  • mcp-use: Unified MCP client library
  • Pydantic AI: Type-safe AI framework with MCP support
  • Agno: Lightweight agent framework

The Contenders

🏗️ mcp-use - The Unified Approach

1
2
3
4
5
6
7
8
from langchain_groq import ChatGroq
from mcp_use import MCPAgent, MCPClient

async def main():
    client = MCPClient.from_config_file("airbnb_mcp.json")
    llm = ChatGroq(model="moonshotai/kimi-k2-instruct")
    agent = MCPAgent(llm=llm, client=client)
    result = await agent.run("Find me a place in Barcelona, Spain for July 18-19, 2025 for 2 adults")

🔧 Pydantic AI - The Type-Safe Option

1
2
3
4
5
6
7
8
9
10
11
12
from pydantic_ai import Agent
from pydantic_ai.mcp import MCPServerStdio

mcp_airbnb = MCPServerStdio(
    command="npx", 
    args=["-y", "@openbnb/mcp-server-airbnb"]
)

agent = Agent(
    "groq:moonshotai/kimi-k2-instruct",
    mcp_servers=[mcp_airbnb]
)

Agno - The Lightweight Champion

1
2
3
4
5
6
7
8
9
from agno.agent import Agent
from agno.models.groq import Groq
from agno.tools.mcp import MCPTools

async with MCPTools("npx -y @openbnb/mcp-server-airbnb") as mcp_tools:
    agent = Agent(
        model=Groq(id="moonshotai/kimi-k2-instruct"),
        tools=[mcp_tools]
    )

Speed Test Results

FrameworkTotal TimeResponse TimeRelative Speed
mcp-use9.9s7.6s🥇 Fastest
Pydantic AI9.1s7.8s🥈 Close Second
Agno13.2s9.3s🥉 Slower

Code Length Comparison

FrameworkLines of CodeComplexity
Agno13 lines🥇 Minimal
mcp-use17 lines🥈 Moderate
Pydantic AI23 lines🥉 Verbose

Developer Experience Deep Dive

🏆 mcp-use - Best Overall Experience

Pros:

  • Rich, human-readable output with markdown formatting and clear categorization
  • Excellent error handling and progress reporting
  • Comprehensive listing details including ratings, bed counts, and direct links
  • Fastest performance with specific dates (9.9s total)
  • Intuitive API with clear separation of concerns

Cons:

  • Slightly more boilerplate than Agno
  • Requires understanding of MCP session management

Sample Output:

1
2
3
4
## Budget-Friendly Options:
1. **"Cozy studio in Gothic Quarter"** - $65/night
   - 1 double bed
   - [View Listing](https://www.airbnb.com/rooms/41203028)

🔧 Pydantic AI - Type Safety Champion

Pros:

  • Excellent type safety throughout the codebase
  • Clean, Pythonic API design
  • Good documentation and examples
  • Fast initialization (9.1s total)

Cons:

  • Less rich output compared to mcp-use
  • More verbose setup requiring explicit server configuration
  • Timeout issues with some MCP servers

Agno - Simplicity King

Pros:

  • Shortest code (13 lines total)
  • Clean, minimal API that’s easy to learn
  • Good for quick prototypes and simple use cases
  • Shows tool calls for transparency

Cons:

  • Slower performance (13.2s total)
  • Basic output formatting without rich markdown
  • Less comprehensive results compared to others

Real-World Test Results

All three frameworks successfully found 8-9 listings in Barcelona, Spain for July 18-19, 2025, with prices ranging from $45-$250/night. The quality of the underlying MCP server integration was consistent across all frameworks, but the presentation and user experience varied significantly.

When to Use Each Framework

Use mcp-use when:

  • You want the best user experience and rich output
  • Building production applications where presentation matters
  • You need comprehensive error handling and progress reporting
  • Performance with specific queries is critical

Use Pydantic AI when:

  • You’re already in the Pydantic ecosystem
  • Type safety is a priority
  • Building complex, type-safe applications
  • You value clean, Pythonic APIs

Use Agno when:

  • You need maximum simplicity and minimal code
  • Building quick prototypes or proofs of concept
  • Development speed is more important than performance
  • You prefer transparent tool execution

The Verdict

mcp-use emerges as the clear winner for most use cases, offering the best combination of performance, rich output, and developer experience. While Agno wins on code brevity and Pydantic AI excels at type safety, mcp-use provides the most polished end-to-end experience for building AI agents with MCP tool access.

Recommendation: Start with mcp-use for production applications, fall back to Agno for rapid prototyping, and choose Pydantic AI when type safety is paramount.

What’s Next?

I’m continuing to explore MCP frameworks and will be testing:

  • Performance with different LLM providers
  • Complex multi-tool scenarios
  • Production deployment patterns
  • Cost optimization strategies

Follow me @AIwithTim for more AI framework comparisons and developer insights!


All tests performed on macOS with Python 3.13, using Groq’s moonshotai/kimi-k2-instruct model and the official Airbnb MCP server.

This post is licensed under CC BY 4.0 by the author.