accueil / serveurs / IA & Mémoire / io.github.adamdecaf/recall-kitchen
io.github.adamdecaf/recall-kitchen
serveur MCP (Model Context Protocol) · recall-kitchen-mcp unknown
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que io.github.adamdecaf/recall-kitchen est sûr ?
Au dernier audit MCP Hub, le serveur MCP « io.github.adamdecaf/recall-kitchen » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 20 outils
- add_inventory_product≈ 338 tokens
Add a product to this API key's inventory. Optional category is food, beverage, baby, household, electronics, vehicle, medical_device, drug, cosmetics, pet, or other. Requires a verified account (sign in at https://app.recallkitchen.com with the signup email). Unverified signup keys cannot add inventory.
Paramètres, retour & exemple (4)
Paramètressku· string · optionnel
optional SKU or UPCname· string · requis
product namebrand· string · optionnel
optional brandcategory· string · optionnel · food | beverage | baby | household | electronics | vehicle | medical_device | drug
optional product category: food, beverage, baby, household, electronics, vehicle, medical_device, drug, cosmetics, pet, or other
Exemple d'appel{"name": "add_inventory_product", "arguments": {"name": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"id": 1, "sku": "texte", "name": "texte", "brand": "texte", "category": "texte"}} - add_watch_pattern≈ 214 tokens
Add a recall watch pattern for this API key. Same websearch syntax as search_product_recalls (AND, OR, -exclude, quoted phrases). Requires an API key.
Paramètres, retour & exemple (2)
Paramètresweight· integer · optionnel
optional weight 0-8, default 4pattern· string · requis
websearch pattern: unquoted words are AND, OR is or, -term excludes, quoted phrases match as a unit
Exemple d'appel{"name": "add_watch_pattern", "arguments": {"pattern": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"weight": 1, "pattern": "texte"}} - check_tracked_products≈ 779 tokens
Check this API key's watch patterns and inventory against current indexed recalls (including historical notices). Does not create notifications. Generic patterns such as food or hazard only match in titles. Requires an API key.
Paramètres, retour & exemple (2)
Paramètreslimit· integer · optionnel
maximum matches to returnoffset· integer · optionnel
number of matches to skip
Exemple d'appel{"name": "check_tracked_products", "arguments": {"limit": 1, "offset": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"offset": 1, "matches": "texte", "message": "texte", "nextOffset": "texte"}} - create_api_key≈ 345 tokens
Create an additional API key for this account. Requires an existing API key. Unverified accounts may have only one key; verified accounts may have three. Usage is counted per account, not per key.
Paramètres, retour & exemple (2)
Paramètreskind· string · optionnel · user | agent
optional kind: user or agent, default agentname· string · optionnel
optional key name
Exemple d'appel{"name": "create_api_key", "arguments": {"kind": "user", "name": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"kind": "texte", "name": "texte", "key_id": "texte", "limits": {}, "api_key": "texte", "message": "texte"}} - get_product_recall≈ 525 tokens
Get a recall by id, including extracted lots, UPCs, model numbers, locations, contact info, and product photo URLs
Paramètres, retour & exemple (2)
Paramètresid· string · optionnel
alias for recall_idrecall_id· string · optionnel
recall id returned by search tools
Exemple d'appel{"name": "get_product_recall", "arguments": {"id": "texte", "recall_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"id": "texte", "url": "texte", "title": "texte", "source": "texte", "status": "texte", "extracted": "texte", "description": "texte", "publishedOn": "texte", "descriptionTruncated": true}} - give_feedback≈ 396 tokens
Report a bug, missing capability, bad search result, or confusing schema to the Recall Kitchen team. Use this instead of silently working around a problem. message is required and should include the MCP tool names you called, the actions you took, the query or identifiers, and any recall_id. Do not send API keys, photos, or PII. Optional category: bad_result, tool_error, missing_capability, confusing_schema, docs, other. Optional severity: blocked, workaround, annoyance. No API key or x402 required. Does not count against search quotas.
Paramètres, retour & exemple (3)
Paramètresmessage· string · requis
describe the problem. Include the MCP tool names you called, the actions you took, the query or identifiers, and any recall_id. Do not send API keys, photos, or PII.category· string · optionnel · bad_result | tool_error | missing_capability | confusing_schema | docs | other
optional: bad_result, tool_error, missing_capability, confusing_schema, docs, or otherseverity· string · optionnel · blocked | workaround | annoyance
optional: blocked, workaround, or annoyance
Exemple d'appel{"name": "give_feedback", "arguments": {"message": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"message": "texte", "accepted": true}} - list_api_keys≈ 328 tokens
List this account's API keys (id, name, prefix, created). Secrets are not shown. Requires an API key.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "list_api_keys", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"keys": "texte", "limits": {}, "message": "texte"}} - list_inventory≈ 280 tokens
List this API key's tracked inventory products. Requires an API key.
Paramètres, retour & exemple (3)
Paramètreslimit· integer · optionnel
number of products to returnquery· string · optionnel
optional inventory searchoffset· integer · optionnel
number of products to skip
Exemple d'appel{"name": "list_inventory", "arguments": {"limit": 1, "query": "texte", "offset": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"offset": 1, "products": "texte", "nextOffset": "texte"}} - list_recall_notifications≈ 744 tokens
List recall notifications for this API key. unread defaults to true (unread only); pass false for all. Empty for new accounts until a new matching recall is published; not a backfill of check_tracked_products. message is a short plain-text summary. Requires an API key.
Paramètres, retour & exemple (3)
Paramètreslimit· integer · optionnel
number of notifications to returnoffset· integer · optionnel
number of notifications to skipunread· null|boolean · optionnel
if true, only unread notifications; if false, include read. Default: true (unread only)
Exemple d'appel{"name": "list_recall_notifications", "arguments": {"limit": 1, "offset": 1, "unread": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"offset": 1, "message": "texte", "nextOffset": "texte", "notifications": "texte"}} - list_watch_patterns≈ 154 tokens
List this API key's recall watch patterns. Requires an API key.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "list_watch_patterns", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"patterns": "texte"}} - lookup_product≈ 285 tokens
Look up a product by UPC/EAN. Returns found=false when unknown. Does not search recalls.
Paramètres, retour & exemple (1)
Paramètresupc· string · requis
UPC or EAN barcode digits
Exemple d'appel{"name": "lookup_product", "arguments": {"upc": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"upc": "texte", "hint": "texte", "found": true, "product": "texte", "branded_food": "texte"}} - mark_notification_read≈ 195 tokens
Mark a recall notification as read (default) or unread. Requires an API key.
Paramètres, retour & exemple (2)
Paramètresread· null|boolean · optionnel
if true, mark read; if false, mark unread. Default truerecall_id· string · requis
recall id from list_recall_notifications
Exemple d'appel{"name": "mark_notification_read", "arguments": {"recall_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"read": true, "updated": true, "recall_id": "texte"}} - remove_inventory_product≈ 151 tokens
Remove a product from this API key's inventory by id. Requires an API key.
Paramètres, retour & exemple (1)
Paramètresid· integer · requis
inventory product id from list_inventory
Exemple d'appel{"name": "remove_inventory_product", "arguments": {"id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"id": 1, "removed": true}} - remove_watch_pattern≈ 148 tokens
Remove a recall watch pattern for this API key. Requires an API key.
Paramètres, retour & exemple (1)
Paramètrespattern· string · requis
watch pattern to remove
Exemple d'appel{"name": "remove_watch_pattern", "arguments": {"pattern": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"pattern": "texte", "removed": true}} - revoke_api_key≈ 160 tokens
Revoke an API key by key_id from list_api_keys. Requires an API key. Revoking the current key will fail subsequent calls.
Paramètres, retour & exemple (1)
Paramètreskey_id· string · requis
key_id from list_api_keys
Exemple d'appel{"name": "revoke_api_key", "arguments": {"key_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"key_id": "texte", "revoked": true}} - search_product_recalls≈ 1088 tokens
Search product recalls by query. Query uses websearch syntax: unquoted words are AND, OR is or, -term excludes, quoted phrases match as a unit (example: Generac Generator -Portable). Optional filters: source (cpsc, fdafoodsafety, FDAMedWatch, usda, nhtsa, canada, costco, target, walmart, openfda), since/until (YYYY-MM-DD), location (country, region, or place, ANDed with the query), offset, limit. Descriptions are truncated and extracted products are capped; use get_product_recall for the full text.
Paramètres, retour & exemple (9)
Paramètreslimit· integer · optionnel
number of recalls to return, 1-100, default 3query· string · optionnel
websearch query: unquoted words are AND, OR is or, -term excludes, quoted phrases match as a unit. Example: Generac Generator -Portablesince· string · optionnel
optional published-on start date YYYY-MM-DDuntil· string · optionnel
optional published-on end date YYYY-MM-DDyears· integer · optionnel
optional published window in years (1-50). Ignored when since is setoffset· integer · optionnel
number of recalls to skipsource· string · optionnel · cpsc | fdafoodsafety | FDAMedWatch | usda | nhtsa | canada | costco | target
optional source filter: cpsc, fdafoodsafety, FDAMedWatch, usda, nhtsa, canada, costco, target, walmart, or openfda. Aliases: FDA and food map to fdafoodsafety; medwatch maps to FDAMedWatch; vehicle, vin, and car map to nhtsa; healthcanada, cfia, and hc-sc map to canada; sams maps to walmart; enforcement, res, and fdaenforcement map to openfda. For more than one source, pass sources.sources· array · optionnel
optional sources to include (OR). Same values as sourcelocation· string · optionnel
optional country, region, or place; ANDed with the query. USA, Canada, Mexico, EU, and Europe match places in that region. CA is California, not Canada.
Exemple d'appel{"name": "search_product_recalls", "arguments": {"limit": 1, "query": "texte", "since": "texte", "until": "texte", "years": 1, "offset": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"offset": 1, "recalls": "texte", "nextOffset": "texte"}} - search_product_recalls_by_upc≈ 804 tokens
Search recalls by UPC/EAN or a barcode image URL/data URI/MCP image content. Matches extracted recall UPCs first. Returns found=false when the UPC is unknown.
Paramètres, retour & exemple (6)
Paramètresupc· string · optionnel
UPC or EAN barcode digitsurl· string · optionnel
alias for image_urllimit· integer · optionnel
number of recalls to return, 1-100, default 3offset· integer · optionnel
number of recalls to skipbarcode· string · optionnel
alias for upcimage_url· string · optionnel
optional HTTPS URL or data:image/...;base64 URI of a barcode image
Exemple d'appel{"name": "search_product_recalls_by_upc", "arguments": {"upc": "texte", "url": "texte", "limit": 1, "offset": 1, "barcode": "texte", "image_url": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"upc": "texte", "hint": "texte", "found": true, "match": "texte", "offset": 1, "product": "texte", "recalls": "texte", "confidence": 1, "nextOffset": "texte"}} - search_product_recalls_from_image≈ 1254 tokens
Photo (beta): identify products in a public HTTPS image URL, data:image/...;base64 URI, or MCP image content part. Local files are not supported. Each product includes match (upc, model, text, category) and confidence. Category matches omit recalls unless include_category_matches=true. Requires an API key or x402; not included in the free anonymous per-IP quota.
Paramètres, retour & exemple (4)
Paramètresurl· string · optionnel
alias for image_urllimit· integer · optionnel
number of recalls to return per product, 1-100, default 3image_url· string · optionnel
photo (beta). HTTPS URL or data:image/...;base64 URI of a photo containing products. Local file paths are not supported.include_category_matches· boolean · optionnel
if true, attach keyword recalls for generic items such as cups; default false
Exemple d'appel{"name": "search_product_recalls_from_image", "arguments": {"url": "texte", "limit": 1, "image_url": "texte", "include_category_matches": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"recalls": "texte", "products": "texte"}} - search_recalls_by_identifier≈ 917 tokens
Search recalls by extracted UPC, lot code, model number, product name, or VIN. Multiple identifiers are AND-matched on the same product. VIN lookup lists NHTSA campaigns for the decoded year and make; confirm your vehicle on nhtsa.gov/recalls. lot_code matches extracted lot codes after normalizing spaces, case, and punctuation; if lots were not extracted, also searches notice title and description — verify against the notice. product_name falls back to the same full-text search as search_product_recalls when no exact extracted name matches, and returns a hint if still empty.
Paramètres, retour & exemple (7)
Paramètresupc· string · optionnel
product UPC or EAN as stored on the recallvin· string · optionnel
17-character VIN. Lookup lists NHTSA campaigns for the decoded year and make; confirm your vehicle on nhtsa.gov/recalls.limit· integer · optionnel
number of recalls to returnoffset· integer · optionnel
number of recalls to skiplot_code· string · optionnel
lot or batch code. Matches extracted lot codes after normalizing spaces, case, and punctuation; if lots were not extracted, also searches the notice title and description. Verify against the notice.model_number· string · optionnel
model number as stored on the recallproduct_name· string · optionnel
extracted product name (exact match; if none, falls back to the same full-text search as search_product_recalls)
Exemple d'appel{"name": "search_recalls_by_identifier", "arguments": {"upc": "texte", "vin": "texte", "limit": 1, "offset": 1, "lot_code": "texte", "model_number": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"hint": "texte", "offset": 1, "recalls": "texte", "nextOffset": "texte"}} - signup≈ 576 tokens
Create a Recall Kitchen account and API key from an email. No API key or x402 payment required. Set accept_terms true only after you ask the person and they confirm they are 13 or older and accept the Terms (https://recallkitchen.com/terms), Privacy Policy (https://recallkitchen.com/privacy) and API Terms (https://recallkitchen.com/api-terms); never set it automatically or on the person's behalf. The key is returned once. Unverified accounts have lower rate limits (60 tool calls/hour, 400/day, one key) and can add a few watch patterns. Sign in at https://app.recallkitchen.com with the same email to verify, raise limits, and add inventory. Does not re-issue a key if the email already has an account.
Paramètres, retour & exemple (3)
Paramètresname· string · optionnel
optional display nameemail· string · requis
email address for the new accountaccept_terms· boolean · requis
Set true only after you ask the person and they confirm they are 13 or older and accept the Terms (https://recallkitchen.com/terms), Privacy Policy (https://recallkitchen.com/privacy) and API Terms (https://recallkitchen.com/api-terms). Never set this automatically or on the person's behalf.
Exemple d'appel{"name": "signup", "arguments": {"email": "texte", "accept_terms": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"email": "texte", "key_id": "texte", "limits": {}, "api_key": "texte", "message": "texte", "user_id": "texte", "email_verified": true}}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».