Agent Chef
Family meal planning run by your own AI agent.
What it can do
- Run Agent Chef: The one call to make when the user says 'run agent chef' (or run the app / plan dinner / do the weekly thing). Returns the operating manual plus the checklist of tool calls that are du
- Record Schedule: Call after creating (or changing) the recurring 'Run Agent Chef.' task in your own scheduler, with a one-line description, e.g. 'Claude scheduled task, daily 9:00 and 18:00 America/Lo
- Dismiss Setup Checklist: Hides the 'Get set up' card on the household dashboard (e.g. when the owner says they don't need it). Pass show=true to bring it back.
What data it sees
Do you need an account
No: the server works without sign-in
Family meal planning run by your own AI agent.
Every week your agent proposes ten dinners, the household votes and leaves feedback from personal links (no accounts needed), the top picks win, and Agent Chef builds the grocery list minus what's already in the pantry. Your agent fills the cart; you approve checkout.
Connect: sign in with OAuth when your client asks, or use an API key from Settings → Agents at agentchef.net. Then just say "Run Agent Chef." The agent gets the operating manual and today's checklist from one tool call and schedules itself to run twice a day.
Tools: propose and import recipes, run the weekly ballot, record votes and feedback, pick winners, build the shopping list, manage preferences, members and pantry. 34 tools, plus a run_agent_chef prompt.
Free 30-day trial. https://agentchef.net
Server tool list (34)
Raw names from tools/list. Only developers need these.
| run_agent_chef | The one call to make when the user says 'run agent chef' (or run the app / plan dinner / do the weekly thing). Returns the operating manual plus the checklist of tool calls that are due right now. Execute them in order, then call next_actions again until it returns no actions. Stop before any checkout. |
| record_schedule | Call after creating (or changing) the recurring 'Run Agent Chef.' task in your own scheduler, with a one-line description, e.g. 'Claude scheduled task, daily 9:00 and 18:00 America/Los_Angeles'. Lets the app stop reminding you and shows the owner that the loop is automated. |
| dismiss_setup_checklist | Hides the 'Get set up' card on the household dashboard (e.g. when the owner says they don't need it). Pass show=true to bring it back. |
| get_connected_agents | Agents connected to this household via OAuth sign-in (Claude, ChatGPT…), with when they connected and last used. API keys are separate. |
| revoke_connected_agent | Revoke an OAuth-connected agent's access (client_id from get_connected_agents). It must sign in again to reconnect. |
| next_actions | START HERE. Returns the current phase and an ordered checklist of tool calls that are due right now (propose, send ballot, remind non-voters, add options for feedback, lock in, shop), with why and the arguments/message text to use. Execute them, then call again until empty. Idempotent and time-aware; safe to call on a schedule. |
| get_instructions | The full operating manual for agents: the run loop, phases, how to write recipes, messaging and safety rules. Read once per session. |
| get_recipe_preferences | Household name, recipe preferences prompt (diet, allergies, dislikes, cuisines, time budget), shopping preferences prompt (brands, organic, store quirks) plus settings: plan_day, servings, grocery_store, recipes_per_week, votes_per_member. |
| update_recipe_preferences | Update any subset of the preferences prompt and settings. Omitted fields are unchanged. |
| get_members | List household members with contact info and their personal vote links. |
| upsert_member | Add a household member or update phone/email. Name is the key (case-insensitive). |
| remove_member | Remove a household member by name (their votes and ratings stay attached to past weeks). The owner can't be removed. |
| get_ingredients | Pantry/fridge/spice inventory the household already has. Used to trim the shopping list. |
| update_ingredients | Add/refresh items (upsert by name), remove items, or replace the whole inventory. |
| get_favorite_recipes | Recipes marked as household favorites, with ratings. Good candidates to re-propose by recipe_id. |
| favorite_recipe | Mark (or unmark) a recipe as a household favorite. |
| get_recipe | Full details for one recipe: ingredients, steps, servings, source, tags, ratings, comments, how often it's been cooked, and a link to its page. |
| search_recipes | Every recipe the household has ever had proposed, with ratings and cook counts. Filter by text, favorites, or tag. Use recipe_id from here with propose_recipes to re-propose. |
| update_recipe | Edit a stored recipe: fix an ingredient, add steps, change servings, tags, image or source. Only provided fields change. |
| import_recipe | Fetch a recipe page (most cooking sites) and save it to the library with its real photo, ingredients, and steps. Returns the recipe; pass its recipe_id to propose_recipes or add_candidates to put it on a ballot. |
| get_past_recipes | Every recipe selected for a past week, newest first, with week, status, and ratings/comments. Use to avoid repeats and learn what landed. |
| get_current_week | Where the cycle stands: latest week + status (voting/selected/ordered/done), candidates with tallies, who has/hasn't voted, selected recipes, pending_feedback. Call this first. |
| propose_recipes | Start a weekly cycle: store the candidate recipes (normally 10) and return numbered candidates, a ballot_text (with a {vote_link} placeholder for message_group), and each member's vote link. Re-calling for the same week_start replaces the candidates. |
| add_candidates | Append extra recipes to the current voting ballot (positions continue after the existing ones; votes are kept; 15 max). Use in response to ballot_feedback from get_current_week; open feedback is marked addressed. Follow up with message_group so voters know new options are up. |
| add_ballot_feedback | Record a member's comment about the current ballot (optionally about one candidate), e.g. relayed from a text message. Members can also do this themselves on their vote page. |
| message_group | Send SMS/MMS or email to household members. '{vote_link}' in the message becomes each member's personal voting link. Channel 'auto' texts members with a phone and emails the rest. Providers now: {"sms":"dry-run","email":"dry-run"} (dry-run = logged only). |
| add_vote | Record one member's votes for the current week (replaces their earlier votes). Accepts recipe_ids or ballot positions. Unknown member names are created. |
| get_past_votes | Historical ballots: per week, every candidate with vote count, voters, and whether it was selected. |
| set_this_weeks_recipes | Lock in the winners. With no recipe_ids, picks the top N (recipes_per_week) by votes, ties broken by ballot order. Moves the week to 'selected' and returns the shopping list. |
| reopen_voting | Undo set_this_weeks_recipes: clears the winners and returns the week to 'voting'. Existing votes are kept. Use if winners were locked in too early. |
| set_voting_deadline | One-off override of when the current ballot closes: an ISO timestamp, or extend_hours from the current deadline. Normally the deadline comes from the household schedule (vote_close_day/time); changing those via update_recipe_preferences re-syncs the current week. |
| rate_recipe | Record post-cook feedback (1-5 + comment) for a member. When every selected recipe of that week has feedback the week becomes 'done'. |
| assemble_online_grocery_order | Shopping list for the selected recipes minus ingredients on hand, grouped by item with quantities and which recipe needs it, plus the preferred store. Drive the browser to fill the cart; stop before checkout for approval; then call record_grocery_order. |
| record_grocery_order | Log the placed order and (by default) add purchased items to ingredients on hand. Moves the week to 'ordered'. |