Skip to main content
Glama
sourabhbagda24

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.