Cover image
Try Now
2025-04-08

3 years

Works with Finder

1

Github Watches

0

Github Forks

0

Github Stars

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

  1. 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
  1. 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
  1. 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 items
  • GET /api/v1/items/{item_id}: Get a specific item
  • POST /api/v1/items/: Create a new item
  • PUT /api/v1/items/{item_id}: Update an item
  • DELETE /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

  1. Create the model in models/
  2. Create the provider in providers/
  3. Create the controller in controllers/
  4. Create the API endpoints in api/v1/

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

License

This project is licensed under the terms of the LICENSE file included in the repository.

相关推荐

  • https://maiplestudio.com
  • Find Exhibitors, Speakers and more

  • Yusuf Emre Yeşilyurt
  • I find academic articles and books for research and literature reviews.

  • https://suefel.com
  • Latest advice and best practices for custom GPT development.

  • Carlos Ferrin
  • Encuentra películas y series en plataformas de streaming.

  • Joshua Armstrong
  • Confidential guide on numerology and astrology, based of GG33 Public information

  • https://zenepic.net
  • Embark on a thrilling diplomatic quest across a galaxy on the brink of war. Navigate complex politics and alien cultures to forge peace and avert catastrophe in this immersive interstellar adventure.

  • Emmet Halm
  • Converts Figma frames into front-end code for various mobile frameworks.

  • Elijah Ng Shi Yi
  • Advanced software engineer GPT that excels through nailing the basics.

  • 林乔安妮
  • A fashion stylist GPT offering outfit suggestions for various scenarios.

  • 田中 楓太
  • A virtual science instructor for engaging and informative lessons.

  • 1Panel-dev
  • 💬 MaxKB is a ready-to-use AI chatbot that integrates Retrieval-Augmented Generation (RAG) pipelines, supports robust workflows, and provides advanced MCP tool-use capabilities.

  • ShrimpingIt
  • Micropython I2C-based manipulation of the MCP series GPIO expander, derived from Adafruit_MCP230xx

  • open-webui
  • User-friendly AI Interface (Supports Ollama, OpenAI API, ...)

  • GLips
  • MCP server to provide Figma layout information to AI coding agents like Cursor

  • Dhravya
  • Collection of apple-native tools for the model context protocol.

  • adafruit
  • Python code to use the MCP3008 analog to digital converter with a Raspberry Pi or BeagleBone black.

    Reviews

    1 (1)
    Avatar
    user_I86tO2kU
    2025-04-17

    I've been using code-mcp-server by Protagonistss for a while now, and it has truly enhanced my development workflow. It's user-friendly, robust, and integrates seamlessly into my projects. I highly recommend it to anyone looking for a reliable multi-channel processing server for their coding needs. Check it out on GitHub!