MCP-Server

MuhammadShayanUmarX/MCP-Server

3.2

If you are the rightful owner of MCP-Server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

This project demonstrates the conversion of a FastAPI todo application into a Model Context Protocol (MCP) server, enabling interaction with MCP-compatible clients and AI assistants.

Tools
5
Resources
0
Prompts
0

Todo App - FastAPI to MCP Conversion

This project demonstrates how to create a FastAPI todo application and convert it to an MCP (Model Context Protocol) server. ss 1 ss 2 ss 3 ss 4

Project Structure

├── main.py              # FastAPI application
├── models.py            # Pydantic models for data validation
├── database.py          # In-memory database operations
├── mcp_server.py        # MCP server implementation
├── mcp_config.json     # MCP server configuration
├── test_mcp.py         # Test script for MCP server
├── requirements.txt    # Python dependencies
└── README.md           # This file

Features

FastAPI Application

  • RESTful API endpoints for todo management
  • CRUD operations (Create, Read, Update, Delete)
  • Data validation with Pydantic models
  • In-memory storage for simplicity

MCP Server

  • Converts FastAPI functionality to MCP tools
  • 5 available tools: list_todos, get_todo, create_todo, update_todo, delete_todo
  • Compatible with MCP clients and AI assistants

Installation

  1. Create and activate a virtual environment:
python -m venv venv
# On Windows:
.\venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate
  1. Install dependencies:
pip install -r requirements.txt

Usage

Running the FastAPI Application

python main.py

The API will be available at http://localhost:8000

API Endpoints:

  • GET / - Welcome message
  • GET /todos - List all todos
  • GET /todos/{id} - Get specific todo
  • POST /todos - Create new todo
  • PUT /todos/{id} - Update todo
  • DELETE /todos/{id} - Delete todo

Running the MCP Server

python mcp_server.py

The MCP server provides these tools:

  • list_todos - Get all todos
  • get_todo - Get specific todo by ID
  • create_todo - Create new todo
  • update_todo - Update existing todo
  • delete_todo - Delete todo

Testing the MCP Server

python test_mcp.py

This will run a comprehensive test of all MCP server functionality.

API Examples

FastAPI Examples

Create a todo:

curl -X POST "http://localhost:8000/todos" \
     -H "Content-Type: application/json" \
     -d '{"title": "Learn MCP", "description": "Study Model Context Protocol", "status": "pending"}'

Get all todos:

curl "http://localhost:8000/todos"

MCP Tool Examples

The MCP server can be used with MCP-compatible clients. The tools accept JSON arguments and return structured responses.

Data Models

Todo Model

  • id: Integer (auto-generated)
  • title: String (required)
  • description: String (optional)
  • status: Enum (pending, in_progress, completed)
  • created_at: DateTime (auto-generated)
  • updated_at: DateTime (auto-updated)

Status Values

  • pending: Todo is not started
  • in_progress: Todo is being worked on
  • completed: Todo is finished

Development

The project uses:

  • FastAPI for the REST API
  • Pydantic for data validation
  • MCP for the protocol server
  • asyncio for asynchronous operations

Notes

  • The database is in-memory and will reset when the application restarts
  • The MCP server runs in stdio mode for easy integration
  • Both the FastAPI app and MCP server share the same data models and business logic

MCP-Server