Koskamo

Recall Kitchen MCP

An MCP server that enables AI agents to search public product recall notices from government agencies like CPSC, FDA, and USDA. It supports keyword, identifier, UPC, and image-based searches, allowing users to find specific recalls, track products, and receive notifications about safety alerts.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Recall Kitchen MCP logo, by Recall KitchenCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by Recall Kitchen
You need:An API key from the MCP signup tool, or the app's Integrations pageOr try a few anonymous MCP searches (no key) from an explorer or demo, then sign up or pay with x402Or an x402-capable client for pay-per-request calls after the free IP quota
MCP endpoint (Streamable HTTP)
https://app.recallkitchen.com/mcp
Vendor documentation

What its tools do

20 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

20 of 20 have a description · 20 of 20 declare behavior hints · 18 of 18 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Search for product recalls by keyword or UPC
  • Retrieve detailed recall information including lots and locations
  • Scan images to identify recalled products
  • Track specific products for new recall notifications

Source and maintenance

Community listingRegistry 1.0.1
Maintenance checked

Protocol and capabilities

Server
recall-kitchen-mcp unknown
MCP protocol negotiated in check
2025-11-25
Tools
20 advertised
Resources
2 advertised
Resource templates
0 advertised
Prompts
4 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  },
  "logging": {},
  "prompts": {
    "listChanged": true
  },
  "resources": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Recall Kitchen searches government recall notices from U.S. CPSC, FDA food, FDA MedWatch, openFDA enforcement, USDA FSIS, and NHTSA, plus Health Canada / CFIA recalls and safety alerts. Query syntax for search_product_recalls and watch patterns: unquoted words are AND, OR is or, -term excludes, "quoted words" are a phrase. Example: Generac Generator -Portable. Access: - Free (no key): initialize, tools/list, resources, prompts, signup, and give_feedback. A few search calls per IP (5/hour, 15/day): search_product_recalls, search_recalls_by_identifier, search_product_recalls_by_upc, lookup_product, get_product_recall. - Paid (x402, USDC on Base): anonymous search after the IP quota, and search_product_recalls_from_image (photo (beta)) without a key. Account tools do not work with x402. - Signup (email, no key): mints one API key, shown once. Unverified: 60 tool calls/hour, 400/day, 1 key, up to 3 watch patterns, no inventory. Send X-API-Key: rk_... (Grok) or Authorization: Bearer rk_... (Claude/Cursor). - API key (signup is enough): all search including photo (beta), watch patterns, check_tracked_products, notifications, list/create/revoke keys. - Verification (sign in at https://app.recallkitchen.com with the same email): inventory, and higher limits (600/hour, 3,000/day, 3 keys, 20 patterns, 50 inventory products). Which tool to use: - search_product_recalls: keyword search with that query syntax. Optional source, sources (OR of several), dates (YYYY-MM-DD), years (1-50, ignored if since is set), and location (country, region, or place; ANDed with the query). USA, Canada, Mexico, EU, and Europe match places in that region. CA is California, not Canada. Descriptions are truncated; call get_product_recall for the full text. - search_recalls_by_identifier: UPC, lot, model, product name, or VIN from extracted recall data. Prefer this for barcodes, lot codes, and VINs. 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; if still empty, a hint is returned. - search_product_recalls_by_upc: look up a UPC and search extracted recall UPCs. Returns found=false if the UPC is unknown. - lookup_product: catalog/USDA branded-food info only; does not search recalls. - search_product_recalls_from_image: photo (beta). Public HTTPS image URL, data:image/...;base64 URI, or MCP image content. Local file paths are not supported. Runs the same layered scan pipeline as the signed-in app (barcode, OCR, visual) and returns the final fused products (not a stream). Results include confidence and match (upc, model, text, category). Category matches omit recalls unless include_category_matches=true. Requires an API key or x402 (not in the free anonymous quota). Stored photos can be deleted in the signed-in app (photo, saved details, or both). Email support@recallkitchen.com for a partial or full account deletion. - get_product_recall: full description plus extracted lots, UPCs, models, locations, contacts, and product photo URLs. Each result includes status (active, terminated, completed, correction, deleted, or FDA advisory). FDA Food Alerts & Advisories notices use status "FDA advisory" and keep FDA's own headline; confirm against the linked official notice. Recall data comes from government agencies and may be delayed, incomplete, or inaccurate. - Account: signup (email, no key required; returns an API key once). 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. create_api_key / list_api_keys / revoke_api_key (require an existing key), list/add/remove_watch_pattern, list/add/remove_inventory_product, check_tracked_products (live search of current recalls vs watches/inventory; does not write alerts), list_recall_notifications (inbox of new matches that show up in Recall Kitchen when matching recalls are published; empty for new accounts until the next matching ingest), mark_notification_read. Unverified signup accounts have lower rate limits (60 tool calls/hour) and can add a few watch patterns. Inventory requires verification (sign in at https://app.recallkitchen.com with the same email). - give_feedback: report a bug, missing capability, bad search result, or confusing schema. No key or x402. Does not count against search quotas. message should include the 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) and severity (blocked, workaround, annoyance). If a tool fails unexpectedly, a result looks wrong, a schema field is confusing, or a needed capability is missing, call give_feedback. Prompts: check_product, check_upc, scan_image, list_vin_campaigns. Resources: recall://docs/tools, recall://docs/sources.

Tools

20 advertised

add_inventory_product
Advertised by the server during the last successful anonymous check.

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.

add_inventory_product input schema
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "sku": {
      "type": "string",
      "description": "optional SKU or UPC"
    },
    "name": {
      "type": "string",
      "description": "product name"
    },
    "brand": {
      "type": "string",
      "description": "optional brand"
    },
    "category": {
      "enum": [
        "food",
        "beverage",
        "baby",
        "household",
        "electronics",
        "vehicle",
        "medical_device",
        "drug",
        "cosmetics",
        "pet",
        "other"
      ],
      "type": "string",
      "description": "optional product category: food, beverage, baby, household, electronics, vehicle, medical_device, drug, cosmetics, pet, or other"
    }
  },
  "additionalProperties": false
}
add_inventory_product output schema
{
  "type": "object",
  "required": [
    "id",
    "name",
    "brand",
    "category",
    "sku"
  ],
  "properties": {
    "id": {
      "type": "integer"
    },
    "sku": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "brand": {
      "type": "string"
    },
    "category": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
add_inventory_product annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
add_watch_pattern
Advertised by the server during the last successful anonymous check.

Add a recall watch pattern for this API key. Same websearch syntax as search_product_recalls (AND, OR, -exclude, quoted phrases). New matches show up in Recall Kitchen. Requires an API key.

add_watch_pattern input schema
{
  "type": "object",
  "required": [
    "pattern"
  ],
  "properties": {
    "weight": {
      "type": "integer",
      "maximum": 8,
      "minimum": 0,
      "description": "optional weight 0-8, default 4"
    },
    "pattern": {
      "type": "string",
      "description": "websearch pattern: unquoted words are AND, OR is or, -term excludes, quoted phrases match as a unit"
    }
  },
  "additionalProperties": false
}
add_watch_pattern output schema
{
  "type": "object",
  "required": [
    "pattern",
    "weight"
  ],
  "properties": {
    "weight": {
      "type": "integer"
    },
    "pattern": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
add_watch_pattern annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
check_tracked_products
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

check_tracked_products input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 3,
      "maximum": 100,
      "minimum": 1,
      "description": "maximum matches to return"
    },
    "offset": {
      "type": "integer",
      "maximum": 100,
      "minimum": 0,
      "description": "number of matches to skip"
    }
  },
  "additionalProperties": false
}
check_tracked_products output schema
{
  "type": "object",
  "required": [
    "matches",
    "offset"
  ],
  "properties": {
    "offset": {
      "type": "integer"
    },
    "matches": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "recall",
          "reasons"
        ],
        "properties": {
          "recall": {
            "type": "object",
            "required": [
              "id",
              "source",
              "title",
              "description",
              "url",
              "publishedOn"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "url": {
                "type": "string"
              },
              "title": {
                "type": "string"
              },
              "source": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "extracted": {
                "type": [
                  "null",
                  "object"
                ],
                "properties": {
                  "images": {
                    "type": [
                      "null",
                      "array"
                    ],
                    "items": {
                      "type": "string"
                    }
                  },
                  "stores": {
                    "type": [
                      "null",
                      "array"
                    ],
                    "items": {
                      "type": "string"
                    }
                  },
                  "contact": {
                    "type": [
                      "null",
                      "object"
                    ],
                    "properties": {
                      "emails": {
                        "type": [
                          "null",
                          "array"
                        ],
                        "items": {
                          "type": "string"
                        }
                      },
                      "phones": {
                        "type": [
                          "null",
                          "array"
                        ],
                        "items": {
                          "type": "string"
                        }
                      },
                      "websites": {
                        "type": [
                          "null",
                          "array"
                        ],
                        "items": {
                          "type": "string"
                        }
                      }
                    },
                    "additionalProperties": false
                  },
                  "products": {
                    "type": [
                      "null",
                      "array"
                    ],
                    "items": {
                      "type": "object",
                      "properties": {
                        "upcs": {
                          "type": [
                            "null",
                            "array"
                          ],
                          "items": {
                            "type": "string"
                          }
                        },
                        "lotCodes": {
                          "type": [
                            "null",
                            "array"
                          ],
                          "items": {
                            "type": "string"
                          }
                        },
                        "packaging": {
                          "type": "string"
                        },
                        "useByDates": {
                          "type": [
                            "null",
                            "array"
                          ],
                          "items": {
                            "type": "string"
                          }
                        },
                        "productName": {
                          "type": "string"
                        },
                        "modelNumbers": {
                          "type": [
                            "null",
                            "array"
                          ],
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "locations": {
                    "type": [
                      "null",
                      "array"
                    ],
                    "items": {
                      "type": "string"
                    }
                  },
                  "establishments": {
                    "type": [
                      "null",
                      "array"
                    ],
                    "items": {
                      "type": "string"
                    }
                  },
                  "productsTruncated": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              "description": {
                "type": "string"
              },
              "publishedOn": {
                "type": "string"
              },
              "descriptionTruncated": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          "reasons": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "patterns": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "inventory": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "object",
              "required": [
                "id",
                "name",
                "brand",
                "category",
                "sku"
              ],
              "properties": {
                "id": {
                  "type": "integer"
                },
                "sku": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "brand": {
                  "type": "string"
                },
                "category": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          }
        },
        "additionalProperties": false
      }
    },
    "message": {
      "type": "string"
    },
    "nextOffset": {
      "type": [
        "null",
        "integer"
      ]
    }
  },
  "additionalProperties": false
}
check_tracked_products annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_api_key
Advertised by the server during the last successful anonymous check.

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.

create_api_key input schema
{
  "type": "object",
  "properties": {
    "kind": {
      "enum": [
        "user",
        "agent"
      ],
      "type": "string",
      "description": "optional kind: user or agent, default agent"
    },
    "name": {
      "type": "string",
      "description": "optional key name"
    }
  },
  "additionalProperties": false
}
create_api_key output schema
{
  "type": "object",
  "required": [
    "key_id",
    "name",
    "kind",
    "api_key",
    "limits",
    "message"
  ],
  "properties": {
    "kind": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "key_id": {
      "type": "string"
    },
    "limits": {
      "type": "object",
      "required": [
        "hourly",
        "daily",
        "max_keys_per_user",
        "max_watch_patterns",
        "max_inventory",
        "allow_account_writes",
        "tier"
      ],
      "properties": {
        "tier": {
          "type": "string"
        },
        "daily": {
          "type": "integer"
        },
        "hourly": {
          "type": "integer"
        },
        "max_inventory": {
          "type": "integer"
        },
        "max_keys_per_user": {
          "type": "integer"
        },
        "max_watch_patterns": {
          "type": "integer"
        },
        "allow_account_writes": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "api_key": {
      "type": "string"
    },
    "message": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
create_api_key annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
get_product_recall
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Get a recall by id, including extracted lots, UPCs, model numbers, locations, contact info, and product photo URLs

get_product_recall input schema
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "alias for recall_id"
    },
    "recall_id": {
      "type": "string",
      "description": "recall id returned by search tools"
    }
  },
  "additionalProperties": false
}
get_product_recall output schema
{
  "type": "object",
  "required": [
    "id",
    "source",
    "title",
    "description",
    "url",
    "publishedOn"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "source": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "extracted": {
      "type": [
        "null",
        "object"
      ],
      "properties": {
        "images": {
          "type": [
            "null",
            "array"
          ],
          "items": {
            "type": "string"
          }
        },
        "stores": {
          "type": [
            "null",
            "array"
          ],
          "items": {
            "type": "string"
          }
        },
        "contact": {
          "type": [
            "null",
            "object"
          ],
          "properties": {
            "emails": {
              "type": [
                "null",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "phones": {
              "type": [
                "null",
                "array"
              ],
              "items": {
                "type": "string"
              }
            },
            "websites": {
              "type": [
                "null",
                "array"
              ],
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "products": {
          "type": [
            "null",
            "array"
          ],
          "items": {
            "type": "object",
            "properties": {
              "upcs": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "type": "string"
                }
              },
              "lotCodes": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "type": "string"
                }
              },
              "packaging": {
                "type": "string"
              },
              "useByDates": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "type": "string"
                }
              },
              "productName": {
                "type": "string"
              },
              "modelNumbers": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "type": "string"
                }
              }
            },
            "additionalProperties": false
          }
        },
        "locations": {
          "type": [
            "null",
            "array"
          ],
          "items": {
            "type": "string"
          }
        },
        "establishments": {
          "type": [
            "null",
            "array"
          ],
          "items": {
            "type": "string"
          }
        },
        "productsTruncated": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "description": {
      "type": "string"
    },
    "publishedOn": {
      "type": "string"
    },
    "descriptionTruncated": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}
get_product_recall annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
give_feedback
Advertised by the server during the last successful anonymous check.

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.

give_feedback input schema
{
  "type": "object",
  "required": [
    "message"
  ],
  "properties": {
    "message": {
      "type": "string",
      "description": "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": {
      "enum": [
        "bad_result",
        "tool_error",
        "missing_capability",
        "confusing_schema",
        "docs",
        "other"
      ],
      "type": "string",
      "description": "optional: bad_result, tool_error, missing_capability, confusing_schema, docs, or other"
    },
    "severity": {
      "enum": [
        "blocked",
        "workaround",
        "annoyance"
      ],
      "type": "string",
      "description": "optional: blocked, workaround, or annoyance"
    }
  },
  "additionalProperties": false
}
give_feedback output schema
{
  "type": "object",
  "required": [
    "accepted",
    "message"
  ],
  "properties": {
    "message": {
      "type": "string"
    },
    "accepted": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}
give_feedback annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
list_api_keys
Advertised by the server during the last successful anonymous check.
Advertised read-only

List this account's API keys (id, name, prefix, created). Secrets are not shown. Requires an API key.

list_api_keys input schema
{
  "type": "object",
  "additionalProperties": false
}
list_api_keys output schema
{
  "type": "object",
  "required": [
    "keys",
    "limits"
  ],
  "properties": {
    "keys": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "key_id",
          "name",
          "kind",
          "key_prefix",
          "created_at"
        ],
        "properties": {
          "kind": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "key_id": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "key_prefix": {
            "type": "string"
          },
          "last_used_at": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "additionalProperties": false
      }
    },
    "limits": {
      "type": "object",
      "required": [
        "hourly",
        "daily",
        "max_keys_per_user",
        "max_watch_patterns",
        "max_inventory",
        "allow_account_writes",
        "tier"
      ],
      "properties": {
        "tier": {
          "type": "string"
        },
        "daily": {
          "type": "integer"
        },
        "hourly": {
          "type": "integer"
        },
        "max_inventory": {
          "type": "integer"
        },
        "max_keys_per_user": {
          "type": "integer"
        },
        "max_watch_patterns": {
          "type": "integer"
        },
        "allow_account_writes": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "message": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
list_api_keys annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_inventory
Advertised by the server during the last successful anonymous check.
Advertised read-only

List this API key's tracked inventory products. Requires an API key.

list_inventory input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 3,
      "maximum": 100,
      "minimum": 1,
      "description": "number of products to return"
    },
    "query": {
      "type": "string",
      "description": "optional inventory search"
    },
    "offset": {
      "type": "integer",
      "maximum": 100,
      "minimum": 0,
      "description": "number of products to skip"
    }
  },
  "additionalProperties": false
}
list_inventory output schema
{
  "type": "object",
  "required": [
    "products",
    "offset"
  ],
  "properties": {
    "offset": {
      "type": "integer"
    },
    "products": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "id",
          "name",
          "brand",
          "category",
          "sku"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "sku": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "brand": {
            "type": "string"
          },
          "category": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "nextOffset": {
      "type": [
        "null",
        "integer"
      ]
    }
  },
  "additionalProperties": false
}
list_inventory annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_recall_notifications
Advertised by the server during the last successful anonymous check.
Advertised read-only

List recall notifications for this API key. unread defaults to true (unread only); pass false for all. New matches show up in Recall Kitchen. 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.

list_recall_notifications input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 3,
      "maximum": 100,
      "minimum": 1,
      "description": "number of notifications to return"
    },
    "offset": {
      "type": "integer",
      "maximum": 100,
      "minimum": 0,
      "description": "number of notifications to skip"
    },
    "unread": {
      "type": [
        "null",
        "boolean"
      ],
      "description": "if true, only unread notifications; if false, include read. Default: true (unread only)"
    }
  },
  "additionalProperties": false
}
list_recall_notifications output schema
{
  "type": "object",
  "required": [
    "notifications",
    "offset"
  ],
  "properties": {
    "offset": {
      "type": "integer"
    },
    "message": {
      "type": "string"
    },
    "nextOffset": {
      "type": [
        "null",
        "integer"
      ]
    },
    "notifications": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "recall",
          "sentOn",
          "read"
        ],
        "properties": {
          "read": {
            "type": "boolean"
          },
          "recall": {
            "type": "object",
            "required": [
              "id",
              "source",
              "title",
              "description",
              "url",
              "publishedOn"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "url": {
                "type": "string"
              },
              "title": {
                "type": "string"
              },
              "source": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "extracted": {
                "type": [
                  "null",
                  "object"
                ],
                "properties": {
                  "images": {
                    "type": [
                      "null",
                      "array"
                    ],
                    "items": {
                      "type": "string"
                    }
                  },
                  "stores": {
                    "type": [
                      "null",
                      "array"
                    ],
                    "items": {
                      "type": "string"
                    }
                  },
                  "contact": {
                    "type": [
                      "null",
                      "object"
                    ],
                    "properties": {
                      "emails": {
                        "type": [
                          "null",
                          "array"
                        ],
                        "items": {
                          "type": "string"
                        }
                      },
                      "phones": {
                        "type": [
                          "null",
                          "array"
                        ],
                        "items": {
                          "type": "string"
                        }
                      },
                      "websites": {
                        "type": [
                          "null",
                          "array"
                        ],
                        "items": {
                          "type": "string"
                        }
                      }
                    },
                    "additionalProperties": false
                  },
                  "products": {
                    "type": [
                      "null",
                      "array"
                    ],
                    "items": {
                      "type": "object",
                      "properties": {
                        "upcs": {
                          "type": [
                            "null",
                            "array"
                          ],
                          "items": {
                            "type": "string"
                          }
                        },
                        "lotCodes": {
                          "type": [
                            "null",
                            "array"
                          ],
                          "items": {
                            "type": "string"
                          }
                        },
                        "packaging": {
                          "type": "string"
                        },
                        "useByDates": {
                          "type": [
                            "null",
                            "array"
                          ],
                          "items": {
                            "type": "string"
                          }
                        },
                        "productName": {
                          "type": "string"
                        },
                        "modelNumbers": {
                          "type": [
                            "null",
                            "array"
                          ],
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "locations": {
                    "type": [
                      "null",
                      "array"
                    ],
                    "items": {
                      "type": "string"
                    }
                  },
                  "establishments": {
                    "type": [
                      "null",
                      "array"
                    ],
                    "items": {
                      "type": "string"
                    }
                  },
                  "productsTruncated": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              "description": {
                "type": "string"
              },
              "publishedOn": {
                "type": "string"
              },
              "descriptionTruncated": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          "sentOn": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
list_recall_notifications annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_watch_patterns
Advertised by the server during the last successful anonymous check.
Advertised read-only

List this API key's recall watch patterns. Requires an API key.

list_watch_patterns input schema
{
  "type": "object",
  "additionalProperties": false
}
list_watch_patterns output schema
{
  "type": "object",
  "required": [
    "patterns"
  ],
  "properties": {
    "patterns": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "pattern",
          "weight"
        ],
        "properties": {
          "weight": {
            "type": "integer"
          },
          "pattern": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
list_watch_patterns annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
lookup_product
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Look up a product by UPC/EAN. Returns found=false when unknown. Does not search recalls.

lookup_product input schema
{
  "type": "object",
  "required": [
    "upc"
  ],
  "properties": {
    "upc": {
      "type": "string",
      "description": "UPC or EAN barcode digits"
    }
  },
  "additionalProperties": false
}
lookup_product output schema
{
  "type": "object",
  "required": [
    "upc",
    "found"
  ],
  "properties": {
    "upc": {
      "type": "string"
    },
    "hint": {
      "type": "string"
    },
    "found": {
      "type": "boolean"
    },
    "product": {
      "type": [
        "null",
        "object"
      ],
      "properties": {
        "sku": {
          "type": "string"
        },
        "upc": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "brand": {
          "type": "string"
        },
        "format": {
          "type": "string"
        },
        "category": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "branded_food": {
      "type": [
        "null",
        "object"
      ],
      "properties": {
        "category": {
          "type": "string"
        },
        "gtin_upc": {
          "type": "string"
        },
        "brand_name": {
          "type": "string"
        },
        "brand_owner": {
          "type": "string"
        },
        "ingredients": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
lookup_product annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
mark_notification_read
Advertised by the server during the last successful anonymous check.

Mark a recall notification as read (default) or unread. Requires an API key.

mark_notification_read input schema
{
  "type": "object",
  "required": [
    "recall_id"
  ],
  "properties": {
    "read": {
      "type": [
        "null",
        "boolean"
      ],
      "description": "if true, mark read; if false, mark unread. Default true"
    },
    "recall_id": {
      "type": "string",
      "description": "recall id from list_recall_notifications"
    }
  },
  "additionalProperties": false
}
mark_notification_read output schema
{
  "type": "object",
  "required": [
    "recall_id",
    "read",
    "updated"
  ],
  "properties": {
    "read": {
      "type": "boolean"
    },
    "updated": {
      "type": "boolean"
    },
    "recall_id": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
mark_notification_read annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
remove_inventory_product
Advertised by the server during the last successful anonymous check.
Advertised destructive

Remove a product from this API key's inventory by id. Requires an API key.

remove_inventory_product input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "description": "inventory product id from list_inventory"
    }
  },
  "additionalProperties": false
}
remove_inventory_product output schema
{
  "type": "object",
  "required": [
    "id",
    "removed"
  ],
  "properties": {
    "id": {
      "type": "integer"
    },
    "removed": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}
remove_inventory_product annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
remove_watch_pattern
Advertised by the server during the last successful anonymous check.
Advertised destructive

Remove a recall watch pattern for this API key. Requires an API key.

remove_watch_pattern input schema
{
  "type": "object",
  "required": [
    "pattern"
  ],
  "properties": {
    "pattern": {
      "type": "string",
      "description": "watch pattern to remove"
    }
  },
  "additionalProperties": false
}
remove_watch_pattern output schema
{
  "type": "object",
  "required": [
    "pattern",
    "removed"
  ],
  "properties": {
    "pattern": {
      "type": "string"
    },
    "removed": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}
remove_watch_pattern annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
revoke_api_key
Advertised by the server during the last successful anonymous check.
Advertised destructive

Revoke an API key by key_id from list_api_keys. Requires an API key. Revoking the current key will fail subsequent calls.

revoke_api_key input schema
{
  "type": "object",
  "required": [
    "key_id"
  ],
  "properties": {
    "key_id": {
      "type": "string",
      "description": "key_id from list_api_keys"
    }
  },
  "additionalProperties": false
}
revoke_api_key output schema
{
  "type": "object",
  "required": [
    "key_id",
    "revoked"
  ],
  "properties": {
    "key_id": {
      "type": "string"
    },
    "revoked": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}
revoke_api_key annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
search_product_recalls
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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, 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.

search_product_recalls input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 3,
      "maximum": 100,
      "minimum": 1,
      "description": "number of recalls to return, 1-100, default 3"
    },
    "query": {
      "type": "string",
      "description": "websearch query: unquoted words are AND, OR is or, -term excludes, quoted phrases match as a unit. Example: Generac Generator -Portable"
    },
    "since": {
      "type": "string",
      "description": "optional published-on start date YYYY-MM-DD"
    },
    "until": {
      "type": "string",
      "description": "optional published-on end date YYYY-MM-DD"
    },
    "years": {
      "type": "integer",
      "maximum": 50,
      "minimum": 1,
      "description": "optional published window in years (1-50). Ignored when since is set"
    },
    "offset": {
      "type": "integer",
      "maximum": 100,
      "minimum": 0,
      "description": "number of recalls to skip"
    },
    "source": {
      "enum": [
        "cpsc",
        "fdafoodsafety",
        "FDAMedWatch",
        "usda",
        "nhtsa",
        "canada",
        "openfda"
      ],
      "type": "string",
      "description": "optional source filter: cpsc, fdafoodsafety, FDAMedWatch, usda, nhtsa, canada, 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; enforcement, res, and fdaenforcement map to openfda. For more than one source, pass sources."
    },
    "sources": {
      "type": "array",
      "items": {
        "enum": [
          "cpsc",
          "fdafoodsafety",
          "FDAMedWatch",
          "usda",
          "nhtsa",
          "canada",
          "openfda"
        ],
        "type": "string"
      },
      "description": "optional sources to include (OR). Same values as source",
      "uniqueItems": true
    },
    "location": {
      "type": "string",
      "description": "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."
    }
  },
  "additionalProperties": false
}
search_product_recalls output schema
{
  "type": "object",
  "required": [
    "recalls",
    "offset"
  ],
  "properties": {
    "offset": {
      "type": "integer"
    },
    "recalls": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "id",
          "source",
          "title",
          "description",
          "url",
          "publishedOn"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "extracted": {
            "type": [
              "null",
              "object"
            ],
            "properties": {
              "images": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "type": "string"
                }
              },
              "stores": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "type": "string"
                }
              },
              "contact": {
                "type": [
                  "null",
                  "object"
                ],
                "properties": {
                  "emails": {
                    "type": [
                      "null",
                      "array"
                    ],
                    "items": {
                      "type": "string"
                    }
                  },
                  "phones": {
                    "type": [
                      "null",
                      "array"
                    ],
                    "items": {
                      "type": "string"
                    }
                  },
                  "websites": {
                    "type": [
                      "null",
                      "array"
                    ],
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "additionalProperties": false
              },
              "products": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "type": "object",
                  "properties": {
                    "upcs": {
                      "type": [
                        "null",
                        "array"
                      ],
                      "items": {
                        "type": "string"
                      }
                    },
                    "lotCodes": {
                      "type": [
                        "null",
                        "array"
                      ],
                      "items": {
                        "type": "string"
                      }
                    },
                    "packaging": {
                      "type": "string"
                    },
                    "useByDates": {
                      "type": [
                        "null",
                        "array"
                      ],
                      "items": {
                        "type": "string"
                      }
                    },
                    "productName": {
                      "type": "string"
                    },
                    "modelNumbers": {
                      "type": [
                        "null",
                        "array"
                      ],
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "additionalProperties": false
                }
              },
              "locations": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "type": "string"
                }
              },
              "establishments": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "type": "string"
                }
              },
              "productsTruncated": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          "description": {
            "type": "string"
          },
          "publishedOn": {
            "type": "string"
          },
          "descriptionTruncated": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      }
    },
    "nextOffset": {
      "type": [
        "null",
        "integer"
      ]
    }
  },
  "additionalProperties": false
}
search_product_recalls annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
search_product_recalls_by_upc
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

search_product_recalls_by_upc input schema
{
  "type": "object",
  "properties": {
    "upc": {
      "type": "string",
      "description": "UPC or EAN barcode digits"
    },
    "url": {
      "type": "string",
      "description": "alias for image_url"
    },
    "limit": {
      "type": "integer",
      "default": 3,
      "maximum": 100,
      "minimum": 1,
      "description": "number of recalls to return, 1-100, default 3"
    },
    "offset": {
      "type": "integer",
      "maximum": 100,
      "minimum": 0,
      "description": "number of recalls to skip"
    },
    "barcode": {
      "type": "string",
      "description": "alias for upc"
    },
    "image_url": {
      "type": "string",
      "description": "optional HTTPS URL or data:image/...;base64 URI of a barcode image"
    }
  },
  "additionalProperties": false
}
search_product_recalls_by_upc output schema
{
  "type": "object",
  "required": [
    "upc",
    "found",
    "recalls",
    "offset"
  ],
  "properties": {
    "upc": {
      "type": "string"
    },
    "hint": {
      "type": "string"
    },
    "found": {
      "type": "boolean"
    },
    "match": {
      "type": "string"
    },
    "offset": {
      "type": "integer"
    },
    "product": {
      "type": [
        "null",
        "object"
      ],
      "properties": {
        "sku": {
          "type": "string"
        },
        "upc": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "brand": {
          "type": "string"
        },
        "format": {
          "type": "string"
        },
        "category": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "recalls": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "id",
          "source",
          "title",
          "description",
          "url",
          "publishedOn"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "extracted": {
            "type": [
              "null",
              "object"
            ],
            "properties": {
              "images": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "type": "string"
                }
              },
              "stores": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "type": "string"
                }
              },
              "contact": {
                "type": [
                  "null",
                  "object"
                ],
                "properties": {
                  "emails": {
                    "type": [
                      "null",
                      "array"
                    ],
                    "items": {
                      "type": "string"
                    }
                  },
                  "phones": {
                    "type": [
                      "null",
                      "array"
                    ],
                    "items": {
                      "type": "string"
                    }
                  },
                  "websites": {
                    "type": [
                      "null",
                      "array"
                    ],
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "additionalProperties": false
              },
              "products": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "type": "object",
                  "properties": {
                    "upcs": {
                      "type": [
                        "null",
                        "array"
                      ],
                      "items": {
                        "type": "string"
                      }
                    },
                    "lotCodes": {
                      "type": [
                        "null",
                        "array"
                      ],
                      "items": {
                        "type": "string"
                      }
                    },
                    "packaging": {
                      "type": "string"
                    },
                    "useByDates": {
                      "type": [
                        "null",
                        "array"
                      ],
                      "items": {
                        "type": "string"
                      }
                    },
                    "productName": {
                      "type": "string"
                    },
                    "modelNumbers": {
                      "type": [
                        "null",
                        "array"
                      ],
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "additionalProperties": false
                }
              },
              "locations": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "type": "string"
                }
              },
              "establishments": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "type": "string"
                }
              },
              "productsTruncated": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          "description": {
            "type": "string"
          },
          "publishedOn": {
            "type": "string"
          },
          "descriptionTruncated": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      }
    },
    "confidence": {
      "type": "number"
    },
    "nextOffset": {
      "type": [
        "null",
        "integer"
      ]
    }
  },
  "additionalProperties": false
}
search_product_recalls_by_upc annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
search_product_recalls_from_image
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

search_product_recalls_from_image input schema
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "alias for image_url"
    },
    "limit": {
      "type": "integer",
      "default": 3,
      "maximum": 100,
      "minimum": 1,
      "description": "number of recalls to return per product, 1-100, default 3"
    },
    "image_url": {
      "type": "string",
      "description": "photo (beta). HTTPS URL or data:image/...;base64 URI of a photo containing products. Local file paths are not supported."
    },
    "include_category_matches": {
      "type": "boolean",
      "description": "if true, attach keyword recalls for generic items such as cups; default false"
    }
  },
  "additionalProperties": false
}
search_product_recalls_from_image output schema
{
  "type": "object",
  "required": [
    "products",
    "recalls"
  ],
  "properties": {
    "recalls": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "id",
          "source",
          "title",
          "description",
          "url",
          "publishedOn"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "extracted": {
            "type": [
              "null",
              "object"
            ],
            "properties": {
              "images": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "type": "string"
                }
              },
              "stores": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "type": "string"
                }
              },
              "contact": {
                "type": [
                  "null",
                  "object"
                ],
                "properties": {
                  "emails": {
                    "type": [
                      "null",
                      "array"
                    ],
                    "items": {
                      "type": "string"
                    }
                  },
                  "phones": {
                    "type": [
                      "null",
                      "array"
                    ],
                    "items": {
                      "type": "string"
                    }
                  },
                  "websites": {
                    "type": [
                      "null",
                      "array"
                    ],
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "additionalProperties": false
              },
              "products": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "type": "object",
                  "properties": {
                    "upcs": {
                      "type": [
                        "null",
                        "array"
                      ],
                      "items": {
                        "type": "string"
                      }
                    },
                    "lotCodes": {
                      "type": [
                        "null",
                        "array"
                      ],
                      "items": {
                        "type": "string"
                      }
                    },
                    "packaging": {
                      "type": "string"
                    },
                    "useByDates": {
                      "type": [
                        "null",
                        "array"
                      ],
                      "items": {
                        "type": "string"
                      }
                    },
                    "productName": {
                      "type": "string"
                    },
                    "modelNumbers": {
                      "type": [
                        "null",
                        "array"
                      ],
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "additionalProperties": false
                }
              },
              "locations": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "type": "string"
                }
              },
              "establishments": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "type": "string"
                }
              },
              "productsTruncated": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          "description": {
            "type": "string"
          },
          "publishedOn": {
            "type": "string"
          },
          "descriptionTruncated": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      }
    },
    "products": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "product",
          "match",
          "confidence",
          "recalls"
        ],
        "properties": {
          "match": {
            "type": "string"
          },
          "product": {
            "type": "object",
            "properties": {
              "sku": {
                "type": "string"
              },
              "upc": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "brand": {
                "type": "string"
              },
              "format": {
                "type": "string"
              },
              "category": {
                "type": "string"
              }
            },
            "additionalProperties": false
          },
          "recalls": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "object",
              "required": [
                "id",
                "source",
                "title",
                "description",
                "url",
                "publishedOn"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "url": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "source": {
                  "type": "string"
                },
                "status": {
                  "type": "string"
                },
                "extracted": {
                  "type": [
                    "null",
                    "object"
                  ],
                  "properties": {
                    "images": {
                      "type": [
                        "null",
                        "array"
                      ],
                      "items": {
                        "type": "string"
                      }
                    },
                    "stores": {
                      "type": [
                        "null",
                        "array"
                      ],
                      "items": {
                        "type": "string"
                      }
                    },
                    "contact": {
                      "type": [
                        "null",
                        "object"
                      ],
                      "properties": {
                        "emails": {
                          "type": [
                            "null",
                            "array"
                          ],
                          "items": {
                            "type": "string"
                          }
                        },
                        "phones": {
                          "type": [
                            "null",
                            "array"
                          ],
                          "items": {
                            "type": "string"
                          }
                        },
                        "websites": {
                          "type": [
                            "null",
                            "array"
                          ],
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "additionalProperties": false
                    },
                    "products": {
                      "type": [
                        "null",
                        "array"
                      ],
                      "items": {
                        "type": "object",
                        "properties": {
                          "upcs": {
                            "type": [
                              "null",
                              "array"
                            ],
                            "items": {
                              "type": "string"
                            }
                          },
                          "lotCodes": {
                            "type": [
                              "null",
                              "array"
                            ],
                            "items": {
                              "type": "string"
                            }
                          },
                          "packaging": {
                            "type": "string"
                          },
                          "useByDates": {
                            "type": [
                              "null",
                              "array"
                            ],
                            "items": {
                              "type": "string"
                            }
                          },
                          "productName": {
                            "type": "string"
                          },
                          "modelNumbers": {
                            "type": [
                              "null",
                              "array"
                            ],
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "locations": {
                      "type": [
                        "null",
                        "array"
                      ],
                      "items": {
                        "type": "string"
                      }
                    },
                    "establishments": {
                      "type": [
                        "null",
                        "array"
                      ],
                      "items": {
                        "type": "string"
                      }
                    },
                    "productsTruncated": {
                      "type": "boolean"
                    }
                  },
                  "additionalProperties": false
                },
                "description": {
                  "type": "string"
                },
                "publishedOn": {
                  "type": "string"
                },
                "descriptionTruncated": {
                  "type": "boolean"
                }
              },
              "additionalProperties": false
            }
          },
          "confidence": {
            "type": "number"
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
search_product_recalls_from_image annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
search_recalls_by_identifier
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

search_recalls_by_identifier input schema
{
  "type": "object",
  "properties": {
    "upc": {
      "type": "string",
      "description": "product UPC or EAN as stored on the recall"
    },
    "vin": {
      "type": "string",
      "description": "17-character VIN. Lookup lists NHTSA campaigns for the decoded year and make; confirm your vehicle on nhtsa.gov/recalls."
    },
    "limit": {
      "type": "integer",
      "default": 3,
      "maximum": 100,
      "minimum": 1,
      "description": "number of recalls to return"
    },
    "offset": {
      "type": "integer",
      "maximum": 100,
      "minimum": 0,
      "description": "number of recalls to skip"
    },
    "lot_code": {
      "type": "string",
      "description": "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": {
      "type": "string",
      "description": "model number as stored on the recall"
    },
    "product_name": {
      "type": "string",
      "description": "extracted product name (exact match; if none, falls back to the same full-text search as search_product_recalls)"
    }
  },
  "additionalProperties": false
}
search_recalls_by_identifier output schema
{
  "type": "object",
  "required": [
    "recalls",
    "offset"
  ],
  "properties": {
    "hint": {
      "type": "string"
    },
    "offset": {
      "type": "integer"
    },
    "recalls": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "required": [
          "id",
          "source",
          "title",
          "description",
          "url",
          "publishedOn"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "extracted": {
            "type": [
              "null",
              "object"
            ],
            "properties": {
              "images": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "type": "string"
                }
              },
              "stores": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "type": "string"
                }
              },
              "contact": {
                "type": [
                  "null",
                  "object"
                ],
                "properties": {
                  "emails": {
                    "type": [
                      "null",
                      "array"
                    ],
                    "items": {
                      "type": "string"
                    }
                  },
                  "phones": {
                    "type": [
                      "null",
                      "array"
                    ],
                    "items": {
                      "type": "string"
                    }
                  },
                  "websites": {
                    "type": [
                      "null",
                      "array"
                    ],
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "additionalProperties": false
              },
              "products": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "type": "object",
                  "properties": {
                    "upcs": {
                      "type": [
                        "null",
                        "array"
                      ],
                      "items": {
                        "type": "string"
                      }
                    },
                    "lotCodes": {
                      "type": [
                        "null",
                        "array"
                      ],
                      "items": {
                        "type": "string"
                      }
                    },
                    "packaging": {
                      "type": "string"
                    },
                    "useByDates": {
                      "type": [
                        "null",
                        "array"
                      ],
                      "items": {
                        "type": "string"
                      }
                    },
                    "productName": {
                      "type": "string"
                    },
                    "modelNumbers": {
                      "type": [
                        "null",
                        "array"
                      ],
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "additionalProperties": false
                }
              },
              "locations": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "type": "string"
                }
              },
              "establishments": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "type": "string"
                }
              },
              "productsTruncated": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          "description": {
            "type": "string"
          },
          "publishedOn": {
            "type": "string"
          },
          "descriptionTruncated": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      }
    },
    "nextOffset": {
      "type": [
        "null",
        "integer"
      ]
    }
  },
  "additionalProperties": false
}
search_recalls_by_identifier annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
signup
Advertised by the server during the last successful anonymous check.

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.

signup input schema
{
  "type": "object",
  "required": [
    "email",
    "accept_terms"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "optional display name"
    },
    "email": {
      "type": "string",
      "description": "email address for the new account"
    },
    "accept_terms": {
      "type": "boolean",
      "description": "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."
    }
  },
  "additionalProperties": false
}
signup output schema
{
  "type": "object",
  "required": [
    "user_id",
    "email",
    "email_verified",
    "key_id",
    "api_key",
    "limits",
    "message"
  ],
  "properties": {
    "email": {
      "type": "string"
    },
    "key_id": {
      "type": "string"
    },
    "limits": {
      "type": "object",
      "required": [
        "hourly",
        "daily",
        "max_keys_per_user",
        "max_watch_patterns",
        "max_inventory",
        "allow_account_writes",
        "tier"
      ],
      "properties": {
        "tier": {
          "type": "string"
        },
        "daily": {
          "type": "integer"
        },
        "hourly": {
          "type": "integer"
        },
        "max_inventory": {
          "type": "integer"
        },
        "max_keys_per_user": {
          "type": "integer"
        },
        "max_watch_patterns": {
          "type": "integer"
        },
        "allow_account_writes": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "api_key": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "user_id": {
      "type": "string"
    },
    "email_verified": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}
signup annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}

Prompts

4 advertised

check_product

Advertised by the server during the last successful anonymous check.

Search recalls for a product name or brand, then fetch the full notice if there is a hit.

query
product, brand, or hazard; websearch syntax (words AND, OR, -exclude, quoted phrase) (required)
location
optional place such as Iowa, United States, Canada, Mexico, EU, or Ontario
check_upc

Advertised by the server during the last successful anonymous check.

Look up a UPC and search extracted recall UPCs.

upc
UPC or EAN digits (required)
list_vin_campaigns

Advertised by the server during the last successful anonymous check.

VIN lookup lists NHTSA campaigns for the decoded year and make; confirm your vehicle on nhtsa.gov/recalls.

vin
17-character vehicle identification number (required)
scan_image

Advertised by the server during the last successful anonymous check.

Photo (beta): identify products in a photo and search matching recalls.

image_url
HTTPS image URL or data:image/...;base64 URI (required)

Resources

2 advertised

recall-sources — Recall sources

Advertised by the server during the last successful anonymous check.

Government recall sources currently indexed.

recall-sources URI
recall://docs/sources

MIME type: text/markdown

tool-guide — Recall Kitchen MCP tool guide

Advertised by the server during the last successful anonymous check.

Which MCP tool to use for keyword, UPC, lot, image, and account tasks.

tool-guide URI
recall://docs/tools

MIME type: text/markdown

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
999 ms
95th percentile latency
999 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 999 ms · metadata changed · 20 tool(s), 2 resource(s), 0 resource template(s), 4 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http recall-kitchen-mcp https://app.recallkitchen.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add recall-kitchen-mcp --url https://app.recallkitchen.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable recall-kitchen-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "recall-kitchen-mcp": {
      "url": "https://app.recallkitchen.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "recall-kitchen-mcp": {
      "type": "streamableHttp",
      "url": "https://app.recallkitchen.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start recall-kitchen-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "recall-kitchen-mcp": {
      "type": "http",
      "url": "https://app.recallkitchen.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http recall-kitchen-mcp https://app.recallkitchen.com/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://app.recallkitchen.com/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "recall-kitchen-mcp": {
      "serverUrl": "https://app.recallkitchen.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Recall Kitchen MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.