- Explore MCP Servers
- MCP-Transition
Mcp Transition
What is Mcp Transition
MCP-Transition is a comprehensive tutorial that guides users through the process of transitioning from a naive AI agent to a sophisticated MCP-enabled agent in three stages, emphasizing the evolution of agent architecture and the mastery of the Model Context Protocol.
Use cases
Use cases include developing AI agents for data retrieval, integrating with external APIs for real-time data processing, and creating modular systems that leverage both local and remote tools for enhanced functionality.
How to use
Users can follow the step-by-step guide provided in the repository to build their agents, starting from a simple implementation and progressing through improved architectures, integrating remote services, and utilizing the official MCP library.
Key features
Key features include a structured approach to agent architecture evolution, mastery of the MCP protocol, production patterns for error handling and data structuring, and real-world integration with external APIs and distributed systems.
Where to use
MCP-Transition can be used in fields such as AI development, software engineering, and distributed systems, particularly where advanced agent architectures and protocol-driven designs are required.
Clients Supporting MCP
The following are the main client software that supports the Model Context Protocol. Click the link to visit the official website for more information.
Overview
What is Mcp Transition
MCP-Transition is a comprehensive tutorial that guides users through the process of transitioning from a naive AI agent to a sophisticated MCP-enabled agent in three stages, emphasizing the evolution of agent architecture and the mastery of the Model Context Protocol.
Use cases
Use cases include developing AI agents for data retrieval, integrating with external APIs for real-time data processing, and creating modular systems that leverage both local and remote tools for enhanced functionality.
How to use
Users can follow the step-by-step guide provided in the repository to build their agents, starting from a simple implementation and progressing through improved architectures, integrating remote services, and utilizing the official MCP library.
Key features
Key features include a structured approach to agent architecture evolution, mastery of the MCP protocol, production patterns for error handling and data structuring, and real-world integration with external APIs and distributed systems.
Where to use
MCP-Transition can be used in fields such as AI development, software engineering, and distributed systems, particularly where advanced agent architectures and protocol-driven designs are required.
Clients Supporting MCP
The following are the main client software that supports the Model Context Protocol. Click the link to visit the official website for more information.
Content
Step by Step to MCP Glory
A Comprehensive Tutorial for Building Model Context Protocol (MCP) Enabled AI Agents
🌟 Overview
This repository provides a complete, hands-on journey from building a simple AI agent to creating sophisticated, distributed systems using the Model Context Protocol (MCP). Through 6 carefully crafted iterations, you’ll master the fundamental concepts and advanced patterns of MCP architecture.
🎯 What You’ll Learn
- Agent Architecture Evolution: From monolithic to modular, protocol-driven design
- MCP Protocol Mastery: stdio and SSE transports, tool discovery, session management
- Production Patterns: Error handling, structured data, multi-transport composition
- Real-world Integration: External APIs, remote services, distributed tool ecosystems
🗺️ The Journey
🏁 | Stage 1 | Naive Agent | Simple agent with hardcoded tools |
🔧 | Stage 2 | Improved Agent | Async patterns and code cleanup |
🔌 | Stage 3 | MCP Foundation | stdio server and custom MCP client |
📚 | Stage 4 | Official Library | Using Anthropic's MCP Python SDK |
🌐 | Stage 5 | Remote Services | SSE transport with ather API integration |
🌍 | Stage 6 | Multi-Transport | Unified agent with local + remote tools |
🚀 Quick Start
Prerequisites
- Python 3.8+
- API Keys: Tavily (b search), OpenatherMap (ather)
- OpenAI API access
1-Minute Setup
# Clone and setup
git clone <repository-url>
cd MCP-Transition
pip install -r requirements.txt
# Configure environment
cp .env.example .env
# Edit .env with your API keys
# Run any stage
python naive_agent.py # Stage 1
python improved_agent.py # Stage 2
python mcp_agent_sse.py # Stage 5 (requires ather server)
Environment Variables
# .env file
OPENAI_API_KEY=your_openai_key_here
TAVILY_API_KEY=your_tavily_key_here
OPENATHERMAP_API_KEY=your_ather_key_here
📖 Detailed Documentation
Document | Purpose | Audience |
---|---|---|
📋 Setup Guide | Complete installation and configuration | All users |
🎓 Step-by-Step Tutorial | Detailed code walkthrough with highlights | Developers |
📁 Repository Structure
MCP-Transition/ ├── README.md # This file ├── requirements.txt # Python dependencies ├── prompts.py # Shared prompt templates │ ├── 🏁 STAGE 1: Naive Implementation │ └── naive_agent.py # Basic agent with hardcoded tools │ ├── 🔧 STAGE 2: Improved Architecture │ └── improved_agent.py # Async patterns and cleanup │ ├── 🔌 STAGE 3: MCP Foundation │ ├── mcp_server_stdio.py # Local MCP server (stdio transport) │ └── mcp_client_stdio.py # Custom MCP client implementation │ ├── 📚 STAGE 4: Official Library │ └── mcp_agent_with_standard_client.py # Using official Anthropic MCP SDK │ ├── 🌐 STAGE 5: Remote Services │ ├── mcp_server_sse.py # Remote ather server (SSE transport) │ └── mcp_agent_sse.py # SSE-based agent │ ├── 🌍 STAGE 6: Multi-Transport │ └── mcp_agent_multi_transport.py # Unified local + remote agent │ └── docs/ # Detailed documentation ├── SETUP.md # Installation guide ├── TUTORIAL.md # Step-by-step code walkthrough ├── MCP_CONCEPTS.md # Protocol deep dive └── DEPLOYMENT.md # Production deployment
🎯 Stage Overview
Stage 1: Naive Implementation
File: naive_agent.py
- Basic PydanticAI agent with hardcoded tools
- Synchronous execution with async workarounds
- Direct API calls without abstraction
Why PydanticAI? I chose PydanticAI as the starting framework because it provides the cleanest, non-vendor-specific approach to building AI agents. Unlike framework-specific solutions, PydanticAI offers excellent separation beten conversation management and tooling, making it ideal for demonstrating MCP integration patterns.
Alternative Frameworks: This is just one of many possible implementations! For the same agent implemented across 8 different frameworks (LangChain, LangGraph, CrewAI, Llama-Index, OpenAI Assistants, Anthropic, and Atomic Agents), check out my Agent Framework Comparison Repository. You can use any of these as your starting point for MCP integration.
Key Concepts: Basic agent architecture, tool registration, conversation flow
Stage 2: Improved Architecture
File: improved_agent.py
- Proper async/await patterns
- Better error handling and type hints
- Cleaner code structure and formatting
Key Concepts: Async programming, code quality, maintainable architecture
Stage 3: MCP Foundation
Files: mcp_server_stdio.py
, mcp_client_stdio.py
- First MCP implementation using stdio transport
- Custom client with full protocol implementation
- Tool discovery and JSON-RPC 2.0 messaging
Key Concepts: MCP protocol, stdio transport, JSON-RPC, tool discovery
Stage 4: Official Library
File: mcp_agent_with_standard_client.py
- Replacement of custom client with official Anthropic MCP SDK
- Simplified codebase (~100 lines reduction)
- Production-ready protocol compliance
Key Concepts: Official libraries vs custom implementation, code simplification
Stage 5: Remote Services
Files: mcp_server_sse.py
, mcp_agent_sse.py
- HTTP-based MCP server with Server-Sent Events
- Real-world API integration (OpenatherMap)
- Remote deployment capabilities
Key Concepts: SSE transport, remote services, external API integration
Stage 6: Multi-Transport
File: mcp_agent_multi_transport.py
- Simultaneous connection to multiple MCP servers
- Mixed local (stdio) and remote (SSE) tools
- Unified tool interface and session management
Key Concepts: Multi-transport architecture, tool composition, distributed systems
🛠️ Available Tools by Stage
Stage | Tools | Transport | Location |
---|---|---|---|
1-2 | 📅 Date, 🔍 b Search | Direct calls | Local |
3-4 | 📅 Date, 🔍 b Search | stdio MCP | Local subprocess |
5 | 🌤️ Current ather, 📊 Forecast, 🗺️ Coordinates | SSE MCP | Remote HTTP server |
6 | 📅 Date, 🔍 b Search, 🌤️ Weather Tools | stdio + SSE MCP | Local + Remote |
🤝 Contributing
I welcome contributions! Here are some ways to help:
- 🐛 Bug Reports: Found an issue? Open an issue
- 💡 Feature Requests: Ideas for new stages or improvements
- 📖 Documentation: Help improve guides and examples
- 🔧 Code: Submit PRs for bug fixes or enhancements
Development Setup
# Fork and clone the repository
git clone https://github.com/yourusername/MCP-Transition.git
cd MCP-Transition
# Create a virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install development dependencies
pip install -r requirements.txt
pip install -r requirements-dev.txt # If available
# Run tests
python -m pytest tests/ # If tests are available
📚 Additional Resources
MCP Ecosystem
- Official MCP Specification - Complete protocol documentation
- Anthropic MCP Repository - Official Python SDK
- MCP Community - Community MCP servers
Related Technologies
- Pydantic AI - AI agent framework used in examples
- OpenAI API - Language model integration
- Tavily API - b search capabilities
📜 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Anthropic for creating the Model Context Protocol and providing excellent documentation
- Pydantic AI team for the elegant agent framework
- Community contributors who helped improve this tutorial
Ready to start your MCP journey?
DevTools Supporting MCP
The following are the main code editors that support the Model Context Protocol. Click the link to visit the official website for more information.