Formul.io MCP Server
Connect your recipes and the ingredient library to Claude, ChatGPT and any MCP-compatible assistant — and formulate in plain conversation.
https://api.formul.io/mcp What is the Formul.io MCP server?
MCP (Model Context Protocol) is an open standard that lets AI assistants call external tools. The Formul.io MCP server puts your saved recipes, your custom ingredients and the 10,000+ ingredient library — plus the same food-science engine behind our calculators — directly inside the conversation.
Connect once and ask an assistant to read a recipe, compute water activity and shelf life, run what-if simulations, diagnose problems, find substitutes, or organise recipes into collections — without leaving the chat. You stay in control: the assistant can only do what the scopes you grant allow, and destructive actions require explicit confirmation.
Tools the assistant gets
23 tools, grouped by what they do. Read-only tools are always safe; create, edit and delete tools are gated by the scopes you grant.
-
list_recipesFind and filter your saved recipes. -
get_recipeFull ingredient list and metrics for one recipe.
-
create_recipeCreate and save a new recipe. -
set_recipe_ingredientsSet the final, verified ingredient list with quantities. -
update_recipeEdit name, settings, tags or ingredients in place. -
import_recipeImport a recipe from pasted text or a URL. -
delete_recipeDelete a recipe — requires confirmation.
-
search_ingredientsSearch your custom items + the global library, with full composition. -
find_substitutesRanked substitutes by composition, diet and flavour. -
create_ingredientAdd a custom ingredient to your library.
-
analyze_recipeQuality score, diagnosed issues, rule checks and suggested fixes. -
get_recipe_metricsWater activity, shelf life, composition and nutrition. -
simulate_changesRun what-if scenarios without saving anything.
-
get_calculator_guideOptimal ranges, a metric glossary and pro formulation rules per calculator.
-
list_recipe_notesRead the caveats and tips saved on a recipe. -
save_recipe_noteSave a caveat, tip or rationale. -
delete_recipe_noteDelete a note — requires confirmation.
-
list_collectionsBrowse your collections or public ones. -
get_collectionA collection with its member recipes. -
save_collectionCreate or update a collection. -
delete_collectionDelete a collection — requires confirmation.
-
get_recipe_dagRead a recipe's multi-stage process graph. -
set_recipe_dagAuthor or replace the process graph.
Option A — Claude.ai web Recommended · no key
The easiest path. Claude.ai runs the whole OAuth flow for you.
- 1 Open claude.ai and go to Settings → Connectors.
- 2 Click Add custom connector.
- 3 Name it Formul.io and paste the Remote MCP server URL below. Leave OAuth Client ID and Secret blank — they are discovered automatically.
- 4 Click Add. Claude.ai redirects you to Formul.io to authorize.
- 5 Log in if prompted, review the requested permissions, and click Allow.
- 6 Start a new chat and ask Formul.io something — see the example prompts below.
https://api.formul.io/mcp api.formul.io is requesting access to your Formul.io account.
https://claude.ai/api/mcp/auth_callback - Run formulation calculations
- Read your recipes
- Create and modify your recipes
- Search ingredient database
- Create and modify ingredients
- Diagnose recipe issues
Option B — Claude Desktop API key
For Claude Desktop or any client that uses a static bearer token.
1. Create an API key
Log in to Formul.io, open Settings → Security, and create an API key. Pick only the permissions you need:
- Run formulation calculations
- Read your recipes
- Create and modify your recipes
- Search ingredient database
- Diagnose recipe issues
2. Add it to your config
Edit claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\):
{
"mcpServers": {
"formulio": {
"url": "https://api.formul.io/mcp",
"headers": {
"Authorization": "Bearer fio_YOUR_KEY_HERE"
}
}
}
} Restart Claude Desktop — the Formul.io tools appear in the tool list.
Option C — Custom agents & OAuth 2.1
For your own MCP client or programmatic access. Authenticate with an API key (Bearer fio_…) or an OAuth 2.1 access token.
Transport
POST https://api.formul.io/mcp GET https://api.formul.io/mcp/sse OAuth 2.1 endpoints
Public-client PKCE (authorization_code). No client secret. Access tokens last 1 hour; refresh tokens rotate on use.
| Purpose | URL |
|---|---|
| Discovery (RFC 8414) | https://api.formul.io/.well-known/oauth-authorization-server |
| Authorization | https://app.formul.io/oauth/authorize |
| Token exchange | https://api.formul.io/api/v1/oauth/token |
| Client registration | https://api.formul.io/api/v1/oauth/register |
| Token revocation | https://api.formul.io/api/v1/oauth/revoke |
Quick start
# 1. Register your client once
curl -X POST https://api.formul.io/api/v1/oauth/register \
-H "Content-Type: application/json" \
-d '{
"client_name": "My App",
"redirect_uris": ["https://myapp.example.com/callback"],
"grant_types": ["authorization_code", "refresh_token"],
"scope": "calculate recipes:read ingredients:read"
}'
# -> { "client_id": "...", "client_secret": null }
# 2. Send the user to authorize (PKCE, S256)
https://app.formul.io/oauth/authorize
?client_id=YOUR_CLIENT_ID
&redirect_uri=https://myapp.example.com/callback
&response_type=code
&scope=calculate+recipes:read+ingredients:read
&code_challenge=BASE64URL(SHA256(code_verifier))
&code_challenge_method=S256
&state=RANDOM_STATE
# 3. Exchange the code for tokens
curl -X POST https://api.formul.io/api/v1/oauth/token \
-d "grant_type=authorization_code" \
-d "code=AUTH_CODE" \
-d "redirect_uri=https://myapp.example.com/callback" \
-d "client_id=YOUR_CLIENT_ID" \
-d "code_verifier=YOUR_VERIFIER"
# -> { "access_token": "...", "refresh_token": "...", "expires_in": 3600 }
# 4. Call the MCP server
curl -X POST https://api.formul.io/mcp \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}' Scopes
Grant only what the assistant needs. Each tool requires a scope; without it the call is refused.
| Scope | Grants |
|---|---|
recipes:read | List and read recipes, collections, notes and process graphs. |
recipes:write | Create, edit and delete recipes, notes and collections; author process graphs. |
ingredients:read | Search the ingredient library and find substitutes. |
ingredients:write | Create custom ingredients. |
calculate | Run metrics and simulations, read calculator guides. |
diagnose | Analyse recipes — quality score, issues and fixes. |
Try these once connected
The assistant works against your own account.
Troubleshooting
Need help?
This page is the canonical documentation for the Formul.io MCP server. Still stuck? We read every message.