MCP Server
Protagonistss
README
MCP Server
A Model-Controller-Provider (MCP) architecture based server implementation using FastAPI.
Project Structure
.
├── api/ # API routes and endpoints
│ └── v1/ # API version 1
│ ├── __init__.py
│ └── items.py # Item endpoints
├── controllers/ # Business logic and request handlers
│ └── item_controller.py
├── providers/ # Data access and external service integrations
│ └── item_provider.py
├── models/ # Data models and database schemas
│ └── item.py
├── core/ # Core configurations and utilities
│ ├── config.py # Application configuration
│ └── database.py # Database configuration
├── main.py # Application entry point
├── requirements.txt # Project dependencies
├── environment.yml # Conda environment file
└── README.md # Project documentation
Features
- FastAPI-based REST API: High-performance, easy to use, fast to code
- MCP Architecture:
- Models: Data structures and database schemas
- Controllers: Business logic and request handling
- Providers: Data access and external service integration
- Modern Tech Stack:
- SQLAlchemy for ORM
- Pydantic for data validation
- FastAPI for API framework
- SQLite for development database
- API Features:
- Automatic OpenAPI documentation
- Request validation
- Response serialization
- CORS middleware
- Type checking
Setup
- Create a Conda environment:
# Create a new environment with Python 3.12
conda create -n codeMcpServer python=3.12
# Activate the environment
conda activate codeMcpServer
- Install dependencies:
# Using the provided environment file (recommended)
conda env create -f environment.yml
# OR using pip
pip install -r requirements.txt
# OR using conda with conda-forge channel
conda config --add channels conda-forge
conda install --file requirements.txt
- Run the server:
uvicorn main:app --reload
The server will start at http://localhost:8000
Dependencies
Key dependencies in this project:
- Python 3.12.9
- FastAPI 0.112.2
- SQLAlchemy 2.0.37
- Pydantic 2.11.2
- Uvicorn 0.32.1
- Python-dotenv 0.21.0
For a complete list, see environment.yml
or requirements.txt
.
Environment Management
Export Environment
To export your environment for sharing:
# Export full environment with exact versions (without prefix)
conda env export | grep -v "^prefix: " > environment.yml
# Or export only manually installed packages
conda env export --from-history > environment.yml
Import Environment
To recreate an environment from the exported file:
conda env create -f environment.yml
API Documentation
Once the server is running, you can access:
- Interactive API documentation (Swagger UI):
http://localhost:8000/docs
- Alternative API documentation (ReDoc):
http://localhost:8000/redoc
API Endpoints
Items API (/api/v1/items
)
GET /api/v1/items/
: List all itemsGET /api/v1/items/{item_id}
: Get a specific itemPOST /api/v1/items/
: Create a new itemPUT /api/v1/items/{item_id}
: Update an itemDELETE /api/v1/items/{item_id}
: Delete an item
Development
Project Organization
The project follows the MCP (Model-Controller-Provider) pattern:
- Models: Define data structures and database schemas
- Controllers: Handle business logic and request processing
- Providers: Manage data access and external service integration
Adding New Features
- Create the model in
models/
- Create the provider in
providers/
- Create the controller in
controllers/
- Create the API endpoints in
api/v1/
Contributing
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
License
This project is licensed under the terms of the LICENSE file included in the repository.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
MCP Package Docs Server
Facilitates LLMs to efficiently access and fetch structured documentation for packages in Go, Python, and NPM, enhancing software development with multi-language support and performance optimization.
Claude Code MCP
An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.
@kazuph/mcp-taskmanager
Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.
Linear MCP Server
Enables interaction with Linear's API for managing issues, teams, and projects programmatically through the Model Context Protocol.
mermaid-mcp-server
A Model Context Protocol (MCP) server that converts Mermaid diagrams to PNG images.
Jira-Context-MCP
MCP server to provide Jira Tickets information to AI coding agents like Cursor

Linear MCP Server
A Model Context Protocol server that integrates with Linear's issue tracking system, allowing LLMs to create, update, search, and comment on Linear issues through natural language interactions.

Sequential Thinking MCP Server
This server facilitates structured problem-solving by breaking down complex issues into sequential steps, supporting revisions, and enabling multiple solution paths through full MCP integration.