{"statusCode":1,"tools":[{"config":{"frontend":{"tips":"\u30e1\u30eb\u30ab\u30ea\u306e\u691c\u7d22 / \u5546\u54c1 / \u51fa\u54c1\u8005 / \u76f8\u5834\u3092\u53c2\u7167\u3059\u308b\u8aad\u307f\u53d6\u308a\u5c02\u7528\u30c4\u30fc\u30eb\u3067\u3059\u3002\u3053\u306e AMCP \u30b5\u30fc\u30d0\u30fc\u3067\u30c8\u30fc\u30af\u30f3\u3092\u767a\u884c\u6e08\u307f(\u307e\u305f\u306f AMCP_PASSWORD \u8a2d\u5b9a\u6e08\u307f)\u306e\u5834\u5408\u306f\u3001\u4e0b\u306e `password` \u6b04\u306b\u8cbc\u308a\u4ed8\u3051\u3066\u304f\u3060\u3055\u3044\u3002\u6bce\u56de\u306e\u547c\u3073\u51fa\u3057\u3067\u8a8d\u8a3c\u60c5\u5831\u3068\u3057\u3066\u9001\u4fe1\u3055\u308c\u307e\u3059\u3002","title":"\u30e1\u30eb\u30ab\u30ea (Mercari)"},"function":{"description":"# Mercari (\u30e1\u30eb\u30ab\u30ea) Access Tool\n\nRead-only access to Japan's largest C2C marketplace. One unified tool; pick what to\ndo with `instruction`. All listing data comes back in its original Japanese.\n\n## Instructions\n\n- `verify`: Health check: performs one minimal search and reports latency. No args. Args: none.\n- `search`: Keyword search over listings. Returns compact items plus numFound and nextPageToken. Use status='sold_out' to see what actually sold and for how much - that is the reliable signal for pricing; on-sale prices are asking prices and include listings that will never sell. Args: `keyword`, `exclude`, `status`, `priceMin`, `priceMax`, `condition`, `categoryId`, `brandId`, `sort`, `order`, `limit`, `pageToken`, `fields`, `includeShops`.\n- `get-item`: Full detail for a listing: complete description, all photos, likes, comments count, shipping terms, category path and seller summary. Pass `id` for one, or `ids` (up to 10) to fetch several in a single call - always batch rather than calling this repeatedly. Only works for regular Mercari items (ids starting with 'm'). Args: `id`, `ids`, `fullDescription`.\n- `get-seller`: Seller profile: rating counts (good/normal/bad), star rating, number of items sold, followers, registration date, self-introduction. Args: `sellerId`.\n- `seller-items`: List a seller's listings (on sale / in transaction / sold). Args: `sellerId`, `sellerStatus`, `limit`.\n- `market-stats`: Price research for one keyword. Samples sold and on-sale listings, filters sold ones to a recent window, trims outliers, and returns median/quartile prices, how long things take to sell, an approximate sell-through rate, a quickSale/balanced/patient price suggestion, and net proceeds after Mercari's 10% fee and shipping. Use this instead of eyeballing search results - the filtering and the fee maths are what make the number right. Args: `keyword`, `exclude`, `condition`, `categoryId`, `brandId`, `priceMin`, `priceMax`, `sampleSize`, `soldWithinDays`, `trimOutliers`, `feeRate`, `shippingCost`, `includeShops`.\n- `compare`: Run the price research above across 2-6 keywords at once and return one comparison table sorted by breakEvenCost (the price above which buying to resell loses money at the median sale price). One call instead of N. Args: `keywords`, `exclude`, `condition`, `categoryId`, `brandId`, `priceMin`, `priceMax`, `soldWithinDays`, `trimOutliers`, `feeRate`, `shippingCost`, `includeShops`.\n- `listing-comps`: Fetch several comparable listings in full - complete title, description, price, condition, category - plus the most frequent title chunks across the wider result set. This is the input for writing a listing: it shows how sellers of the same thing actually word titles and descriptions. Defaults to sold listings, i.e. wordings that worked. Args: `keyword`, `exclude`, `status`, `condition`, `categoryId`, `brandId`, `priceMin`, `priceMax`, `compsLimit`, `descriptionChars`, `includeShops`.\n- `resolve-facets`: Given a keyword, report which categoryIds and brandIds the matching listings actually fall into, with counts, resolved category names and a price range per facet. Call this when you need a categoryId or brandId to narrow a search - it is more reliable than guessing ids. Args: `keyword`, `exclude`, `status`, `includeShops`.\n- `watch-create`: Save a search so you can be told about listings that appear later. The listings that match RIGHT NOW are recorded as already-seen, so the first watch-poll reports genuinely new listings only - creating a watch never dumps the current market at you. Takes the same filters as search. Args: `keyword`, `exclude`, `priceMin`, `priceMax`, `condition`, `categoryId`, `brandId`, `includeShops`, `label`.\n- `watch-list`: List the watches you own, with their filters, when each was last polled and how many listings each has seen. No args. Args: none.\n- `watch-delete`: Delete one of your watches and everything it remembered. Args: `watchId`.\n- `watch-poll`: Report listings that have appeared since this watch last ran. Pass `watchId` for one watch, or omit it to poll every watch you own in a single call - that is the cheap way to run this from a schedule. When nothing is new you get `totalNew: 0` and almost no payload, so a scheduled agent can stop immediately without spending tokens. Args: `watchId`, `limit`.\n\n## Working notes\n\n- **Search in Japanese.** English keywords match only listings whose title happens to\n  contain English. Try the Japanese product name, and use `exclude` to drop noise\n  (e.g. exclude '\u30b8\u30e3\u30f3\u30af \u90e8\u54c1\u53d6\u308a \u30b1\u30fc\u30b9' when pricing a camera body).\n- **For 'what is this worth?', use `market-stats`, not `search`.** It does the two\n  things a raw search cannot: restricts sold items to a recent window and trims\n  outliers. Reach for `search` when you want to look at individual listings.\n- **If you do price by hand, search `status='sold_out'`.** Those are real\n  transactions. `on_sale` prices are what sellers hope to get.\n- **Sampling stops early rather than timing out.** `market-stats`, `compare` and\n  `listing-comps` work inside a wall-clock budget; if they run out they return what\n  they have with `truncated` set. Partial numbers are labelled - don't treat a\n  truncated sample as a full one.\n- **Sold results are not all recent.** A single sold search can mix items that sold\n  yesterday with ones that sold two years ago. Check the `updated` timestamp before\n  treating a price as current.\n- **Mercari Shops items are excluded by default** (`includeShops=false`). They are B2C\n  storefront listings; mixing them into C2C price research skews the numbers upward,\n  and `get-item` cannot fetch them.\n- `daysToSell` on a sold item is (updated - created) and is an approximation: a seller\n  editing the price also refreshes `updated`. Do not present it as exact.\n- Paging: pass the returned `nextPageToken` back as `pageToken`.\n- **Watches belong to the calling user and are addressed by id.** You cannot see or\n  delete anyone else's, and there is no way to ask for another user's watches.\n- **A watch only tells you about listings first seen after it was created.** If the\n  user wants to know what is on the market right now, that is `search`, not a watch.\n\n## Response shape\n\nEvery response is `{ok: true, ...}` on success. `_meta` reports how many upstream\nrequests the call actually made.\n\n## Error handling\n\nErrors come back as `{ok: false, error: \"...\", hint: \"...\"}` with HTTP 200. Read the\nhint - it usually tells you exactly which argument to change and retry.\n\n## Scope\n\nPublic data only. There is no account attached: this tool cannot buy, list, comment,\nmake offers, or read anyone's transactions or messages. Do not claim otherwise.","name":"mercari","parameters":{"properties":{"brandId":{"description":"Brand ids to filter by. Get them from resolve-facets.","items":{"type":"number"},"type":"array"},"categoryId":{"description":"Category ids to filter by. Get them from resolve-facets.","items":{"type":"number"},"type":"array"},"compsLimit":{"description":"For listing-comps: how many comparable listings to fetch in full, 1-10 (default 5).","type":"number"},"condition":{"description":"Item condition ids: 1=\u65b0\u54c1\u3001\u672a\u4f7f\u7528 2=\u672a\u4f7f\u7528\u306b\u8fd1\u3044 3=\u76ee\u7acb\u3063\u305f\u50b7\u3084\u6c5a\u308c\u306a\u3057 4=\u3084\u3084\u50b7\u3084\u6c5a\u308c\u3042\u308a 5=\u50b7\u3084\u6c5a\u308c\u3042\u308a 6=\u5168\u4f53\u7684\u306b\u72b6\u614b\u304c\u60aa\u3044.","items":{"type":"number"},"type":"array"},"descriptionChars":{"description":"For listing-comps: characters of each description to return, 200-3000 (default 1200).","type":"number"},"exclude":{"description":"Keywords to exclude (\u9664\u5916\u30ad\u30fc\u30ef\u30fc\u30c9), e.g. '\u30b8\u30e3\u30f3\u30af \u90e8\u54c1\u53d6\u308a'.","type":"string"},"feeRate":{"description":"Mercari's cut, default 0.10 (10%).","type":"number"},"fields":{"description":"For search: 'compact' (default, ~11 fields per item) or 'minimal' (id, name, price, status, url) when you only need prices or links and want to save context.","type":"string"},"fullDescription":{"description":"For get-item: return the full description instead of the first 800 characters.","type":"boolean"},"id":{"description":"Item id, e.g. 'm66618007122'. Use for get-item when you want one item.","type":"string"},"ids":{"description":"For get-item: up to 10 item ids to fetch in ONE call instead of one call each. Prefer this whenever you need details for more than one listing.","items":{"type":"string"},"type":"array"},"includeShops":{"description":"Include Mercari Shops (B2C) listings. Default false, because shop pricing is not comparable to C2C listings.","type":"boolean"},"instruction":{"description":"The operation to perform. One of: verify, search, get-item, get-seller, seller-items, market-stats, compare, listing-comps, resolve-facets, watch-create, watch-list, watch-delete, watch-poll.","type":"string"},"keyword":{"description":"Search keywords, Japanese works best (e.g. '\u30e9\u30a4\u30ab M6'). Space-separated terms are ANDed.","type":"string"},"keywords":{"description":"For compare: 2-6 keywords to price side by side.","items":{"type":"string"},"type":"array"},"label":{"description":"For watch-create: a short human-readable name for this watch, e.g. '\u30e9\u30a4\u30ab M6 \u30dc\u30c7\u30a3 20\u4e07\u4ee5\u4e0b'.","type":"string"},"limit":{"description":"Max items to return, 1-120 (default 20).","type":"number"},"order":{"description":"'desc' (default) or 'asc'. Note: only score/desc, created/desc, price/desc, price/asc and likes/desc are supported by the site itself.","type":"string"},"pageToken":{"description":"Pass back nextPageToken from a previous search to get the following page.","type":"string"},"priceMax":{"description":"Maximum price in JPY. 0 or omitted = no bound.","type":"number"},"priceMin":{"description":"Minimum price in JPY. 0 or omitted = no bound.","type":"number"},"sampleSize":{"description":"For market-stats: how many listings to sample per side, 40-360 (default 240). Larger costs more time; the call stops early rather than exceeding its budget.","type":"number"},"sellerId":{"description":"Seller (user) id, e.g. '765075749'. Required for get-seller and seller-items.","type":"string"},"sellerStatus":{"description":"For seller-items: comma-separated subset of 'on_sale,trading,sold_out' (default all three).","type":"string"},"shippingCost":{"description":"Shipping you will pay, in JPY (e.g. 750 for \u3089\u304f\u3089\u304f\u30e1\u30eb\u30ab\u30ea\u4fbf 60 \u30b5\u30a4\u30ba). Deducted from netProceeds/breakEvenCost. Omit and only the fee is deducted.","type":"number"},"soldWithinDays":{"description":"For market-stats/compare: only count items sold within this many days (default 90). This filter is essential - a sold search otherwise mixes in sales from years ago.","type":"number"},"sort":{"description":"Sort key: 'score' (default, relevance), 'created', 'price', 'likes'.","type":"string"},"status":{"description":"Listing status filter: 'on_sale' (default), 'sold_out' (sold + in-transaction; this is what you want for price research), or 'all'.","type":"string"},"trimOutliers":{"description":"For market-stats/compare: drop prices outside 1.5x IQR (default true). Keeps bundle listings and junk from dragging the median.","type":"boolean"},"watchId":{"description":"For watch-poll/watch-delete: which watch. Omit it on watch-poll to poll every watch you own in one call.","type":"number"}},"required":["instruction"],"type":"object"}},"params":{"password":""},"url":"https://global-amcp-merukari.agentplus.cloud/amcp/mercari"},"id":"mercari"}]}
