A Model Context Protocol server implementation with FastAPI
0 stars
Python
Updated Mar 24, 2025
Documentation
Model Context Protocol Server
A FastAPI-based implementation of a Model Context Protocol (MCP) server that handles model context management, session handling, and protocol operations.
Features
- FastAPI-based REST API server
- Model context management
- Session handling and persistence
- WebSocket support for real-time updates
- Authentication and authorization
- Request validation and error handling
- Swagger/OpenAPI documentation
- Docker support
Project Structure
code
mcp-protocol-server/
├── app/
│ ├── __init__.py
│ ├── main.py
│ ├── config.py
│ ├── core/
│ │ ├── __init__.py
│ │ ├── context.py
│ │ ├── session.py
│ │ └── protocol.py
│ ├── api/
│ │ ├── __init__.py
│ │ ├── endpoints/
│ │ │ ├── __init__.py
│ │ │ ├── context.py
│ │ │ └── session.py
│ │ └── dependencies.py
│ ├── models/
│ │ ├── __init__.py
│ │ ├── context.py
│ │ └── session.py
│ └── utils/
│ ├── __init__.py
│ └── security.py
├── tests/
│ ├── __init__.py
│ ├── conftest.py
│ ├── test_context.py
│ └── test_session.py
├── docker/
│ ├── Dockerfile
│ └── docker-compose.yml
├── requirements.txt
├── .env.example
└── README.mdInstallation
1. Clone the repository:
bash
git clone https://github.com/tian1ll1/mcp-protocol-server.git
cd mcp-protocol-server2. Create and activate a virtual environment:
bash
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate3. Install dependencies:
bash
pip install -r requirements.txt4. Copy the example environment file and configure your settings:
bash
cp .env.example .envRunning the Server
Development Mode
bash
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000Production Mode
bash
uvicorn app.main:app --host 0.0.0.0 --port 8000 --workers 4Using Docker
bash
docker-compose up -dAPI Documentation
Once the server is running, you can access the API documentation at:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
Testing
Run the test suite:
bash
pytestConfiguration
The server can be configured using environment variables or a .env file. See .env.example for available options.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Similar MCP
Based on tags & features
Trending MCP
Most active this week