mcp-supertoinette
mcp-supertoinette
Читайте рецепты с Supertoinette в MCP-клиенте: ищите их, читайте один, пересчитывайте на другое количество человек, просматривайте категории и подбирайте вина.
Только чтение. Без ключа API, без аккаунта.
Установка
claude mcp add supertoinette -- npx -y mcp-supertoinetteИли в конфигурации любого MCP-клиента:
{
"mcpServers": {
"supertoinette": {
"command": "npx",
"args": ["-y", "mcp-supertoinette"]
}
}
}С Docker:
docker build -t mcp-supertoinette .
docker run -i --rm mcp-supertoinetteКонтейнеру нужен только доступ к www.supertoinette.com.
Related MCP server: spoonacular-mcp
Инструменты
Инструмент | Назначение |
| Найти рецепты по блюду или ингредиенту |
| Прочитать один рецепт, при необходимости пересчитанный |
| Категории, по которым просматриваются рецепты |
| Рецепты одной категории |
| Пять вин к блюду или указатель блюд |
| Пересчитать любой французский список ингредиентов в офлайне |
Рецепт идентифицируется номером в его адресе: 4210 в /recette/4210/veloute-de-gaverole.html. search_recipes и browse_recipes возвращают этот номер в каждой строке.
search_recipes
Аргумент | Тип | По умолчанию | Примечания |
| строка | обязательно | Блюдо или ингредиент, на французском |
| целое | 20 | от 1 до 39 |
| целое | 1 | от 1 до 1000 |
| строка | — | Метка фасета, например |
{
"query": "cabillaud",
"page": 1,
"last_page": 2,
"results": [
{
"id": "702",
"title": "Cabillaud aux champignons",
"url": "https://www.supertoinette.com/recette/702/cabillaud-aux-champignons.html",
"image_url": "https://recette.supertoinette.com/new/…-800.webp",
"categories": ["Sauces", "Poissons"]
}
],
"result_count": 20,
"rows_published": 39,
"total_available": null,
"facets": [{ "label": "Poissons", "count": 60 }]
}category принимает один из ярлыков facets, написанный так, как он вернулся. Неизвестный ярлык ничего не находит, поэтому фильтр отбрасывается, поиск выполняется снова без него, и примечание сообщает, какой ярлык ушёл. total_available всегда равен null, поскольку Supertoinette не публикует общее количество; используйте last_page. Счётчики фасетов пересекаются, поэтому их сумма превышает количество выданных строк. Поиск смешивает рецепты с собственными редакционными подборками сайта; подборки удаляются, поэтому result_count может оказаться меньше limit.
get_recipe
Аргумент | Тип | По умолчанию | Примечания |
| строка | обязательно | Номер в адресе |
| целое | — | от 1 до 1000 |
{
"id": "4210",
"title": "Velouté de gaverole au pravin",
"url": "https://www.supertoinette.com/recette/4210/veloute-de-gaverole.html",
"yield": { "original_text": "6 personnes", "requested": 4, "factor": 0.6667 },
"ingredients": [
{
"text": "533 g de tiges de gaverole",
"original": "800 g de tiges de gaverole",
"scaling": "scaled",
"amount": 533,
"unit": "g",
"is_heading": false
}
],
"steps": ["Émincer les tiges de gaverole."],
"prep_minutes": 15,
"cook_minutes": 25,
"rest_minutes": 30,
"total_minutes": 70,
"difficulty": { "label": "Recette facile" },
"cost_level": { "label": "Economique", "level": 1, "scale": 3 },
"rating": { "value": 4.2, "count": 9, "scale": 5 },
"tags": [{ "label": "Soupes & potages", "category": "91/recettes-soupes-potages" }],
"faq": []
}Время указано в минутах, а null там, где Supertoinette не публикует значение. difficulty имеет метку без шкалы, потому что сайт не публикует шкалу для неё; cost_level имеет шкалу, потому что сайт её рисует. ingredient_sheets содержит собственные ссылки сайта, и примерно одна из двадцати указывает на другой ингредиент, чем в строке рядом.
Запрос servings для рецепта, в выходе которого нет числа — «pour un grand plat» — возвращает invalid_input. Запрос id страницы категории возвращает parse_failure.
list_categories и browse_recipes
list_categories не принимает аргументов и возвращает сорок категорий, которые Supertoinette перечисляет на своих страницах:
{
"categories": [
{
"label": "Soupes & potages",
"category": "91/recettes-soupes-potages",
"url": "https://www.supertoinette.com/recettes/91/recettes-soupes-potages",
"listed_in": "footer"
}
],
"category_count": 40
}listed_in равен footer для видов блюд и menu для способов приготовления и сезонов. Собственные tags рецепта открывают сотни дополнительных категорий, которых нет ни в одном из списков.
browse_recipes читает одну из них:
Аргумент | Тип | По умолчанию | Примечания |
| строка | обязательно | Токен, например |
| целое | 20 | от 1 до 30 |
| целое | 1 | от 1 до 1000 |
Токен — это число и имя вместе. Возьмите его из list_categories или из tags рецепта и передайте обратно без изменений: любое другое написание имени приведёт к несуществующей странице. Каждая строка добавляет difficulty и total_minutes к тому, что содержит строка поиска.
categoryвsearch_recipesиcategoryвbrowse_recipes— разные вещи. Первая — это метка фасета (Poissons), вторая — токен (95/recettes-poissons).
Страница после последней возвращается без строк и без ошибки; сравните page с last_page.
get_wine_pairings
Укажите id для одного блюда или page для алфавитного указателя блюд. kind сообщает, что из двух вернулось, а другое поле равно null.
Аргумент | Тип | Примечания |
| строка | Номер в адресе блюда |
| целое | от 1 до 100, для указателя |
{
"kind": "dish",
"dish": {
"dish": "Aligot",
"style": "Un vin blanc sec assez puissant, fin et très légèrement boisé",
"pairings": [
{ "rank": "Bon accord", "wine": "Premières côtes de bordeaux" },
{ "rank": "Accord parfait", "wine": "Mâcon blanc" }
],
"recipes": [{ "id": "1081", "title": "Aligot" }]
},
"index": null
}Пять рангов — это собственные формулировки Supertoinette, в её собственном порядке.
scale_ingredients
Пересчитывает любой французский список ингредиентов без обращения к сети.
Аргумент | Тип | Примечания |
| строка[] | от 1 до 200 строк |
| число | больше 0, до 100 |
| целое | от 1 до 1000, вместо |
Каждая строка возвращается с пометкой. scaled — это точная арифметика. rounded переведено в количество, которое можно отмерить на кухне, с note, указывающим точную цифру, из которой оно переведено. unscaled не имело количества для умножения. Единицы остаются в системе, использованной в рецепте, а приблизительная мера сохраняет свой размер: четыре раза по одной щепотке — это четыре щепотки.
get_recipe применяет те же правила, когда получает servings.
Настройки
Переменные окружения, все необязательные. Значение вне диапазона отклоняется в stderr, и применяется значение по умолчанию.
Переменная | По умолчанию | Диапазон |
| — | Ваш идентификатор, добавляемый перед идентификатором этого проекта |
| 3000 | от 3000 до 60000 |
| 20000 | от 1000 до 120000 |
| 3 | от 0 до 8 |
| 900000 | от 0 до 86400000, 0 отключает кэш |
| 200 | от 1 до 5000 |
|
|
|
Один запрос за раз. STO_MIN_INTERVAL_MS увеличивает интервал между двумя запросами выше его минимального значения 3000 мс, и ни одна настройка не уменьшает его.
Ошибки
Код | Значение |
| По этому адресу ничего нет |
| Аргументы не позволили сформировать запрос |
| Сайт попросил снизить темп; повторите через мгновение |
| Страница пришла в виде, который этот сервер не может прочитать |
| Запрос не удался |
| Нет ответа в течение установленного срока |
Каждое сообщение начинается с его кода в скобках.
Как библиотека
Слой чтения поставляется отдельно, со своим темпом, кэшем и обработкой ошибок:
import { SupertoinetteClient } from "mcp-supertoinette/client";Количества возвращаются так, как их опубликовал Supertoinette; пересчёт находится в инструментах выше.
Атрибуция
Рецепты, названия и фотографии принадлежат Supertoinette. Указывайте сайт и ссылку на страницу, когда показываете рецепт.
Участие
См. CONTRIBUTING.md. Лицензия MIT.
mcp-supertoinette (français)
Lire les recettes de Supertoinette depuis un client MCP : les chercher, en lire une, la remettre à l'échelle pour un autre nombre de personnes, parcourir les catégories, consulter les accords mets-vins.
En lecture seule. Sans clé d'API, sans compte.
Installation
claude mcp add supertoinette -- npx -y mcp-supertoinetteOu dans la configuration de n'importe quel client MCP :
{
"mcpServers": {
"supertoinette": {
"command": "npx",
"args": ["-y", "mcp-supertoinette"]
}
}
}Avec Docker :
docker build -t mcp-supertoinette .
docker run -i --rm mcp-supertoinetteLe conteneur a seulement besoin de joindre www.supertoinette.com.
Les outils
Outil | Rôle |
| Chercher des recettes par plat ou par ingrédient |
| Lire une recette, remise à l'échelle sur demande |
| Les catégories par lesquelles parcourir les recettes |
| Les recettes d'une catégorie |
| Cinq vins pour un plat, ou l'index des plats |
| Remettre à l'échelle une liste d'ingrédients, hors ligne |
Une recette s'identifie par le numéro de son adresse : 4210 dans
/recette/4210/veloute-de-gaverole.html. search_recipes et browse_recipes
rendent ce numéro sur chaque ligne.
search_recipes
Argument | Type | Défaut | Notes |
| chaîne | obligatoire | Un plat ou un ingrédient |
| entier | 20 | 1 à 39 |
| entier | 1 | 1 à 1000 |
| chaîne | — | Un libellé de facette, |
category prend un des libellés rendus dans facets, écrit tel quel. Un
libellé inconnu ne trouve rien : le filtre est alors écarté, la recherche
rejouée sans lui, et une note dit lequel est parti. total_available vaut
toujours null, Supertoinette ne publiant aucun total ; utilisez last_page.
Les compteurs de facettes se recoupent et leur somme dépasse le nombre de
lignes. Une recherche mêle les recettes aux sélections éditoriales du site ;
celles-ci sont retirées, ce qui explique un result_count inférieur au limit
demandé.
get_recipe
Argument | Type | Défaut | Notes |
| chaîne | obligatoire | Le numéro de l'adresse |
| entier | — | 1 à 1000 |
Les temps sont en minutes, et valent null quand Supertoinette n'en publie
aucun. difficulty porte un libellé sans échelle, le site n'en publiant aucune ;
cost_level porte la sienne, le site la dessinant. ingredient_sheets contient
les liens du site lui-même, dont environ un sur vingt pointe vers un autre
ingrédient que celui de la ligne.
Demander servings sur une recette dont le rendement ne porte aucun nombre
— « pour un grand plat » — rend invalid_input. Demander l'id d'une page de
catégorie rend parse_failure.
list_categories et browse_recipes
list_categories ne prend aucun argument et rend les quarante catégories que
Supertoinette liste sur ses pages. listed_in vaut footer pour les sortes de
plats et menu pour les façons de cuisiner et les saisons. Les tags d'une
recette ouvrent sur des centaines d'autres catégories qu'aucune des deux listes
ne porte.
browse_recipes en lit une :
Аргумент | Тип | По умолчанию | Примечания |
| строка | обязательно | Токен, например |
| целое | 20 | от 1 до 30 |
| целое | 1 | от 1 до 1000 |
Токен — это номер и имя вместе. Возьмите его из list_categories или из tags рецепта и передайте без изменений: любое другое написание имени ведёт на несуществующую страницу. Каждая строка добавляет difficulty и total_minutes к тому, что содержит строка поиска.
categoryизsearch_recipesи изbrowse_recipes— это две разные вещи. Первый — это метка фасета (Poissons), второй — токен (95/recettes-poissons).
Страница за последней возвращается без строк и без ошибок; сравните page и last_page.
get_wine_pairings
Укажите id для блюда или page для алфавитного указателя блюд. kind показывает, какой из двух ответов приходит, а другое поле равно null.
Аргумент | Тип | Примечания |
| строка | Номер адреса блюда |
| целое | от 1 до 100, для указателя |
Пять рангов — это ранги Supertoinette, в её порядке.
scale_ingredients
Пересчитывает французский список ингредиентов без обращения к сети.
Аргумент | Тип | Примечания |
| строка[] | от 1 до 200 строк |
| число | Больше 0, до 100 |
| целое | от 1 до 1000, вместо |
Каждая строка возвращается помеченной. scaled — для точного расчёта. rounded — для значения, приведённого к измеримой на кухне величине, с note, указывающей точное число, на которое оно изменилось. unscaled — для строки без количества, которое нужно умножать. Единицы остаются в системе рецепта, а приблизительная мера сохраняет свой размер: четыре щепотки — это четыре щепотки.
get_recipe применяет те же правила, когда ей передают servings.
Настройки
Переменные окружения, все необязательные. Значение вне пределов отклоняется с сообщением в stderr, и применяется значение по умолчанию.
Переменная | По умолчанию | Пределы |
| — | Ваш идентификатор, помещаемый перед идентификатором проекта |
| 3000 | от 3000 до 60000 |
| 20000 | от 1000 до 120000 |
| 3 | от 0 до 8 |
| 900000 | от 0 до 86400000, 0 отключает кэш |
| 200 | от 1 до 5000 |
|
|
|
Один запрос за раз. STO_MIN_INTERVAL_MS увеличивает интервал между двумя запросами сверх его нижнего порога в 3000 мс, и ни одна настройка не уменьшает его.
Ошибки
Код | Значение |
| По этому адресу ничего нет |
| Аргументы не могли сформировать запрос |
| Сайт попросил замедлиться; повторите через некоторое время |
| Страница пришла в виде, нечитаемом для этого сервера |
| Запрос не удался |
| Нет ответа в течение установленного времени |
Каждое сообщение начинается с его кода в квадратных скобках.
Как библиотека
Слой чтения публикуется отдельно, со своим темпом, кэшем и обработкой ошибок:
import { SupertoinetteClient } from "mcp-supertoinette/client";Количества возвращаются такими, как их публикует Supertoinette; пересчёт масштаба находится в инструментах выше.
Атрибуция
Рецепты, названия и фотографии принадлежат Supertoinette. Указывайте сайт и ставьте ссылку на страницу, когда показываете рецепт.
Вклад
См. CONTRIBUTING.md. Под лицензией MIT.
Maintenance
Related MCP Servers
- FlicenseCqualityDmaintenanceEnables management of culinary recipes through web scraping from sites like Marmiton.org, recipe generation, ingredient management, and querying a MongoDB database of recipes, comments, users, and utensils.18
- AlicenseBqualityDmaintenanceEnables AI assistants to search for recipes, get nutritional information, find ingredients, and more through the Spoonacular Food API using natural language.6155ISC
- AlicenseAqualityBmaintenanceMCP server that searches French recipes from Marmiton, reads ingredients and steps, and rescales quantities to any number of servings without requiring an API key.632,395MIT
- AlicenseAqualityBmaintenanceSearch and read recipes from the English Wikibooks Cookbook, with tools to rescale ingredient lists to a target number of servings.4117MIT
Related MCP Connectors
Spoonacular food API: recipes, nutrition, ingredients, meal plans. Free 150/day.
Recipes MCP — wraps TheMealDB API (free tier, no auth)
Clean product data from any URL. Schema.org + AI extraction. 200 free calls/month.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/smeet666/mcp-supertoinette'
If you have feedback or need assistance with the MCP directory API, please join our Discord server