# Recipes Daily > Weeknight dinners, baking and cooking guides written in plain steps, using ingredients you can find in a normal supermarket. A new recipe every week. Recipes, guides, ingredient pages, search and the three listings — the root, /guides and /ingredients — return a clean Markdown version of the same content when requested with `Accept: text/markdown`. Same URL, no separate endpoint. Most also answer to a `.md` suffix; the root and `/search` have no slug to hang one on. Category pages under `/categories/` and an ingredient's `/recipes` listing are HTML only — everything they link is not. If your user agent identifies you as an assistant fetching on a person's behalf, you are served Markdown without asking for it. ## Finding recipes by ingredient Start here. It is all links, so nothing below needs a URL assembled to reach it. [/ingredients](https://recipes-daily.com/ingredients) lists every ingredient that has a page of its own, on one page, unpaginated. Each links the recipes using it and the guides about it, and each recipe links its own ingredients back — so "what can I make with halloumi" is three followed links and no query string. If your client only fetches URLs that have already appeared in its context, this is the path that works. The search endpoint below is not, unless you can compose a URL yourself. ## Search One request searches everything published — by dish, ingredient, cuisine, method, meal, occasion, or any other wording that would appear in a title or description. It answers what the ingredient index cannot: combinations, time budgets and cuisines. ``` GET https://recipes-daily.com/search?q=chicken+thighs Accept: text/markdown ``` Returns matches with titles, absolute URLs and descriptions — then fetch any of those URLs with the same `Accept` header for the full page. Recipe results also carry cooking time, servings and categories. - `q` — the search terms. Titles and descriptions are indexed, so a word or short phrase matches better than a full sentence. Omit it to get everything, newest first. Works on the HTML page too. - `limit` — results per page, up to 50. Defaults to 25. Markdown only; the HTML page ignores it and paginates at its own size. - `page` — 1-based. The response carries the next page's URL when there is one. An out-of-range or non-numeric parameter answers `422` with the bound it broke, in Markdown, rather than quietly substituting a default — on the Markdown representation. Without `Accept: text/markdown` you get the HTML page, which has no `limit` to violate and so never answers `422`. Rate limited to 30 requests per minute per IP, answering `429` with `Retry-After`. [/search](https://recipes-daily.com/search) with no terms answers with everything, newest first, and offers a handful of worked queries as links. ## MCP The same search, as a tool call, for clients that speak the Model Context Protocol. ``` POST https://recipes-daily.com/mcp ``` Streamable HTTP, no authentication, read-only. Three tools — two find recipes, one draws them: - `search_recipes(query, limit, page)` — the parameters above under the names they carry in a tool schema, with the same bounds and the same shortlist back. Results carry absolute URLs; fetch those for the full page. - `find_recipes_by_ingredients(ingredients, limit)` — given the ingredients someone has, ranks recipes by how many of them each one uses and names what's missing from the rest. The ingredient index above answers this one ingredient at a time by link; this answers a combination in one call. - `show_recipes(recipes)` — takes recipe URLs and draws them as picture cards, on hosts that speak the MCP Apps UI extension. Everything else answers in text, so a client that cannot render one loses nothing by never calling it. This exists because a client that only retrieves URLs already in its context cannot reach `?q=` however well it is documented — no arrangement of links makes an arbitrary query string followable, and a tool call is the one parameterised query such a client can make. Adding it is a one-time connector setup on the client side. Rate limited to 30 requests per minute per IP per tool, counted separately from the endpoint above. ## Recipes - [Recipe index](https://recipes-daily.com/): every published recipe, newest first. - [Ingredients](https://recipes-daily.com/ingredients): every ingredient with its own page — recipes that use it, and guides about it. - [Search](https://recipes-daily.com/search): full-text recipe search. ## Guides - [Guide index](https://recipes-daily.com/guides): cooking technique, storage, substitution and comparison guides. ## Feeds - [RSS](https://recipes-daily.com/feed/rss): every new recipe as it's published. - [Sitemap](https://recipes-daily.com/sitemap.xml)