Skip to main content
Glama
AnushkaKhadatkar

meals-mcp-server

README.md
# šŸ½ļø meals-mcp-server

A Model Context Protocol (MCP) server that connects **Claude AI** to a live meals database. Ask Claude anything about meals — search by name, ingredient, or ID, or get a random meal suggestion — all through natural language.

---

## šŸ“ Project Structure

```
meals-mcp-server/
│
ā”œā”€ā”€ meals_server.py        # MCP server — all tools defined here
ā”œā”€ā”€ requirements.txt       # Python dependencies
ā”œā”€ā”€ README.md
└── screenshots/
    ā”œā”€ā”€ mcp_server.png
    ā”œā”€ā”€ claude_connect.png
    ā”œā”€ā”€ meal_by_name.png
    ā”œā”€ā”€ meal_by_ingredient.png
    ā”œā”€ā”€ meal_by_id.png
    └── random_meal.png
```

---

## āš™ļø Setup & Installation

### 1. Clone the repo

```bash
git clone https://github.com/YOUR-USERNAME/meals-mcp-server.git
cd meals-mcp-server
```

### 2. Create a virtual environment

```bash
python -m venv venv
source venv/bin/activate        # Mac/Linux
venv\Scripts\activate           # Windows
```

### 3. Install dependencies

```bash
pip install -r requirements.txt
```

### 4. Run the server

```bash
python meals_server.py
```

---

## šŸ”Œ Connect to Claude Desktop

1. Open **Claude Desktop → Settings → Developer**
2. Click **Edit Config** to open `claude_desktop_config.json`
3. Add the following (replace the path with your actual path):

```json
{
  "mcpServers": {
    "meals": {
      "command": "/Users/spartan/Desktop/DATA 236 (Distributed)/Homework/HW 5/part 2/venv/bin/python",
      "args": [
        "/Users/spartan/Desktop/DATA 236 (Distributed)/Homework/HW 5/part 2/meals_server.py"
      ]
    }
  },
  "preferences": {
    "coworkWebSearchEnabled": true,
    "sidebarMode": "chat",
    "coworkScheduledTasksEnabled": false
  }
}
```

4. **Restart Claude Desktop**
5. The meals tools will appear in Claude's tool panel āœ…

---

## 🧰 Available Tools

| Tool | Description |
|------|-------------|
| `meal_by_name` | Search for meals by name |
| `meal_by_ingredient` | Find meals containing a specific ingredient |
| `meal_by_id` | Get full details of a meal by its ID |
| `random_meal` | Fetch a random meal suggestion |

---

## šŸ“ø Screenshots

### āœ… Claude Connected to Meals Server
![Claude Connect](screenshots/claude_connect.png)

### šŸ–„ļø MCP Server Running in Claude
![MCP Server](screenshots/mcp_server.png)

### šŸ” Search Meals by Name
![Meal by Name](screenshots/meal_by_name_mcp.png)
![Meal by Name](screenshots/meal_by_name_1.png)
![Meal by Name](screenshots/meal_by_name_2.png)

### 🄦 Search by Ingredient
![Meal by Ingredient](screenshots/meal_by_ingredient_mcp.png)
![Meal by Ingredient](screenshots/meal_by_ingredient.png)

### šŸ“‹ Meal Details by ID
![Meal by ID](screenshots/meal_by_id.png)
![Meal by ID](screenshots/meal_by_id_1.png)
![Meal by ID](screenshots/meal_by_id_2.png)

### šŸŽ² Random Meal
![Random Meal](screenshots/random_meal_claude.png)

---

## šŸ› ļø Built With

- [MCP (Model Context Protocol)](https://modelcontextprotocol.io) — Claude tool integration
- [TheMealDB API](https://www.themealdb.com/api.php) — Meals data source
- Python + httpx

---

## šŸ‘¤ Author

**Anushka Khadatkar**  
- GitHub: [AnushkaKhadatkar](https://github.com/AnushkaKhadatkar)
- Email: Anushkak1202@gmail.com
- LinkedIn: [Anushka Khadatkar](https://www.linkedin.com/in/anushka-khadatkar/)
- Medium: [Anushka Khadatkar] (https://medium.com/@anushkak1202)

---