{"id":383715,"recorded_at":"2026-10-27T00:15:16.099256Z","observed_at":"2026-10-27T00:15:16.099211Z","subject_kind":"endpoint","subject":"4fa386bb-0b3d-468e-a78a-11ef704dd410","kind":"mcp.tools","method":"probe.mcp/1","body":{"count":6,"tools":[{"description":"Find food, beverage and pet brands, and see where to apply to each for a wholesale account. Filter by text, category path, country, availability or `submittable`. The text in `q` can match the name, other names or description of a brand. Search allows small spelling errors and returns at most the best 1,000 matches. `submittable` is true when the brand has an active web form at its address, and LintyBot read that page. It is false when a `robots.txt` file asks Linty not to use the page, or a part of the page where the form can be. Each page has up to 50 brands. To get the next page, send `next_cursor` as `cursor`.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"availability":{"enum":["direct","indirect_only","unavailable","unknown"],"type":"string"},"category":{"description":"A category path, for example `snacks/protein-bars`.","maxLength":300,"minLength":1,"pattern":"^[a-z0-9-]+(?:\\/[a-z0-9-]+)*$","type":"string"},"country":{"description":"A two-letter country code in capitals, for example `US`.","pattern":"^[A-Z]{2}$","type":"string"},"cursor":{"description":"The `next_cursor` of the earlier page.","maxLength":100,"type":"string"},"q":{"description":"Text to find in the brand's name, other names or description. Search allows small spelling errors and returns at most the best 1,000 matches.","maxLength":200,"type":"string"},"submittable":{"description":"True: only brands with an active web form at their address, whose page LintyBot read, and no `robots.txt` refusal of the page or of a part of it where the form can be.","type":"boolean"}},"type":"object"},"name":"find_brands"},{"description":"Get the facts of one brand by its slug: its company, its categories, each relationship with its availability, and the sources. The result is the JSON twin at `/brands/{slug}.json`.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"slug":{"description":"A slug: lower-case letters, digits and hyphens, for example `acme-foods`.","maxLength":200,"minLength":1,"pattern":"^[a-z0-9-]+$","type":"string"}},"required":["slug"],"type":"object"},"name":"get_brand"},{"description":"Get one company by its slug, with the brands that it owns. The result is the JSON twin at `/companies/{slug}.json`.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"slug":{"description":"A slug: lower-case letters, digits and hyphens, for example `acme-foods`.","maxLength":200,"minLength":1,"pattern":"^[a-z0-9-]+$","type":"string"}},"required":["slug"],"type":"object"},"name":"get_company"},{"description":"Get a brand's relationship: where to apply, each fact with its source quote, and whether Linty read the brand's terms. The facts include the form fields and the documents that the brand asks for. A fact has its quote in `source` only when LintyBot read it on the brand's page. Read `terms` before you apply: it says whether Linty read the agreement that the form asks you to accept. The default relationship is `wholesale`. The result is the JSON twin at `/brands/{slug}/{relationship}.json`.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"brand":{"description":"A slug: lower-case letters, digits and hyphens, for example `acme-foods`.","maxLength":200,"minLength":1,"pattern":"^[a-z0-9-]+$","type":"string"},"relationship":{"default":"wholesale","description":"The relationship slug. The default is `wholesale`.","maxLength":200,"minLength":1,"pattern":"^[a-z0-9-]+$","type":"string"}},"required":["brand"],"type":"object"},"name":"get_relationship"},{"description":"List the categories under a path, or the top-level categories, with counts of published brands. A category has a page when it has 10 published brands. With a page, the result also has that category and up to 200 of its brands. Without a page, `category` is null and the result has the categories under the path. A path that is no category answers `not_found`.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"path":{"description":"A category path, for example `snacks/protein-bars`.","maxLength":300,"minLength":1,"pattern":"^[a-z0-9-]+(?:\\/[a-z0-9-]+)*$","type":"string"}},"type":"object"},"name":"list_categories"},{"description":"Report a wrong fact about a brand or one of its relationships. Write what is wrong and what is right, in 10 to 2,000 characters. A person at Linty reads each correction.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"body":{"description":"What is wrong, and what is right.","maxLength":2000,"minLength":10,"type":"string"},"brand":{"description":"A slug: lower-case letters, digits and hyphens, for example `acme-foods`.","maxLength":200,"minLength":1,"pattern":"^[a-z0-9-]+$","type":"string"},"relationship":{"description":"A slug: lower-case letters, digits and hyphens, for example `acme-foods`.","maxLength":200,"minLength":1,"pattern":"^[a-z0-9-]+$","type":"string"}},"required":["brand","body"],"type":"object"},"name":"report_correction"}]},"body_sha256":"66c6e7f4283909a165663180b6a3202d02e85338f0b6813db6bcc6b44e861674","prev_id":null,"leaf":"0x37faedf3487b34ee932d49d6bb6eb02b67997095e06d686c7554e427e031bc98","leaf_text":"{\"body\":\"66c6e7f4283909a165663180b6a3202d02e85338f0b6813db6bcc6b44e861674\",\"id\":383715,\"kind\":\"mcp.tools\",\"method\":\"probe.mcp/1\",\"observed_us\":1793060116099211,\"prev\":null,\"subject\":\"4fa386bb-0b3d-468e-a78a-11ef704dd410\",\"subject_kind\":\"endpoint\"}","day":null,"proof":[]}