MCP Client-Server Python logo

MCP Client-Server Python

by sofianhw

This project demonstrates a simple client-server implementation using the Model Context Protocol (MCP). It allows LLMs to interact with external tools and resources in a standardized way.

View on GitHub

Last updated: N/A

MCP Client-Server Python Example

This project demonstrates a simple client-server MCP.


What is MCP (Model Context Protocol)?

MCP is an open protocol introduced by Anthropic to enable large language models (LLMs) to interact with external tools, APIs, and resources in a standardized, extensible way.
It facilitates secure, multi-channel communication between AI models and external systems, supporting advanced agentic workflows and tool use.

šŸ”— Anthropic's announcement
šŸ”— MCP documentation


Features

  • MCP Server: Exposes tools (e.g., addition) and resources (e.g., greetings) via SSE.
  • MCP Client: Connects to the server, lists available tools, and interacts using OpenAI's chat completions.
  • OpenAI Integration: Uses OpenAI's GPT models to process user queries and call server tools as needed.

Requirements

Project Structure

.
ā”œā”€ā”€ client.py      # MCP client implementation
ā”œā”€ā”€ server.py      # MCP server implementation
ā”œā”€ā”€ pyproject.toml # Project metadata and dependencies
ā”œā”€ā”€ .env           # Environment variables (not committed)
└── README.md      # This file

Install dependencies with uv:

uv sync

(This will install all dependencies as specified in uv.lock.)


Setup

  1. Environment Variables

    Create a .env file in the project directory:

    OPENAI_API_KEY=your-openai-api-key
    MCP_SSE_URL=http://localhost:8080/sse
    
  2. Start the Server

    uv run server.py --host 0.0.0.0 --port 8080
    

    The server exposes tools and resources via SSE at /sse.

  3. Run the Client

    In another terminal:

    uv run client.py
    

    The client will connect to the server, list available tools, and start an interactive chat loop.


Usage

  • Type your queries in the client prompt.
  • The client will use OpenAI to process your query and call server tools if needed.
  • Type quit to exit the client.