Skip to main content
Glama

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):

uv venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

Or 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() 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

Latest Blog Posts

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