Skip to main content
Glama
sharavanask

Amazon Product Search MCP

by sharavanask
README.md
# Amazon Product Search MCP Server

The site is live here ! : https://shopassist-sharavana.streamlit.app/

An MCP (Model Context Protocol) server that provides AI-powered Amazon product search and recommendations using FastMCP.



## Features

- πŸ” Smart product search with Amazon API
- πŸ€– AI-powered product recommendations using Hugging Face
- πŸ’° Price range filtering
- πŸ“‹ Feature-based matching
- 🎯 Tailored recommendations for Small/Medium Enterprises

## Installation

1. Clone this repository and navigate to the project directory
2. Install dependencies:
   ```bash
   # Using uv (recommended)
   uv sync
   
   # Or using pip
   pip install -r requirements.txt
   ```

## Server Setup

### Running the MCP Server

```bash
# Activate your virtual environment
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Run the server
python main.py
```

The server exposes one main tool:
- `getdata`: Search Amazon products with AI recommendations

## Client Options

We provide multiple client implementations to interact with your MCP server:

### 1. Python Interactive Client (`client.py`)

A full-featured Python client with examples and interactive mode.

```bash
python client.py
```

Features:
- Pre-built examples (laptops, smartphones)
- Interactive search mode
- Real-time communication with MCP server

### 2. Command Line Interface (`cli_client.py`)

Quick command-line searches for automation and scripting.

```bash
# Basic search
python cli_client.py "laptop"

# With features and price range
python cli_client.py "laptop" --features "8GB RAM, SSD storage" --min-price 30000 --max-price 80000

# Smartphone search
python cli_client.py "smartphone" --features "good camera, 5G" --min-price 15000 --max-price 50000
```

Arguments:
- `product`: Product to search for (required)
- `--features`, `-f`: Specific features to look for
- `--min-price`, `-min`: Minimum price in rupees
- `--max-price`, `-max`: Maximum price in rupees

### 3. Web Interface (`web_client.py`)

A beautiful web interface with REST API backend.

```bash
# Install additional dependencies
pip install fastapi uvicorn

# Run the web server
python web_client.py
```

Then open http://localhost:8000 in your browser for a user-friendly interface.

API Endpoints:
- `GET /`: Web interface
- `POST /search`: REST API for product search
- `GET /health`: Health check

### 4. MCP CLI Integration

You can also use the MCP CLI to interact with your server:

```bash
# Install MCP CLI if not already installed
pip install mcp

# Connect to your server
mcp connect stdio -- python main.py
```

## Usage Examples

### Example 1: Laptop Search
```json
{
    "product": "laptop",
    "specific_features": "8GB RAM, SSD storage, good for programming",
    "min_price": 30000,
    "max_price": 80000
}
```

### Example 2: Smartphone Search
```json
{
    "product": "smartphone",
    "specific_features": "good camera, long battery life, 5G support",
    "min_price": 15000,
    "max_price": 50000
}
```

### Example 3: Budget Headphones
```json
{
    "product": "wireless headphones",
    "specific_features": "noise cancellation, comfortable",
    "min_price": 1000,
    "max_price": 5000
}
```

## Configuration

### API Keys Required

Make sure you have:
1. **Hugging Face API Token**: Update `HF_API_TOKEN` in `server/buy.py`
2. **RapidAPI Key**: Update the `x-rapidapi-key` in `server/buy.py`

### Customization

You can customize the AI recommendation prompt in the `decision_agent` function in `server/buy.py`.

## Integration with Claude Desktop

To use this MCP server with Claude Desktop, add this configuration to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "amazon-search": {
      "command": "python",
      "args": ["path/to/your/main.py"],
      "env": {}
    }
  }
}
```

## Troubleshooting

### Common Issues

1. **Import errors**: Make sure you're in the correct virtual environment
2. **API failures**: Check your API keys and internet connection
3. **Connection issues**: Ensure the MCP server is running before starting clients

### Error Messages

- "No result": Usually indicates API issues or no products found
- "Connection refused": MCP server is not running
- "Tool not found": Server initialization issue

## Development

### Adding New Features

1. Add new tools in `server/buy.py` using the `@mcp.tool()` decorator
2. Update client code to use new tools
3. Test with the interactive client first

### Testing

```bash
# Test the server directly
python -c "from server.buy import mcp; print('Server loads successfully')"

# Test with the interactive client
python client.py
```

## Architecture

```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   MCP Client    │◄──►│   MCP Server    │◄──►│  External APIs  β”‚
β”‚  (Your Choice)  β”‚    β”‚   (FastMCP)     β”‚    β”‚ (Amazon/HF AI)  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
       β”‚                        β”‚                        β”‚
       β–Ό                        β–Ό                        β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  β€’ client.py    β”‚    β”‚ β€’ Tool: getdata β”‚    β”‚ β€’ Amazon Search β”‚
β”‚  β€’ cli_client   β”‚    β”‚ β€’ AI Agent      β”‚    β”‚ β€’ HuggingFace   β”‚
β”‚  β€’ web_client   β”‚    β”‚ β€’ FastMCP       β”‚    β”‚ β€’ Recommendationsβ”‚
β”‚  β€’ Claude       β”‚    β”‚                 β”‚    β”‚                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```

## License

This project is open source. Please ensure you comply with the terms of service of the APIs used (Amazon, RapidAPI, Hugging Face).