Skip to main content
Glama
smeet666

mcp-supertoinette

mcp-supertoinette

CI npm licence MIT

Читайте рецепты с Supertoinette в MCP-клиенте: ищите их, читайте один, пересчитывайте на другое количество человек, просматривайте категории и подбирайте вина.

Только чтение. Без ключа API, без аккаунта.

Version française


Установка

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

Инструменты

Инструмент

Назначение

search_recipes

Найти рецепты по блюду или ингредиенту

get_recipe

Прочитать один рецепт, при необходимости пересчитанный

list_categories

Категории, по которым просматриваются рецепты

browse_recipes

Рецепты одной категории

get_wine_pairings

Пять вин к блюду или указатель блюд

scale_ingredients

Пересчитать любой французский список ингредиентов в офлайне

Рецепт идентифицируется номером в его адресе: 4210 в /recette/4210/veloute-de-gaverole.html. search_recipes и browse_recipes возвращают этот номер в каждой строке.

search_recipes

Аргумент

Тип

По умолчанию

Примечания

query

строка

обязательно

Блюдо или ингредиент, на французском

limit

целое

20

от 1 до 39

page

целое

1

от 1 до 1000

category

строка

Метка фасета, например Poissons

{
  "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

Аргумент

Тип

По умолчанию

Примечания

id

строка

обязательно

Номер в адресе

servings

целое

от 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 читает одну из них:

Аргумент

Тип

По умолчанию

Примечания

category

строка

обязательно

Токен, например 107/recettes-desserts

limit

целое

20

от 1 до 30

page

целое

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.

Аргумент

Тип

Примечания

id

строка

Номер в адресе блюда

page

целое

от 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

Пересчитывает любой французский список ингредиентов без обращения к сети.

Аргумент

Тип

Примечания

ingredients

строка[]

от 1 до 200 строк

factor

число

больше 0, до 100

from_servings и to_servings

целое

от 1 до 1000, вместо factor

Каждая строка возвращается с пометкой. scaled — это точная арифметика. rounded переведено в количество, которое можно отмерить на кухне, с note, указывающим точную цифру, из которой оно переведено. unscaled не имело количества для умножения. Единицы остаются в системе, использованной в рецепте, а приблизительная мера сохраняет свой размер: четыре раза по одной щепотке — это четыре щепотки.

get_recipe применяет те же правила, когда получает servings.

Настройки

Переменные окружения, все необязательные. Значение вне диапазона отклоняется в stderr, и применяется значение по умолчанию.

Переменная

По умолчанию

Диапазон

STO_USER_AGENT

Ваш идентификатор, добавляемый перед идентификатором этого проекта

STO_MIN_INTERVAL_MS

3000

от 3000 до 60000

STO_TIMEOUT_MS

20000

от 1000 до 120000

STO_MAX_RETRIES

3

от 0 до 8

STO_CACHE_TTL_MS

900000

от 0 до 86400000, 0 отключает кэш

STO_CACHE_MAX_ENTRIES

200

от 1 до 5000

STO_LOG_LEVEL

error

silent, error, info, debug

Один запрос за раз. STO_MIN_INTERVAL_MS увеличивает интервал между двумя запросами выше его минимального значения 3000 мс, и ни одна настройка не уменьшает его.

Ошибки

Код

Значение

not_found

По этому адресу ничего нет

invalid_input

Аргументы не позволили сформировать запрос

rate_limited

Сайт попросил снизить темп; повторите через мгновение

parse_failure

Страница пришла в виде, который этот сервер не может прочитать

network_error

Запрос не удался

timeout

Нет ответа в течение установленного срока

Каждое сообщение начинается с его кода в скобках.

Как библиотека

Слой чтения поставляется отдельно, со своим темпом, кэшем и обработкой ошибок:

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-supertoinette

Ou 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-supertoinette

Le conteneur a seulement besoin de joindre www.supertoinette.com.

Les outils

Outil

Rôle

search_recipes

Chercher des recettes par plat ou par ingrédient

get_recipe

Lire une recette, remise à l'échelle sur demande

list_categories

Les catégories par lesquelles parcourir les recettes

browse_recipes

Les recettes d'une catégorie

get_wine_pairings

Cinq vins pour un plat, ou l'index des plats

scale_ingredients

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

query

chaîne

obligatoire

Un plat ou un ingrédient

limit

entier

20

1 à 39

page

entier

1

1 à 1000

category

chaîne

Un libellé de facette, Poissons

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

id

chaîne

obligatoire

Le numéro de l'adresse

servings

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 :

Аргумент

Тип

По умолчанию

Примечания

category

строка

обязательно

Токен, например 107/recettes-desserts

limit

целое

20

от 1 до 30

page

целое

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.

Аргумент

Тип

Примечания

id

строка

Номер адреса блюда

page

целое

от 1 до 100, для указателя

Пять рангов — это ранги Supertoinette, в её порядке.

scale_ingredients

Пересчитывает французский список ингредиентов без обращения к сети.

Аргумент

Тип

Примечания

ingredients

строка[]

от 1 до 200 строк

factor

число

Больше 0, до 100

from_servings и to_servings

целое

от 1 до 1000, вместо factor

Каждая строка возвращается помеченной. scaled — для точного расчёта. rounded — для значения, приведённого к измеримой на кухне величине, с note, указывающей точное число, на которое оно изменилось. unscaled — для строки без количества, которое нужно умножать. Единицы остаются в системе рецепта, а приблизительная мера сохраняет свой размер: четыре щепотки — это четыре щепотки.

get_recipe применяет те же правила, когда ей передают servings.

Настройки

Переменные окружения, все необязательные. Значение вне пределов отклоняется с сообщением в stderr, и применяется значение по умолчанию.

Переменная

По умолчанию

Пределы

STO_USER_AGENT

Ваш идентификатор, помещаемый перед идентификатором проекта

STO_MIN_INTERVAL_MS

3000

от 3000 до 60000

STO_TIMEOUT_MS

20000

от 1000 до 120000

STO_MAX_RETRIES

3

от 0 до 8

STO_CACHE_TTL_MS

900000

от 0 до 86400000, 0 отключает кэш

STO_CACHE_MAX_ENTRIES

200

от 1 до 5000

STO_LOG_LEVEL

error

silent, error, info, debug

Один запрос за раз. STO_MIN_INTERVAL_MS увеличивает интервал между двумя запросами сверх его нижнего порога в 3000 мс, и ни одна настройка не уменьшает его.

Ошибки

Код

Значение

not_found

По этому адресу ничего нет

invalid_input

Аргументы не могли сформировать запрос

rate_limited

Сайт попросил замедлиться; повторите через некоторое время

parse_failure

Страница пришла в виде, нечитаемом для этого сервера

network_error

Запрос не удался

timeout

Нет ответа в течение установленного времени

Каждое сообщение начинается с его кода в квадратных скобках.

Как библиотека

Слой чтения публикуется отдельно, со своим темпом, кэшем и обработкой ошибок:

import { SupertoinetteClient } from "mcp-supertoinette/client";

Количества возвращаются такими, как их публикует Supertoinette; пересчёт масштаба находится в инструментах выше.

Атрибуция

Рецепты, названия и фотографии принадлежат Supertoinette. Указывайте сайт и ставьте ссылку на страницу, когда показываете рецепт.

Вклад

См. CONTRIBUTING.md. Под лицензией MIT.

A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
2Releases (12mo)
Commit activity

Related MCP Servers

  • F
    license
    C
    quality
    D
    maintenance
    Enables 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
  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to search for recipes, get nutritional information, find ingredients, and more through the Spoonacular Food API using natural language.
    6
    15
    5
    ISC
  • A
    license
    A
    quality
    B
    maintenance
    MCP server that searches French recipes from Marmiton, reads ingredients and steps, and rescales quantities to any number of servings without requiring an API key.
    6
    3
    2,395
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Search and read recipes from the English Wikibooks Cookbook, with tools to rescale ingredient lists to a target number of servings.
    4
    117
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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