README.md•2.78 kB
# Grocery Search MCP Server
An MCP (Model Context Protocol) server that provides grocery price and nutritional information search capabilities. This server allows AI agents to search for food products, compare prices, and analyze nutritional content across different grocery stores.
## Features
- **Product Search**: Search for grocery items by name across supported stores
- **Price Comparison**: Get current pricing information for food products
- **Nutritional Analysis**: Retrieve protein, calorie, and other macro information
- **Protein-per-Dollar Ranking**: Automatically rank products by protein content per dollar spent
- **Store Support**: Currently supports Trader Joe's (more stores coming soon)
## Installation
1. Clone the repository:
```bash
git clone <repository-url>
cd MCP_Food_Search
```
2. Install dependencies:
```bash
pip install -r requirements.txt
```
Or install in development mode:
```bash
pip install -e .
```
## Usage
### Running the MCP Server
Start the server using:
```bash
python -m grocery_search_mcp.server
```
Or using the script entry point:
```bash
grocery-search-mcp
```
### Testing the Implementation
Run the test script to verify functionality:
```bash
python test_server.py
```
### MCP Tool Usage
The server provides one main tool:
#### `GroceryPrices.search`
Search for grocery items with price and nutritional information.
**Parameters:**
- `query` (required): Food or product name to search for
- `store` (optional): Store to search, defaults to "trader_joes"
**Example:**
```json
{
"query": "protein bar",
"store": "trader_joes"
}
```
**Response:**
Returns a formatted list of products with:
- Product name and brand
- Price and package size
- Protein content and calories
- Protein-per-dollar ratio
- Nutritional information status
## Architecture
The server consists of several key components:
- **MCP Server** (`server.py`): Main MCP protocol implementation
- **Data Models** (`models.py`): Pydantic models for requests/responses
- **Scrapers** (`scraper.py`): Web scraping logic for different stores
- **Nutrition Estimation**: Basic nutritional information estimation
## Current Implementation
This initial version includes:
- ✅ Basic MCP server setup
- ✅ Trader Joe's product search (mock data for now)
- ✅ Nutritional estimation based on product names
- ✅ Protein-per-dollar calculation
- ✅ Error handling and logging
## Future Enhancements
- Real web scraping implementation
- Integration with USDA FoodData Central API
- Redis caching for price data
- Additional store support (Safeway, Kroger, etc.)
- Real-time inventory checking
- Advanced nutritional analysis
## Contributing
This is a learning project. Feel free to submit issues and enhancement requests.
## License
MIT License