Skip to main content
Glama
README.md
# Product MCP Server

This project implements a simple **Model Context Protocol (MCP) server** using **FastMCP**, **Pydantic**, and **Uvicorn**.  
It exposes three tools:

- **Add Product**
- **Search Product**
- **Get Product by ID**

Products are stored in an **in-memory database**, making this ideal for demos, prototyping, or integrating with an MCP-compatible AI agent.

---

## Features

-   FastMCP-based MCP server  
-   Tool functions to:
  - Add a new product  
  - Search products by name or category  
  - Retrieve product details by ID  
-   Simple in-memory storage  
-   Runs over HTTP using Uvicorn  

##   Installation

### 1. Create a virtual environment

```bash
python3 -m venv venv
source venv/bin/activate
```
### 2. Install dependencies
```bash
pip install -r requirements.txt
```
##   Running the Server

Start the MCP server:
```bash
python main.py
```


The server will start on:
```bash
http://localhost:8000
```

 Available Tools
### 1. add_product

Adds a new product to the in-memory catalog.

Input Model (AddProductInput)
```json

{
  "name": "Laptop",
  "category": "Electronics",
  "price": 1299.99,
  "stock": 5,
  "description": "Powerful gaming laptop"
}
```

### 2. search_product

Searches for products by name or category.

Input Model (SearchInput)
```json

{
  "query": "laptop"
}
```

### 3. get_product

Gets a product by its unique ID.

Input Model (GetProductInput)
```json

{
  "product_id": "uuid-here"
}
```


##   MCP Client Example
Run the client
```bash

python client.py
```