# Where are our chocolate chips stored?

> A real Claude session on a Fishbowl database (ILC's demo company, sample data), connected through ILC MCP for Fishbowl. The answer below is what the AI said; the queries are what it ran. Page: https://israellopezconsulting.com/fishbowl-mcp/questions/chocolate-chips-location

## Question

Where are our chocolate chips stored?

### Answer

Chocolate chips (part **CR403**) are in four locations across three warehouses, 349.5 lbs in total:

| Warehouse | Location | On hand |
|---|---|---|
| LA | Stock | 116.5 lbs |
| LA | Stock 100 | 47.5 lbs |
| MI | Stock Room | 116.5 lbs |
| Main | Receiving | 69 lbs |

Main's 69 lbs is still sitting in Receiving and hasn't been put away. None of the stock is committed to orders.

If you meant the finished cookies rather than the raw ingredient, two other parts matched "chocolate chip":

**BB2005 Chocolate Chip** (9,768 ea)
- LA: Stock 3,256, Stock 200 1,000, Stock 100 100
- MI: Stock Room 3,256
- Main: Receiving 2,100, Stock 56

**BB2003 Oatmeal Chocolate Chip** (6,417 ea)
- LA: Stock 2,139, Receiving 1
- MI: Stock Room 2,139
- Main: Stock 2,136, Receiving 2

## Behind the scenes

Every step the AI took, as recorded in the query log. All queries are read-only and row-capped.

1. Checked the saved queries — 6 saved queries
2. Read the Fishbowl notes index — 13 topic notes
3. Ran saved query `stock_by_location`: Where are our chocolate chips stored? — 15 rows, 294 ms

   ```sql
   SELECT p.num AS part, p.description, lg.name AS locationGroup, l.name AS location, lt.name AS locationType, ROUND(SUM(t.qty), 4) AS qtyOnHand, ROUND(SUM(COALESCE(t.qtyCommitted, 0)), 4) AS qtyCommitted, u.code AS uom, (l.countedAsAvailable + 0) AS countedAsAvailable
   FROM tag AS t
   JOIN part AS p ON p.id = t.partId
   JOIN location AS l ON l.id = t.locationId
   JOIN locationgroup AS lg ON lg.id = l.locationGroupId
   JOIN locationtype AS lt ON lt.id = l.typeId
   JOIN uom AS u ON u.id = p.uomId
   WHERE t.qty > 0 AND (p.num = @part_num OR p.description LIKE CONCAT('%', @part_num, '%')) AND (@location_group IS NULL OR lg.name = @location_group)
   GROUP BY p.num, p.description, lg.name, l.name, lt.name, u.code, l.countedAsAvailable
   ORDER BY p.num, qtyOnHand DESC
   LIMIT 101
   ```

Learn more: https://israellopezconsulting.com/fishbowl-mcp · More examples: https://israellopezconsulting.com/fishbowl-mcp/questions
