Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,545Letters: 14Defects: 1,324counted 2 min ago
teppi

Server definition

Hash
sha256:da7892ab15edaab41b3f30eb3d73fb504af7a820c66ca74dd46027e6bc93e30a
What it is
What a remote MCP server returned when asked what it offers: 20 tools

The blob, as servednamed by its sha256

{ "instructions": "Recall Kitchen searches U.S. CPSC, FDA food, FDA MedWatch, openFDA enforcement, USDA, NHTSA vehicle, Costco, Target, and Walmart/Sam's Club recalls, plus Health Canada / CFIA recalls and safety alerts.\n\nQuery 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.\n\nAccess:\n- 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.\n- Paid (x402, USDC on Base): anonymous search after the IP quota, and search_product_recalls_from_image without a key. Account tools do not work with x402.\n- 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).\n- API key (signup is enough): all search including image, watch patterns, check_tracked_products, notifications, list/create/revoke keys.\n- 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).\n\nWhich tool to use:\n- 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.\n- search_recalls_by_identifier: exact UPC, lot, model, product name, or VIN from extracted recall data. Prefer this for barcodes, lot codes, and VINs. VIN is decoded locally to year and make (no live NHTSA API).\n- search_product_recalls_by_upc: look up a UPC and search extracted recall UPCs. Returns found=false if the UPC is unknown.\n- lookup_product: catalog/USDA branded-food info only; does not search recalls.\n- search_product_recalls_from_image: 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 [email protected] for a partial or full account deletion.\n- get_product_recall: full description plus extracted lots, UPCs, models, locations, contacts, and product photo URLs.\n- Account: signup (email, no key required; returns an API key once; accept_terms must be true — Terms, Privacy, and API Terms at https://recallkitchen.com/terms and https://recallkitchen.com/api-terms), 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 alerts sent when new matching recalls were 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).\n\n- 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).\n\nIf a tool fails unexpectedly, a result looks wrong, a schema field is confusing, or a needed capability is missing, call give_feedback.\n\nPrompts: check_product, check_upc, scan_image. Resources: recall://docs/tools, recall://docs/sources.", "tools": [ { "description": "Add a product to this API key's inventory. Requires a verified account (sign in at https://app.recallkitchen.com with the signup email). Unverified signup keys cannot add inventory.", "inputSchema": { "additionalProperties": false, "properties": { "brand": { "description": "optional brand", "type": "string" }, "category": { "description": "optional category", "enum": [ "bad_result", "tool_error", "missing_capability", "confusing_schema", "docs", "other" ], "type": "string" }, "name": { "description": "product name", "type": "string" }, "sku": { "description": "optional SKU or UPC", "type": "string" } }, "required": [ "name" ], "type": "object" }, "name": "add_inventory_product", "outputSchema": { "additionalProperties": false, "properties": { "brand": { "type": "string" }, "category": { "type": "string" }, "id": { "type": "integer" }, "name": { "type": "string" }, "sku": { "type": "string" } }, "required": [ "id", "name", "brand", "category", "sku" ], "type": "object" } }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "pattern": { "description": "websearch pattern: unquoted words are AND, OR is or, -term excludes, quoted phrases match as a unit", "type": "string" }, "weight": { "description": "optional weight 0-8, default 4", "maximum": 8, "minimum": 0, "type": "integer" } }, "required": [ "pattern" ], "type": "object" }, "name": "add_watch_pattern", "outputSchema": { "additionalProperties": false, "properties": { "pattern": { "type": "string" }, "weight": { "type": "integer" } }, "required": [ "pattern", "weight" ], "type": "object" } }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "limit": { "default": 3, "description": "maximum matches to return", "maximum": 100, "minimum": 1, "type": "integer" }, "offset": { "description": "number of matches to skip", "maximum": 100, "minimum": 0, "type": "integer" } }, "type": "object" }, "name": "check_tracked_products", "outputSchema": { "additionalProperties": false, "properties": { "matches": { "items": { "additionalProperties": false, "properties": { "inventory": { "items": { "additionalProperties": false, "properties": { "brand": { "type": "string" }, "category": { "type": "string" }, "id": { "type": "integer" }, "name": { "type": "string" }, "sku": { "type": "string" } }, "required": [ "id", "name", "brand", "category", "sku" ], "type": "object" }, "type": [ "null", "array" ] }, "patterns": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "reasons": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "recall": { "additionalProperties": false, "properties": { "description": { "type": "string" }, "descriptionTruncated": { "type": "boolean" }, "extracted": { "additionalProperties": false, "properties": { "contact": { "additionalProperties": false, "properties": { "emails": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "phones": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "websites": { "items": { "type": "string" }, "type": [ "null", "array" ] } }, "type": [ "null", "object" ] }, "establishments": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "images": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "locations": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "products": { "items": { "additionalProperties": false, "properties": { "lotCodes": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "modelNumbers": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "packaging": { "type": "string" }, "productName": { "type": "string" }, "upcs": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "useByDates": { "items": { "type": "string" }, "type": [ "null", "array" ] } }, "type": "object" }, "type": [ "null", "array" ] }, "productsTruncated": { "type": "boolean" }, "stores": { "items": { "type": "string" }, "type": [ "null", "array" ] } }, "type": [ "null", "object" ] }, "id": { "type": "string" }, "publishedOn": { "type": "string" }, "source": { "type": "string" }, "status": { "type": "string" }, "title": { "type": "string" }, "url": { "type": "string" } }, "required": [ "id", "source", "title", "description", "url", "publishedOn" ], "type": "object" } }, "required": [ "recall", "reasons" ], "type": "object" }, "type": [ "null", "array" ] }, "message": { "type": "string" }, "nextOffset": { "type": [ "null", "integer" ] }, "offset": { "type": "integer" } }, "required": [ "matches", "offset" ], "type": "object" } }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "kind": { "description": "optional kind: user or agent, default agent", "enum": [ "user", "agent" ], "type": "string" }, "name": { "description": "optional key name", "type": "string" } }, "type": "object" }, "name": "create_api_key", "outputSchema": { "additionalProperties": false, "properties": { "api_key": { "type": "string" }, "key_id": { "type": "string" }, "kind": { "type": "string" }, "limits": { "additionalProperties": false, "properties": { "allow_account_writes": { "type": "boolean" }, "daily": { "type": "integer" }, "hourly": { "type": "integer" }, "max_inventory": { "type": "integer" }, "max_keys_per_user": { "type": "integer" }, "max_watch_patterns": { "type": "integer" }, "tier": { "type": "string" } }, "required": [ "hourly", "daily", "max_keys_per_user", "max_watch_patterns", "max_inventory", "allow_account_writes", "tier" ], "type": "object" }, "message": { "type": "string" }, "name": { "type": "string" } }, "required": [ "key_id", "name", "kind", "api_key", "limits", "message" ], "type": "object" } }, { "description": "Get a recall by id, including extracted lots, UPCs, model numbers, locations, contact info, and product photo URLs", "inputSchema": { "additionalProperties": false, "properties": { "id": { "description": "alias for recall_id", "type": "string" }, "recall_id": { "description": "recall id returned by search tools", "type": "string" } }, "type": "object" }, "name": "get_product_recall", "outputSchema": { "additionalProperties": false, "properties": { "description": { "type": "string" }, "descriptionTruncated": { "type": "boolean" }, "extracted": { "additionalProperties": false, "properties": { "contact": { "additionalProperties": false, "properties": { "emails": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "phones": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "websites": { "items": { "type": "string" }, "type": [ "null", "array" ] } }, "type": [ "null", "object" ] }, "establishments": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "images": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "locations": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "products": { "items": { "additionalProperties": false, "properties": { "lotCodes": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "modelNumbers": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "packaging": { "type": "string" }, "productName": { "type": "string" }, "upcs": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "useByDates": { "items": { "type": "string" }, "type": [ "null", "array" ] } }, "type": "object" }, "type": [ "null", "array" ] }, "productsTruncated": { "type": "boolean" }, "stores": { "items": { "type": "string" }, "type": [ "null", "array" ] } }, "type": [ "null", "object" ] }, "id": { "type": "string" }, "publishedOn": { "type": "string" }, "source": { "type": "string" }, "status": { "type": "string" }, "title": { "type": "string" }, "url": { "type": "string" } }, "required": [ "id", "source", "title", "description", "url", "publishedOn" ], "type": "object" } }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "category": { "description": "optional: bad_result, tool_error, missing_capability, confusing_schema, docs, or other", "enum": [ "bad_result", "tool_error", "missing_capability", "confusing_schema", "docs", "other" ], "type": "string" }, "message": { "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.", "type": "string" }, "severity": { "description": "optional: blocked, workaround, or annoyance", "enum": [ "blocked", "workaround", "annoyance" ], "type": "string" } }, "required": [ "message" ], "type": "object" }, "name": "give_feedback", "outputSchema": { "additionalProperties": false, "properties": { "accepted": { "type": "boolean" }, "message": { "type": "string" } }, "required": [ "accepted", "message" ], "type": "object" } }, { "description": "List this account's API keys (id, name, prefix, created). Secrets are not shown. Requires an API key.", "inputSchema": { "additionalProperties": false, "type": "object" }, "name": "list_api_keys", "outputSchema": { "additionalProperties": false, "properties": { "keys": { "items": { "additionalProperties": false, "properties": { "created_at": { "type": "string" }, "key_id": { "type": "string" }, "key_prefix": { "type": "string" }, "kind": { "type": "string" }, "last_used_at": { "type": [ "null", "string" ] }, "name": { "type": "string" } }, "required": [ "key_id", "name", "kind", "key_prefix", "created_at" ], "type": "object" }, "type": [ "null", "array" ] }, "limits": { "additionalProperties": false, "properties": { "allow_account_writes": { "type": "boolean" }, "daily": { "type": "integer" }, "hourly": { "type": "integer" }, "max_inventory": { "type": "integer" }, "max_keys_per_user": { "type": "integer" }, "max_watch_patterns": { "type": "integer" }, "tier": { "type": "string" } }, "required": [ "hourly", "daily", "max_keys_per_user", "max_watch_patterns", "max_inventory", "allow_account_writes", "tier" ], "type": "object" }, "message": { "type": "string" } }, "required": [ "keys", "limits" ], "type": "object" } }, { "description": "List this API key's tracked inventory products. Requires an API key.", "inputSchema": { "additionalProperties": false, "properties": { "limit": { "default": 3, "description": "number of products to return", "maximum": 100, "minimum": 1, "type": "integer" }, "offset": { "description": "number of products to skip", "maximum": 100, "minimum": 0, "type": "integer" }, "query": { "description": "optional inventory search", "type": "string" } }, "type": "object" }, "name": "list_inventory", "outputSchema": { "additionalProperties": false, "properties": { "nextOffset": { "type": [ "null", "integer" ] }, "offset": { "type": "integer" }, "products": { "items": { "additionalProperties": false, "properties": { "brand": { "type": "string" }, "category": { "type": "string" }, "id": { "type": "integer" }, "name": { "type": "string" }, "sku": { "type": "string" } }, "required": [ "id", "name", "brand", "category", "sku" ], "type": "object" }, "type": [ "null", "array" ] } }, "required": [ "products", "offset" ], "type": "object" } }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "limit": { "default": 3, "description": "number of notifications to return", "maximum": 100, "minimum": 1, "type": "integer" }, "offset": { "description": "number of notifications to skip", "maximum": 100, "minimum": 0, "type": "integer" }, "unread": { "description": "if true, only unread notifications; if false, include read. Default: true (unread only)", "type": [ "null", "boolean" ] } }, "type": "object" }, "name": "list_recall_notifications", "outputSchema": { "additionalProperties": false, "properties": { "message": { "type": "string" }, "nextOffset": { "type": [ "null", "integer" ] }, "notifications": { "items": { "additionalProperties": false, "properties": { "message": { "type": "string" }, "read": { "type": "boolean" }, "recall": { "additionalProperties": false, "properties": { "description": { "type": "string" }, "descriptionTruncated": { "type": "boolean" }, "extracted": { "additionalProperties": false, "properties": { "contact": { "additionalProperties": false, "properties": { "emails": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "phones": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "websites": { "items": { "type": "string" }, "type": [ "null", "array" ] } }, "type": [ "null", "object" ] }, "establishments": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "images": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "locations": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "products": { "items": { "additionalProperties": false, "properties": { "lotCodes": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "modelNumbers": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "packaging": { "type": "string" }, "productName": { "type": "string" }, "upcs": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "useByDates": { "items": { "type": "string" }, "type": [ "null", "array" ] } }, "type": "object" }, "type": [ "null", "array" ] }, "productsTruncated": { "type": "boolean" }, "stores": { "items": { "type": "string" }, "type": [ "null", "array" ] } }, "type": [ "null", "object" ] }, "id": { "type": "string" }, "publishedOn": { "type": "string" }, "source": { "type": "string" }, "status": { "type": "string" }, "title": { "type": "string" }, "url": { "type": "string" } }, "required": [ "id", "source", "title", "description", "url", "publishedOn" ], "type": "object" }, "sentOn": { "type": "string" } }, "required": [ "recall", "sentOn", "read" ], "type": "object" }, "type": [ "null", "array" ] }, "offset": { "type": "integer" } }, "required": [ "notifications", "offset" ], "type": "object" } }, { "description": "List this API key's recall watch patterns. Requires an API key.", "inputSchema": { "additionalProperties": false, "type": "object" }, "name": "list_watch_patterns", "outputSchema": { "additionalProperties": false, "properties": { "patterns": { "items": { "additionalProperties": false, "properties": { "pattern": { "type": "string" }, "weight": { "type": "integer" } }, "required": [ "pattern", "weight" ], "type": "object" }, "type": [ "null", "array" ] } }, "required": [ "patterns" ], "type": "object" } }, { "description": "Look up a product by UPC/EAN. Returns found=false when unknown. Does not search recalls.", "inputSchema": { "additionalProperties": false, "properties": { "upc": { "description": "UPC or EAN barcode digits", "type": "string" } }, "required": [ "upc" ], "type": "object" }, "name": "lookup_product", "outputSchema": { "additionalProperties": false, "properties": { "branded_food": { "additionalProperties": false, "properties": { "brand_name": { "type": "string" }, "brand_owner": { "type": "string" }, "category": { "type": "string" }, "gtin_upc": { "type": "string" }, "ingredients": { "type": "string" } }, "type": [ "null", "object" ] }, "found": { "type": "boolean" }, "hint": { "type": "string" }, "product": { "additionalProperties": false, "properties": { "brand": { "type": "string" }, "category": { "type": "string" }, "format": { "type": "string" }, "name": { "type": "string" }, "sku": { "type": "string" }, "upc": { "type": "string" } }, "type": [ "null", "object" ] }, "upc": { "type": "string" } }, "required": [ "upc", "found" ], "type": "object" } }, { "description": "Mark a recall notification as read (default) or unread. Requires an API key.", "inputSchema": { "additionalProperties": false, "properties": { "read": { "description": "if true, mark read; if false, mark unread. Default true", "type": [ "null", "boolean" ] }, "recall_id": { "description": "recall id from list_recall_notifications", "type": "string" } }, "required": [ "recall_id" ], "type": "object" }, "name": "mark_notification_read", "outputSchema": { "additionalProperties": false, "properties": { "read": { "type": "boolean" }, "recall_id": { "type": "string" }, "updated": { "type": "boolean" } }, "required": [ "recall_id", "read", "updated" ], "type": "object" } }, { "description": "Remove a product from this API key's inventory by id. Requires an API key.", "inputSchema": { "additionalProperties": false, "properties": { "id": { "description": "inventory product id from list_inventory", "type": "integer" } }, "required": [ "id" ], "type": "object" }, "name": "remove_inventory_product", "outputSchema": { "additionalProperties": false, "properties": { "id": { "type": "integer" }, "removed": { "type": "boolean" } }, "required": [ "id", "removed" ], "type": "object" } }, { "description": "Remove a recall watch pattern for this API key. Requires an API key.", "inputSchema": { "additionalProperties": false, "properties": { "pattern": { "description": "watch pattern to remove", "type": "string" } }, "required": [ "pattern" ], "type": "object" }, "name": "remove_watch_pattern", "outputSchema": { "additionalProperties": false, "properties": { "pattern": { "type": "string" }, "removed": { "type": "boolean" } }, "required": [ "pattern", "removed" ], "type": "object" } }, { "description": "Revoke an API key by key_id from list_api_keys. Requires an API key. Revoking the current key will fail subsequent calls.", "inputSchema": { "additionalProperties": false, "properties": { "key_id": { "description": "key_id from list_api_keys", "type": "string" } }, "required": [ "key_id" ], "type": "object" }, "name": "revoke_api_key", "outputSchema": { "additionalProperties": false, "properties": { "key_id": { "type": "string" }, "revoked": { "type": "boolean" } }, "required": [ "key_id", "revoked" ], "type": "object" } }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "limit": { "default": 3, "description": "number of recalls to return, 1-100, default 3", "maximum": 100, "minimum": 1, "type": "integer" }, "location": { "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.", "type": "string" }, "offset": { "description": "number of recalls to skip", "maximum": 100, "minimum": 0, "type": "integer" }, "query": { "description": "websearch query: unquoted words are AND, OR is or, -term excludes, quoted phrases match as a unit. Example: Generac Generator -Portable", "type": "string" }, "since": { "description": "optional published-on start date YYYY-MM-DD", "type": "string" }, "source": { "description": "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.", "enum": [ "cpsc", "fdafoodsafety", "FDAMedWatch", "usda", "nhtsa", "canada", "costco", "target", "walmart", "openfda" ], "type": "string" }, "sources": { "description": "optional sources to include (OR). Same values as source", "items": { "enum": [ "cpsc", "fdafoodsafety", "FDAMedWatch", "usda", "nhtsa", "canada", "costco", "target", "walmart", "openfda" ], "type": "string" }, "type": "array", "uniqueItems": true }, "until": { "description": "optional published-on end date YYYY-MM-DD", "type": "string" }, "years": { "description": "optional published window in years (1-50). Ignored when since is set", "maximum": 50, "minimum": 1, "type": "integer" } }, "type": "object" }, "name": "search_product_recalls", "outputSchema": { "additionalProperties": false, "properties": { "nextOffset": { "type": [ "null", "integer" ] }, "offset": { "type": "integer" }, "recalls": { "items": { "additionalProperties": false, "properties": { "description": { "type": "string" }, "descriptionTruncated": { "type": "boolean" }, "extracted": { "additionalProperties": false, "properties": { "contact": { "additionalProperties": false, "properties": { "emails": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "phones": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "websites": { "items": { "type": "string" }, "type": [ "null", "array" ] } }, "type": [ "null", "object" ] }, "establishments": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "images": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "locations": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "products": { "items": { "additionalProperties": false, "properties": { "lotCodes": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "modelNumbers": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "packaging": { "type": "string" }, "productName": { "type": "string" }, "upcs": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "useByDates": { "items": { "type": "string" }, "type": [ "null", "array" ] } }, "type": "object" }, "type": [ "null", "array" ] }, "productsTruncated": { "type": "boolean" }, "stores": { "items": { "type": "string" }, "type": [ "null", "array" ] } }, "type": [ "null", "object" ] }, "id": { "type": "string" }, "publishedOn": { "type": "string" }, "source": { "type": "string" }, "status": { "type": "string" }, "title": { "type": "string" }, "url": { "type": "string" } }, "required": [ "id", "source", "title", "description", "url", "publishedOn" ], "type": "object" }, "type": [ "null", "array" ] } }, "required": [ "recalls", "offset" ], "type": "object" } }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "barcode": { "description": "alias for upc", "type": "string" }, "image_url": { "description": "optional HTTPS URL or data:image/...;base64 URI of a barcode image", "type": "string" }, "limit": { "default": 3, "description": "number of recalls to return, 1-100, default 3", "maximum": 100, "minimum": 1, "type": "integer" }, "offset": { "description": "number of recalls to skip", "maximum": 100, "minimum": 0, "type": "integer" }, "upc": { "description": "UPC or EAN barcode digits", "type": "string" }, "url": { "description": "alias for image_url", "type": "string" } }, "type": "object" }, "name": "search_product_recalls_by_upc", "outputSchema": { "additionalProperties": false, "properties": { "confidence": { "type": "number" }, "found": { "type": "boolean" }, "hint": { "type": "string" }, "match": { "type": "string" }, "nextOffset": { "type": [ "null", "integer" ] }, "offset": { "type": "integer" }, "product": { "additionalProperties": false, "properties": { "brand": { "type": "string" }, "category": { "type": "string" }, "format": { "type": "string" }, "name": { "type": "string" }, "sku": { "type": "string" }, "upc": { "type": "string" } }, "type": [ "null", "object" ] }, "recalls": { "items": { "additionalProperties": false, "properties": { "description": { "type": "string" }, "descriptionTruncated": { "type": "boolean" }, "extracted": { "additionalProperties": false, "properties": { "contact": { "additionalProperties": false, "properties": { "emails": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "phones": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "websites": { "items": { "type": "string" }, "type": [ "null", "array" ] } }, "type": [ "null", "object" ] }, "establishments": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "images": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "locations": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "products": { "items": { "additionalProperties": false, "properties": { "lotCodes": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "modelNumbers": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "packaging": { "type": "string" }, "productName": { "type": "string" }, "upcs": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "useByDates": { "items": { "type": "string" }, "type": [ "null", "array" ] } }, "type": "object" }, "type": [ "null", "array" ] }, "productsTruncated": { "type": "boolean" }, "stores": { "items": { "type": "string" }, "type": [ "null", "array" ] } }, "type": [ "null", "object" ] }, "id": { "type": "string" }, "publishedOn": { "type": "string" }, "source": { "type": "string" }, "status": { "type": "string" }, "title": { "type": "string" }, "url": { "type": "string" } }, "required": [ "id", "source", "title", "description", "url", "publishedOn" ], "type": "object" }, "type": [ "null", "array" ] }, "upc": { "type": "string" } }, "required": [ "upc", "found", "recalls", "offset" ], "type": "object" } }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "image_url": { "description": "HTTPS URL or data:image/...;base64 URI of a photo containing products. Local file paths are not supported.", "type": "string" }, "include_category_matches": { "description": "if true, attach keyword recalls for generic items such as cups; default false", "type": "boolean" }, "limit": { "default": 3, "description": "number of recalls to return per product, 1-100, default 3", "maximum": 100, "minimum": 1, "type": "integer" }, "url": { "description": "alias for image_url", "type": "string" } }, "type": "object" }, "name": "search_product_recalls_from_image", "outputSchema": { "additionalProperties": false, "properties": { "products": { "items": { "additionalProperties": false, "properties": { "confidence": { "type": "number" }, "match": { "type": "string" }, "product": { "additionalProperties": false, "properties": { "brand": { "type": "string" }, "category": { "type": "string" }, "format": { "type": "string" }, "name": { "type": "string" }, "sku": { "type": "string" }, "upc": { "type": "string" } }, "type": "object" }, "recalls": { "items": { "additionalProperties": false, "properties": { "description": { "type": "string" }, "descriptionTruncated": { "type": "boolean" }, "extracted": { "additionalProperties": false, "properties": { "contact": { "additionalProperties": false, "properties": { "emails": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "phones": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "websites": { "items": { "type": "string" }, "type": [ "null", "array" ] } }, "type": [ "null", "object" ] }, "establishments": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "images": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "locations": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "products": { "items": { "additionalProperties": false, "properties": { "lotCodes": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "modelNumbers": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "packaging": { "type": "string" }, "productName": { "type": "string" }, "upcs": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "useByDates": { "items": { "type": "string" }, "type": [ "null", "array" ] } }, "type": "object" }, "type": [ "null", "array" ] }, "productsTruncated": { "type": "boolean" }, "stores": { "items": { "type": "string" }, "type": [ "null", "array" ] } }, "type": [ "null", "object" ] }, "id": { "type": "string" }, "publishedOn": { "type": "string" }, "source": { "type": "string" }, "status": { "type": "string" }, "title": { "type": "string" }, "url": { "type": "string" } }, "required": [ "id", "source", "title", "description", "url", "publishedOn" ], "type": "object" }, "type": [ "null", "array" ] } }, "required": [ "product", "match", "confidence", "recalls" ], "type": "object" }, "type": [ "null", "array" ] }, "recalls": { "items": { "additionalProperties": false, "properties": { "description": { "type": "string" }, "descriptionTruncated": { "type": "boolean" }, "extracted": { "additionalProperties": false, "properties": { "contact": { "additionalProperties": false, "properties": { "emails": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "phones": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "websites": { "items": { "type": "string" }, "type": [ "null", "array" ] } }, "type": [ "null", "object" ] }, "establishments": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "images": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "locations": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "products": { "items": { "additionalProperties": false, "properties": { "lotCodes": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "modelNumbers": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "packaging": { "type": "string" }, "productName": { "type": "string" }, "upcs": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "useByDates": { "items": { "type": "string" }, "type": [ "null", "array" ] } }, "type": "object" }, "type": [ "null", "array" ] }, "productsTruncated": { "type": "boolean" }, "stores": { "items": { "type": "string" }, "type": [ "null", "array" ] } }, "type": [ "null", "object" ] }, "id": { "type": "string" }, "publishedOn": { "type": "string" }, "source": { "type": "string" }, "status": { "type": "string" }, "title": { "type": "string" }, "url": { "type": "string" } }, "required": [ "id", "source", "title", "description", "url", "publishedOn" ], "type": "object" }, "type": [ "null", "array" ] } }, "required": [ "products", "recalls" ], "type": "object" } }, { "description": "Search recalls by extracted UPC, lot code, model number, product name, or VIN. VIN is decoded locally to year and make and matched against NHTSA campaigns (not a live NHTSA VIN API). Multiple identifiers are AND-matched on the same product.", "inputSchema": { "additionalProperties": false, "properties": { "limit": { "default": 3, "description": "number of recalls to return", "maximum": 100, "minimum": 1, "type": "integer" }, "lot_code": { "description": "lot or batch code as stored on the recall", "type": "string" }, "model_number": { "description": "model number as stored on the recall", "type": "string" }, "offset": { "description": "number of recalls to skip", "maximum": 100, "minimum": 0, "type": "integer" }, "product_name": { "description": "extracted product name (exact match)", "type": "string" }, "upc": { "description": "product UPC or EAN as stored on the recall", "type": "string" }, "vin": { "description": "17-character vehicle identification number. Decoded locally to year and make, then matched against NHTSA campaigns. Does not call NHTSA live.", "type": "string" } }, "type": "object" }, "name": "search_recalls_by_identifier", "outputSchema": { "additionalProperties": false, "properties": { "nextOffset": { "type": [ "null", "integer" ] }, "offset": { "type": "integer" }, "recalls": { "items": { "additionalProperties": false, "properties": { "description": { "type": "string" }, "descriptionTruncated": { "type": "boolean" }, "extracted": { "additionalProperties": false, "properties": { "contact": { "additionalProperties": false, "properties": { "emails": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "phones": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "websites": { "items": { "type": "string" }, "type": [ "null", "array" ] } }, "type": [ "null", "object" ] }, "establishments": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "images": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "locations": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "products": { "items": { "additionalProperties": false, "properties": { "lotCodes": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "modelNumbers": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "packaging": { "type": "string" }, "productName": { "type": "string" }, "upcs": { "items": { "type": "string" }, "type": [ "null", "array" ] }, "useByDates": { "items": { "type": "string" }, "type": [ "null", "array" ] } }, "type": "object" }, "type": [ "null", "array" ] }, "productsTruncated": { "type": "boolean" }, "stores": { "items": { "type": "string" }, "type": [ "null", "array" ] } }, "type": [ "null", "object" ] }, "id": { "type": "string" }, "publishedOn": { "type": "string" }, "source": { "type": "string" }, "status": { "type": "string" }, "title": { "type": "string" }, "url": { "type": "string" } }, "required": [ "id", "source", "title", "description", "url", "publishedOn" ], "type": "object" }, "type": [ "null", "array" ] } }, "required": [ "recalls", "offset" ], "type": "object" } }, { "description": "Create a Recall Kitchen account and API key from an email. No API key or x402 payment required. Requires accept_terms true (Terms of Service, Privacy Policy, and API Terms at https://recallkitchen.com/terms and https://recallkitchen.com/api-terms). 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.", "inputSchema": { "additionalProperties": false, "properties": { "accept_terms": { "description": "must be true: the person agrees to the Terms of Service, Privacy Policy, and API Terms at https://recallkitchen.com/terms", "type": "boolean" }, "email": { "description": "email address for the new account", "type": "string" }, "name": { "description": "optional display name", "type": "string" } }, "required": [ "email", "accept_terms" ], "type": "object" }, "name": "signup", "outputSchema": { "additionalProperties": false, "properties": { "api_key": { "type": "string" }, "email": { "type": "string" }, "email_verified": { "type": "boolean" }, "key_id": { "type": "string" }, "limits": { "additionalProperties": false, "properties": { "allow_account_writes": { "type": "boolean" }, "daily": { "type": "integer" }, "hourly": { "type": "integer" }, "max_inventory": { "type": "integer" }, "max_keys_per_user": { "type": "integer" }, "max_watch_patterns": { "type": "integer" }, "tier": { "type": "string" } }, "required": [ "hourly", "daily", "max_keys_per_user", "max_watch_patterns", "max_inventory", "allow_account_writes", "tier" ], "type": "object" }, "message": { "type": "string" }, "user_id": { "type": "string" } }, "required": [ "user_id", "email", "email_verified", "key_id", "api_key", "limits", "message" ], "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:da7892ab15edaab41b3f30eb3d73fb504af7a820c66ca74dd46027e6bc93e30a | sha256sum