Alternative implementation of the Anthropic Model Context Protocol (MCP) course project using OpenAI API instead of Claude. Learn how to build MCP clients, servers, tools, and prompts with Python while following the official MCP architecture for AI agents and LLM tool integration.
MCP Chat
MCP Chat is a command-line interface application that enables interactive chat with AI models through the OpenAI API. The application supports document retrieval, command-based prompts, and extensible tool integrations via the MCP (Model Control Protocol) architecture.
Prerequisites
- Python 3.10+
- OpenAI API Key
Setup
Step 1: Configure the environment variables
- Create or edit the
.envfile in the project root and verify that the following variables are set correctly:
OPENAI_API_KEY="" # Your OpenAI API key (do not commit real keys)
OPENAI_MODEL="gpt-4o-mini" # Optional
USE_UV="0" # Optional: set to 1 if you want main.py to start mcp_server via uv
Step 2: Install dependencies
Option 1: Setup with uv (Recommended)
uv is a fast Python package installer and resolver.
- Install uv, if not already installed:
pip install uv
- Create and activate a virtual environment:
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
- Install dependencies:
uv pip install -e .
- Run the project
uv run main.py
Option 2: Setup without uv
- Create and activate a virtual environment:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
- Install dependencies:
pip install -e .
- Run the project
python main.py
Usage
Basic Interaction
Simply type your message and press Enter to chat with the model.
Document Retrieval
Use the @ symbol followed by a document ID to include document content in your query:
> Tell me about @deposition.md
Commands
Use the / prefix to execute commands defined in the MCP server:
> /summarize deposition.md
Commands will auto-complete when you press Tab.
Development
Adding New Documents
Edit the mcp_server.py file to add new documents to the docs dictionary.
Implementing MCP Features
To fully implement the MCP features:
- Complete the TODOs in
mcp_server.py - Implement the missing functionality in
mcp_client.py
Linting and Typing Check
There are no lint or type checks implemented.