Cups to Grams MCP
# Cups to Grams MCP
Ingredient-aware cups to grams for AI assistants, using measured grams per cup from USDA FoodData Central and the King Arthur Baking weight chart instead of guessed densities.
Hosted MCP URL (no sign-in, no token): `https://cups-to-grams-mcp.lipmichal.workers.dev/mcp`
Converters and recipe tools on the web: [ingredientcalculator.com](https://ingredientcalculator.com/cups-to-grams?utm_source=github&utm_medium=cups-to-grams-mcp)
## Tools
| Tool | What it does |
| --- | --- |
| `convert_ingredient` | Converts an amount between volume and weight for a named ingredient (cup, tbsp, tsp, fl oz, mL, L to g, oz, lb and back). Supports US, metric, imperial, US legal and Japanese cups, US, metric and Australian spoons, sticks of butter. Says which cup it used and cites the density source. |
| `search_ingredients` | Fuzzy search over 271 ingredients. Returns canonical names, grams per US cup and per tablespoon, and the source (USDA FDC id or King Arthur chart). |
| `scale_recipe` | Scales ingredient lines by a factor or from one servings count to another. Parses mixed numbers and fraction characters. Optionally gives grams for every line. |
| `convert_oven_temperature` | Fahrenheit, Celsius and gas mark (1/4 to 10), with a 20 C fan oven adjustment. |
Every result has structured JSON, a one-paragraph summary, an `as_of` date, a `source` URL and a `more` link to the matching ingredientcalculator.com page.
## What it knows that your model does not
- Measured weights. A cup of all-purpose flour is 120 g, granulated sugar 200 g, butter 227 g, honey 339 g, water 237 g. Models often apply one density to everything or mix up fluid ounces and weight ounces. Each of the 271 rows carries its source, and USDA rows carry the FDC id.
- Which cup. A US cup is 236.5882365 mL, a metric cup 250 mL, an imperial cup 284.13 mL, the US nutrition-label cup 240 mL and a Japanese cup 200 mL. A 1 cup of flour in an Australian recipe is about 127 g, not 120 g. The server states the cup it used.
- Exact unit constants. US units come from the US gallon of 231 cubic inches (NIST SP 811). Imperial units come from the UK Weights and Measures Act 1985 (gallon = 4.54609 L). The pound is exactly 453.59237 g.
- Where published tables disagree. For 23 ingredients USDA and King Arthur differ by more than 5% (cornstarch, bread flour, oats, baking soda and others). The result names the value used and lists the other published value, so the user can see the spread.
## Install
### Claude.ai custom connector, ChatGPT developer mode
Paste this URL as a custom connector. No token or sign-in.
```
https://cups-to-grams-mcp.lipmichal.workers.dev/mcp
```
### Claude Code
```
claude mcp add --transport http cups-to-grams https://cups-to-grams-mcp.lipmichal.workers.dev/mcp
```
Or run it locally over stdio:
```
claude mcp add cups-to-grams -- npx -y github:theluckystrike/cups-to-grams-mcp
```
### Claude Desktop
Add to `claude_desktop_config.json`:
```json
{
"mcpServers": {
"cups-to-grams": {
"command": "npx",
"args": ["-y", "github:theluckystrike/cups-to-grams-mcp"]
}
}
}
```
### Cursor
Add to `~/.cursor/mcp.json`:
```json
{
"mcpServers": {
"cups-to-grams": { "url": "https://cups-to-grams-mcp.lipmichal.workers.dev/mcp" }
}
}
```
### VS Code
Add to `.vscode/mcp.json`:
```json
{
"servers": {
"cups-to-grams": { "type": "http", "url": "https://cups-to-grams-mcp.lipmichal.workers.dev/mcp" }
}
}
```
### Test with curl
```
curl -s -X POST https://cups-to-grams-mcp.lipmichal.workers.dev/mcp \
-H 'content-type: application/json' -H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"convert_ingredient","arguments":{"amount":1,"from_unit":"cup","to_unit":"g","ingredient":"all-purpose flour"}}}'
```
## Example prompts
- "How many grams is 3/4 cup of brown sugar?"
- "Convert 250 g of bread flour to cups."
- "This Australian recipe says 2 cups plain flour. How many grams is that?"
- "Double this recipe and give me grams: 1 1/2 cups flour, 1/2 cup sugar, 2 tbsp honey, 1 stick butter."
- "Scale this recipe from 4 servings to 10."
- "What is gas mark 6 in Fahrenheit, and what should I set a fan oven to?"
## How it converts
- Density in g per mL = grams per US cup / 236.5882365.
- Volume to weight = amount x unit mL x density. Weight to volume is the reverse.
- Volume to volume and weight to weight use the unit constants only.
- A stick of butter is 1/4 lb (113.398 g), which USDA lists as 113 g and 1/2 cup.
- Gas marks follow the standard recipe table (gas mark 4 = 350 F = 180 C). Fan ovens are set 20 C lower, per oven maker guidance.
27 test fixtures check unit constants and table values. The expected values come from `scripts/expected.py`, which works from the unit definitions and the published table values, not from the server code.
## Data sources
See [DATA_SOURCES.md](DATA_SOURCES.md). In short, densities come from USDA FoodData Central SR Legacy portion weights (FDC ids per row) and the King Arthur Baking ingredient weight chart, both fetched on 2026-10-30. The table is rebuilt by `scripts/build_data.py`.
## Limitations
- Volume measures vary with how you fill the cup. Dry values assume spoon-and-level filling. Scooping flour from the bag can add 30 g or more per cup. Weigh when it matters.
- Table values are whole grams per cup, so results carry about plus or minus 0.5 g per cup of rounding. King Arthur rows given per tablespoon or teaspoon are coarser.
- Whole eggs and other count items are not converted by volume. A large egg is about 50 g.
- Ingredient matching is fuzzy. Check the matched name in the result, or use `search_ingredients` first.
- Fan oven guidance is a rule of thumb. Oven calibration varies.
## Development
```
npm install
npm run build
npm test
npx wrangler deploy
```
`src/core.ts` holds the pure conversion logic and `src/data.ts` the generated density table. `src/stdio.ts` and `src/worker.ts` are thin entries over the same tool registry in `src/tools.ts`.
## License
MIT
Part of the Zovo MCP collection: https://mcp.zovo.one
<!-- data-servers:start -->
## More data servers from the same author
Each one is free, needs no API key and has a hosted URL you can paste into Claude or ChatGPT.
| server | tools | hosted URL |
|---|---|---|
| [dscr-loan-calculator-mcp](https://github.com/theluckystrike/dscr-loan-calculator-mcp) | calculate_dscr, max_loan_for_target_dscr, rent_needed_for_target_dscr, compare_scenarios, amortization_summary | `https://dscr-loan-calculator-mcp.lipmichal.workers.dev/mcp` |
| [gold-price-per-gram-mcp](https://github.com/theluckystrike/gold-price-per-gram-mcp) | get_gold_price_per_gram, get_metal_prices, calculate_jewelry_value, convert_gold_units | `https://gold-price-per-gram-mcp.lipmichal.workers.dev/mcp` |
| [lake-level-mcp](https://github.com/theluckystrike/lake-level-mcp) | search_lakes, get_lake_level, get_lake_history, compare_lakes | `https://lake-level-mcp.lipmichal.workers.dev/mcp` |
| [minimum-wage-mcp](https://github.com/theluckystrike/minimum-wage-mcp) | get_minimum_wage, list_upcoming_increases, compare_states, annual_income_at_minimum_wage | `https://minimum-wage-mcp.lipmichal.workers.dev/mcp` |
| [no-tax-on-overtime-mcp](https://github.com/theluckystrike/no-tax-on-overtime-mcp) | calculate_overtime_deduction, calculate_tips_deduction, calculate_senior_deduction, estimate_tax_savings, explain_eligibility | `https://no-tax-on-overtime-mcp.lipmichal.workers.dev/mcp` |
| [paycheck-calculator-mcp](https://github.com/theluckystrike/paycheck-calculator-mcp) | calculate_take_home_pay, compare_states_take_home, salary_to_hourly, hourly_to_salary, get_federal_tax_brackets | `https://paycheck-calculator-mcp.lipmichal.workers.dev/mcp` |
| [uk-income-tax-salary-mcp](https://github.com/theluckystrike/uk-income-tax-salary-mcp) | calculate_uk_take_home, get_uk_tax_bands, compare_salaries, marginal_rate_at_income | `https://uk-income-tax-salary-mcp.lipmichal.workers.dev/mcp` |
| [us-federal-holidays-business-days-mcp](https://github.com/theluckystrike/us-federal-holidays-business-days-mcp) | list_federal_holidays, is_business_day, add_business_days, count_business_days, invoice_due_date | `https://us-federal-holidays-business-days-mcp.lipmichal.workers.dev/mcp` |
The paid back-office collection (invoices, VAT, PDFs, spreadsheets) is at https://mcp.zovo.one
<!-- data-servers:end -->
TDQS
Scored across 4 tools
The four tools have mostly distinct roles: searching ingredients, converting a single ingredient amount, scaling recipe lines, and converting oven temperatures. The only mild overlap is that scale_recipe can perform metric weight conversions internally, similar to convert_ingredient, but the descriptions make the intended boundary clear.
All tool names use consistent snake_case verb_noun phrasing: convert_oven_temperature, search_ingredients, convert_ingredient, and scale_recipe. The pattern is predictable and readable.
Four tools is well-scoped for a specialized cooking-unit conversion server. Each tool covers a distinct part of the workflow: ingredient lookup, unit conversion, recipe scaling, and oven temperature conversion.
The tool surface covers the core lifecycle for this domain: finding an ingredient, converting its units, scaling whole recipes, and converting oven temperatures. No obvious operational gaps remain for the stated purpose.