MCP_Projects
by kritadnya
README.md
From creating my first MCP server to deploying production-ready applications using Docker and cloud-native architectures.
## š¤ What is MCP?
**Model Context Protocol (MCP)** is a standardized protocol that enables seamless communication between AI models and external tools/systems. It allows:
- š **Tool Integration**: Connect AI models to custom tools and services
- š **Universal Communication**: Standardized way for LLMs to interact with resources
- š **Multi-Transport Support**: Use stdio, HTTP, or custom transports
- š”ļø **Type-Safe**: Full type support and validation
- š” **Remote Execution**: Execute tools on remote servers
## ā
Prerequisites
- **Python 3.11+** (MCP requires modern Python)
- **Git** for version control
- **Docker** (for Chapter 6)
- **Basic Python knowledge** (async/await, decorators)
- **API familiarity** (helpful for understanding HTTP transport)
- **Terminal/Command Line** comfort
The project includes:
- `fastmcp` - FastMCP framework for building MCP servers
- `langchain` - For integration with language models
- `langchain-mcp-adapters` - Bridge between LangChain and MCP
- `mcp` - Official MCP specification implementation
- `agentic-terminal` - Terminal-based MCP tools
## š ļø Technologies
| Technology | Purpose | Version |
|-----------|---------|---------|
| **FastMCP** | MCP framework | 3.2.4+ |
| **Python** | Programming language | 3.12+ |
| **Docker** | Containerization | Latest |
| **LangChain** | LLM framework integration | 1.2.17+ |
| **Async/Await** | Concurrent operations | Built-in Python |
| **HTTP** | Network transport | Standard |
| **Stdio** | Local process communication | Standard |
| **UV** | Package management | Latest |
### Setting Up Python Environment
Using `uv` (recommended - faster than pip):
```bash
uv venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
```
Or using traditional venv:
```bash
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
```
## š Project Structure
### **1: Creating Your First MCP Server** š±
**File**: `1_Create_MCP/`
The fundamentals of MCP by building a basic server:
- **1_first_mcp_server_stdio.py**: Build a simple MCP server using stdio transport
- Basic tool definition with `@mcp.tool()` decorator
- Fetch and process data patterns
- Running server locally
- **2_python_client.py**: Create a Python client to connect to the MCP server
- Understand client-server communication
- Making tool calls programmatically
- **3_langchain_client.py**: Integrate MCP with LangChain
- Use MCP tools with language models
- Automatic tool discovery and binding
**Key Learnings**:
- FastMCP framework basics
- Stdio transport protocol
- Async function handling
- Tool documentation with docstrings
---
## šļø Project Architecture
```
MCP_Projects/
ā
āāā 1_Create_MCP/ # Basics: Stdio-based MCP
ā āāā 1_first_mcp_server_stdio.py
ā āāā 2_first_python_client.py
ā āāā 3_langchain_client.py
ā
āāā 2_HTTP_MCP/ # Basics: HTTP-based MCP
ā āāā 1_http_mcp_server.py
ā
āāā pyproject.toml # Main project config
āāā package.json # NPM metadata
āāā main.py # Entry point
āāā README.md # This file
```
## š Resources
### Official Documentation
- [MCP Specification](https://modelcontextprotocol.io/)
- [FastMCP Documentation](https://fastmcp.ai/)
- [LangChain Integration](https://python.langchain.com/docs/integrations/tools/)
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues