E-commerce Order Management MCP Server
README.md
# MCP_SERVER – E-commerce Order Management using FastMCP
## Overview
This project demonstrates how to build a Remote MCP (Model Context Protocol) Server and Client using FastAPI and FastMCP.
The MCP Server exposes tools for:
* Fetching order status
* Checking refund eligibility
The FastAPI Client communicates with the MCP Server and exposes REST APIs that can be consumed by external applications.
---
## Architecture
```text
User
│
▼
FastAPI Client Service
│
▼
FastMCP Client
│
▼
Remote MCP Server
│
▼
MySQL Database
```
---
## Features
* Remote MCP Server using FastMCP
* FastAPI Client Service
* MySQL Database Integration
* Order Status Retrieval
* Refund Eligibility Check
* Tool-based MCP Communication
* Clean Service-Oriented Architecture
---
## Project Structure
```text
MCP_SERVER/
│
├── client.py
├── server.py
├── requirements.txt
├── README.md
└── database/
└── orders.sql
```
---
## Technologies Used
* Python
* FastAPI
* FastMCP
* MySQL
* PyMySQL
* Uvicorn
---
## Database Schema
### orders Table
| Column | Type |
| ------------- | ------- |
| order_id | VARCHAR |
| customer_name | VARCHAR |
| product_name | VARCHAR |
| status | VARCHAR |
| order_date | DATE |
Example:
```sql
CREATE TABLE orders (
order_id VARCHAR(20) PRIMARY KEY,
customer_name VARCHAR(100),
product_name VARCHAR(100),
status VARCHAR(50),
order_date DATE
);
```
---
## Installation
### Clone Repository
```bash
git clone https://github.com/sourabhbagda24/MCP_SERVER.git
cd MCP_SERVER
```
### Create Virtual Environment
```bash
python -m venv venv
```
Activate:
Windows
```bash
venv\Scripts\activate
```
Linux / Mac
```bash
source venv/bin/activate
```
### Install Dependencies
```bash
pip install -r requirements.txt
```
---
## Configure Database
Update MySQL credentials inside the server file:
```python
orders_db = pymysql.connect(
host="localhost",
user="root",
password="your_password",
database="MCP"
)
```
---
## Run MCP Server
```bash
python server.py
```
Server starts at:
```text
http://localhost:8001/mcp
```
---
## Run FastAPI Client
```bash
uvicorn client:app --reload --port 8000
```
Client API:
```text
http://localhost:8000
```
---
## Available APIs
### Get Order Status
```http
GET /order/{order_id}
```
Example:
```http
GET /order/ORD001
```
Response:
```json
{
"order_id": "ORD001",
"customer_name": "John",
"product_name": "Laptop",
"status": "Delivered",
"order_date": "2026-08-01"
}
```
---
### Check Refund Eligibility
```http
GET /order/{order_id}/refund-check
```
Example:
```http
GET /order/ORD001/refund-check
```
Response:
```json
{
"order_id": "ORD001",
"eligible": true,
"days_since_order": 2,
"reason": "Delivered within 7 days"
}
```
---
## MCP Tools
### get_order_status
Returns complete order information.
Input:
```json
{
"order_id": "ORD001"
}
```
---
### check_refund_eligibility
Checks whether an order qualifies for a refund.
Input:
```json
{
"order_id": "ORD001"
}
```
---
## Learning Outcomes
Through this project you will learn:
* MCP (Model Context Protocol)
* Remote MCP Communication
* FastMCP Tool Development
* FastAPI Integration
* MySQL Connectivity
* Service-Based Architecture
* API Development
---
## Author
Sourabh Sharma
GitHub:
https://github.com/sourabhbagda24
LinkedIn:
https://www.linkedin.com/in/sourabh-sharma-90758232b
---
⭐ If you found this project useful, consider giving it a star.
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues