MCP_Projects
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 serverslangchain- For integration with language modelslangchain-mcp-adapters- Bridge between LangChain and MCPmcp- Official MCP specification implementationagentic-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):
uv venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activateOr using traditional venv:
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()decoratorFetch 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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kritadnya/MCP_Projects'
If you have feedback or need assistance with the MCP directory API, please join our Discord server