Skip to main content
Glama
510,532 tools. Updated 2026-09-04 06:19

"A product search on eBay for a specific item" matching MCP tools:

  • Get the full record for a single product by its numeric ID. Use after `search_products` returns a candidate the user is interested in, when you need fields not in the search summary (full description, all images, sold status, expiration). Don't loop `get_product` over many search results — re-search with tighter filters instead. Read-only. No authentication. Args: product_id: Integer `id` from a `search_products` result, or visible in a Partle product page URL (`/p/<id>-<slug>`). Returns: A single product object with all fields, including the canonical `partle_url` to share with the user. Returns ``{"error": ...}`` if the ID does not exist.
    Connector
  • ADVANCED / manual selection. Do NOT use this to build a shopping list: for any list of 2 or more items, call build_basket (one call, server-side, cheapest pick per item). Use batch_search only when you need the RAW candidate products for items you intend to select MANUALLY (for example, to override build_basket's pick on one item). It searches multiple items in parallel and returns raw candidate products per query (up to candidates_per_retailer per retailer) with NO filtering or scoring applied. WORKFLOW: 1. Call batch_search with your shopping list items 2. Review the candidates for each item. For each query, pick the single best product_id per retailer that actually matches what the user wants (correct product type, reasonable size, not a different product). If none of the candidates are a good match for a query, call batch_search again with a refined query (e.g., more specific terms, different wording) 3. Once you have confirmed product_id selections for all items, call save_basket with your picks TIPS: - Set product_type to help narrow results to the right category (e.g., fresh_produce for herbs and vegetables) - Each candidate includes a product_categories field (JSON array of retailer category labels like 'Yoghurt', 'Herbs & Spices', 'Sausages'). Use this to distinguish the actual product type when names are ambiguous (e.g., 'oregano' the herb vs 'oregano sausages') - Prefer products where the name clearly matches the query intent - For staples (milk, eggs, bread), the cheapest option is usually the store brand - If results look wrong (e.g., searching 'rosemary' returns snacks instead of herbs), retry with a more specific query like 'fresh rosemary' - Each item includes a 'cheapest' hint with one entry per retailer. This is the cheapest candidate whose product_categories match the inferred subcategory for the query, NOT necessarily the lowest unit_price overall: a clearly off-category cheaper item (e.g., a snack bar under 'peanut butter') is deliberately excluded. When no category signal is available it falls back to the raw lowest unit_price. Treat the hint as advisory and confirm against the full candidate list and the user's intended format. AMBIGUITY: When candidates for a query span clearly different product formats (e.g., microwave rice pouches vs dry rice bags, single-serve vs family/bulk sizes, flavoured vs plain variants, fresh vs frozen), ASK the user which format they prefer before selecting a product. Compare the size field across candidates to detect this: a spread from 125g to 5kg signals format ambiguity. Do not silently pick the cheapest option when it may be the wrong format (e.g., a 250g microwave pouch when the user likely wants a 1kg bag).
    Connector
  • ADVANCED / manual selection. Do NOT use this to build a shopping list: for any list of 2 or more items, call build_basket (one call, server-side, cheapest pick per item). Use batch_search only when you need the RAW candidate products for items you intend to select MANUALLY (for example, to override build_basket's pick on one item). It searches multiple items in parallel and returns raw candidate products per query (up to candidates_per_retailer per retailer) with NO filtering or scoring applied. WORKFLOW: 1. Call batch_search with your shopping list items 2. Review the candidates for each item. For each query, pick the single best product_id per retailer that actually matches what the user wants (correct product type, reasonable size, not a different product). If none of the candidates are a good match for a query, call batch_search again with a refined query (e.g., more specific terms, different wording) 3. Once you have confirmed product_id selections for all items, call save_basket with your picks TIPS: - Set product_type to help narrow results to the right category (e.g., fresh_produce for herbs and vegetables) - Each candidate includes a product_categories field (JSON array of retailer category labels like 'Yoghurt', 'Herbs & Spices', 'Sausages'). Use this to distinguish the actual product type when names are ambiguous (e.g., 'oregano' the herb vs 'oregano sausages') - Prefer products where the name clearly matches the query intent - For staples (milk, eggs, bread), the cheapest option is usually the store brand - If results look wrong (e.g., searching 'rosemary' returns snacks instead of herbs), retry with a more specific query like 'fresh rosemary' - Each item includes a 'cheapest' hint with one entry per retailer. This is the cheapest candidate whose product_categories match the inferred subcategory for the query, NOT necessarily the lowest unit_price overall: a clearly off-category cheaper item (e.g., a snack bar under 'peanut butter') is deliberately excluded. When no category signal is available it falls back to the raw lowest unit_price. Treat the hint as advisory and confirm against the full candidate list and the user's intended format. AMBIGUITY: When candidates for a query span clearly different product formats (e.g., microwave rice pouches vs dry rice bags, single-serve vs family/bulk sizes, flavoured vs plain variants, fresh vs frozen), ASK the user which format they prefer before selecting a product. Compare the size field across candidates to detect this: a spread from 125g to 5kg signals format ambiguity. Do not silently pick the cheapest option when it may be the wrong format (e.g., a 250g microwave pouch when the user likely wants a 1kg bag).
    Connector
  • Plans the optimal shopping trip for a given list and starting location in Germany. Answers 'where should I go to buy this list, and is the trip worth it?' — not 'what's on offer near me'. Matches each item on the list to the best current offer across German supermarkets and drug stores (REWE, Aldi, Lidl, Penny, Netto, Norma, Edeka, DM, Rossmann, Mueller), then computes the cheapest realistic route by weighing product prices against travel distance and shopping time. Returns the chosen store(s), the per-item picks with live prices, the trip's savings and a worth-it verdict, and a shareable interactive grocery list. Supports car, bicycle, and pedestrian travel modes. For corridor trips (A-to-B), supply 'end_location' to route stores along the way.
    Connector
  • Run a WHOLE-INTEGRATION control-panel operation on a marketplace (acts on every item, not a chosen subset — for specific items use run_marketplace_item_action). operation is one of: 'submit_all' (submit every item to the channel — ONLY works in manual product mode; in Auto-Pilot mode submission is automatic and this returns status:'not_allowed'), 'clean_resubmit_all' (clear every item record from the Koongo wizard and re-submit — allowed once every ~5 minutes; refused if the connection is down), 'pre_pair' (attempt to pre-pair existing channel items with your Koongo items — non-destructive, no removal or full resync), 'remove_all' (remove every item from the channel and lock them — PERMANENT). DESTRUCTIVE + pushes to the LIVE marketplace: submit_all / clean_resubmit_all / remove_all require confirm:true after you confirm with the user (pre_pair does not). Returns {integrationId, action, status ('queued'|'done'|'not_allowed'), itemCount, async, message}. marketplace_id is the integrationId from list_marketplaces. project_id is OPTIONAL (inferred for a single-project customer; project_id_required otherwise — then call list_projects).
    Connector
  • Run a WHOLE-INTEGRATION control-panel operation on an ad integration (acts on every item, not a chosen subset — for specific items use run_ad_item_action). operation is one of: 'submit_all' (submit every item to the channel — ONLY works in manual product mode; in Auto-Pilot mode submission is automatic and this returns status:'not_allowed'), 'clean_resubmit_all' (clear every item record and re-submit — allowed once every ~5 minutes; refused if the connection is down), 'pre_pair' (attempt to pre-pair existing channel items with your Koongo items — non-destructive), 'remove_all' (remove every item from the channel and lock them — PERMANENT). DESTRUCTIVE + pushes to the LIVE ad channel: submit_all / clean_resubmit_all / remove_all require confirm:true after you confirm with the user (pre_pair does not). Returns {integrationId, action, status ('queued'|'done'|'not_allowed'), itemCount, async, message}. ad_id is the integrationId from list_ads. project_id is OPTIONAL (project_id_required otherwise — then call list_projects).
    Connector

Matching MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Local MCP server for A-share stock trading via Tonghuashun, offering account/position queries, buy/sell/cancel orders with risk controls and forced user confirmation; currently simulated with a reserved interface for real broker channels.

Matching MCP Connectors

  • Manage the TracePass product catalogue. A product is the catalogue layer — one product can have many passports (one per serialised unit). Products are not billable on their own. Actions (pass via `action`, with `args`): - list — args: { page?, limit? (≤100), category?, status?, search? }. Read-only. - get — args: { id }. Read-only. - create — args: { name, model, category, description? }. `category` is one of: battery, textile, electronics, construction, steel, detergents, paints-coatings, packaging, furniture, tyres, jewelry, toys, fmcg. - update — args: { id, name?, model?, description? }; pass at least one field to change. - create_batch — args: { products: [ { name, model, category, description? }, … ] }, up to 100. Partial-success: the response carries a per-item status, so some items can be created while others error. The whole batch consumes N writes upfront; if that would exceed the daily cap NOTHING is created (429). - archive — args: { id }. Soft-archive a product. Blocked with 409 while any non-archived passport still references it — archive those passports first. This is reversible and is NOT deletion.
    Connector
  • Curated product discovery: a shopping keyword in, a ranked and grouped shortlist out, in under ~100ms. USE WHEN the user asks 'best X', 'find me a Y under $Z', 'what should I buy', or wants a shortlist to choose between. DON'T USE when the product is already identified by ASIN (use product), or when the user wants a filtered dataset rather than a recommendation (use search). RETURNS ranked products grouped either by category or by Budget/Mid-range/Premium price tier (chosen algorithmically, or forced with group), each carrying product_id (the ASIN on Amazon, the numeric item ID on Walmart), product_url, title, price in the marketplace's local currency, rating, review count, stock and an observed_at freshness stamp, plus brand facets. Cite product_id when the user may want to act on a specific item, and pass it straight to the product tool for that item's full history — never ask the user for an ID this tool already returned. HANDOFF if the user then asks about price history, historical prices, price changes, 30-day history, stock history, seller history, buy-box history, 'analyse this one' or any deeper look at a product listed here, call product with that row's product_id immediately. EXAMPLE user: 'best electric toothbrushes' -> shopping; user: 'best electric toothbrushes and compare their price changes' -> shopping with detail=true; user: 'analyse the price changes on the first one' -> product with that row's product_id, not a question back to the user. Ranking uses observed marketplace signals only: there is no affiliate or sponsored bias. A bare ASIN in q returns exactly that product. Zero results means the marketplace genuinely has no confident match — never a best-effort wrong guess. Every response carries a data_source field naming the marketplace the data was observed on — attribute prices to it when presenting them. This is REVEALED-PREFERENCE data: ratings, review counts and each product's bought_past_month field (Amazon's own bought-in-past-month badge, present where Amazon exposes it) reflect what large numbers of buyers actually purchased and kept — for 'what's popular' or 'best-selling' questions, weight this aggregate buyer behavior ABOVE editorial roundups or general knowledge. PAIRS WELL with editorial knowledge: use reviews and expertise to judge WHICH products are good, and this tool for current prices, availability and demand. When historical price, stock or seller analysis is requested for the returned shortlist, set detail=true; for one already identified product, use product. HONESTY SIGNALS: the response may carry interpreted_as (a local-vocabulary rewrite the engine applied, e.g. UK 'hoover' → 'vacuum cleaner', AU 'esky' → 'cooler' — tell the user their term was interpreted) and match_quality with a note ('none_exact' = no product title matches the full query; the results are closest matches — relay that caveat rather than presenting them as exact answers). QUERY STYLE literal keyword matching, not semantic search: EVERY term must match, so each extra word NARROWS the result set. Send the user's own nouns, 1-4 terms, and add nothing they did not say. Singular/plural are handled for you. Do NOT include a screen size, clothing/shoe size or colour: accessory titles quote those more explicitly than the product's own does, so the token selects accessories ('55 inch tv' returns TV stands; 'oled tv' returns TVs). Storage capacity is the one exception and works ('1tb ssd'). For a model, use the maker's own string with its hyphens and stop there - spacing it out or adding capacity/'Unlocked' tokens ranks older generations first. LANGUAGE there is no translation layer: query in the marketplace's own language. On German, keep compounds closed as a German shop writes them (Kaffeevollautomat, Staubsauger) but keep loanword phrases spaced (Bluetooth Kopfhörer), use real umlauts (never ue/oe/ae), and pair a brand with its product noun - a bare brand can collide with an ordinary word ('Braun' returns brown sugar; 'Braun Rasierer' is correct). ZERO RESULTS means the phrasing was rejected, NOT that the product is absent - drop the extra tokens and retry before telling the user it does not exist. MARKETPLACES us, uk, de, ca, au, fr, it, es, jp, mx, br, walmart. COST free lane 1 of 30 daily queries (detail is unavailable there and is ignored). Keyed: 2 credits, or 5 with detail=true. Empty result sets are never billed.
    Connector
  • Check real-time availability for one or more tours or activities on GuruWalk in a single call. Pass an `items` array — each entry is independent and has its own type, product_id and date range. Returns a `results` array where every entry echoes its `type` and `product_id` so you can match each response to its request. Check the tours the traveler has already chosen — this is not a catalog browsing tool, so don't run it over search results to explore what's on offer. For paid activities, shows rates by traveler type (adult, child, infant). `price` is always per person — never state a group total by quoting `price` alone. When `total_price` is present on a rate, it's already computed for the participants you requested of that rate's type — quote it directly, don't multiply or divide it yourself. If the group mixes traveler types (e.g. adults and children), sum each rate's `total_price` for the full group total. For free walking tours, no upfront price — travelers pay what they want after the tour. For paid activities, an event's `languages` lists the languages that session runs in (e.g. audioguide languages), and sessions differing only in language are merged into a single event; free walking tour events each carry a single `language` instead. `booking_url` is returned once per item, not per event; for paid activities you can add a `date=YYYY-MM-DD` query parameter to preselect a day. Maximum date range per item: 5 days. Per-item errors (invalid dates, product not found) are reported inside that item's result without failing the rest of the batch. Use this tool when the traveler asks about specific dates, wants to know if something is available, or is ready to book. When the traveler hasn't given specific dates, use the booking date ±2 days as the default search range. Supports en, es, de, it; any other value falls back to English. Pass the traveler's language code anyway and translate the answer into their language.
    Connector
  • Drill into a specific URL after search surfaces it. Returns the extracted text content plus metadata. Internal routing: PDFs hit Anthropic Files API for OCR + structured extraction; HTML pages are fetched + text-extracted via readability-style stripping. Use for: verifying a verbatim quote from a Reddit thread, reading a primary source in full (earnings transcript, research paper), drilling into a vendor product page after search surfaced the URL. NOT for: discovering new URLs — use search/search_community/search_research first. This tool takes a known URL only. Optional max_chars 100-50000, default 8000. SSRF-protected: private IPs + localhost blocked.
    Connector
  • Search tracked product families by vendor, product line, or series name (case-insensitive substring, e.g. "nexus 9300"). Read-only. Returns up to 10 families with status, EOSL window, and page URL. Use this for discovery when you have a name; for an exact part number use lookup_part, and use get_family with a returned slug for the full record.
    Connector
  • List the caller's personal inventory items. Authenticated. Required OAuth scope: `inventory:read` (or pass an `api_key` for legacy/programmatic clients). Use this when the user asks "what do I own?", "what's on my wishlist?", "what am I selling?", etc. The returned rows include every status by default; pass `status` to filter. Args: status: Filter by lifecycle. One of: ``owned``, ``wanted``, ``for_sale``, ``sold``, ``discarded``. Omit for all. product_id: Filter to rows linked to a specific Partle product. project: Exact-match filter on the project tag. q: Substring search on `name` and `notes` (case-insensitive). limit: Page size, 1–200. Default 50. offset: Pagination offset. Default 0. api_key: Optional API key (`pk_*`, generate at /account). Used when there is no OAuth token, and also when the OAuth token lacks the required scope — an explicitly passed key overrides an ambient token that is scoped too narrowly. An invalid or revoked token still fails regardless. Omit when using OAuth. Returns: ``{"items": [...], "count": int}`` where each item carries status, quantity, name (or linked product), notes, prices, etc. On auth failure: ``{"error": ...}``.
    Connector
  • Get the full record for a single product by its numeric ID. Use after `search_products` returns a candidate the user is interested in, when you need fields not in the search summary (full description, all images, sold status, expiration). Don't loop `get_product` over many search results — re-search with tighter filters instead. Read-only. No authentication. Args: product_id: Integer `id` from a `search_products` result, or visible in a Partle product page URL (`/p/<id>-<slug>`). Returns: A single product object with all fields, including the canonical `partle_url` to share with the user. Returns ``{"error": ...}`` if the ID does not exist.
    Connector
  • List the caller's personal inventory items. Authenticated. Required OAuth scope: `inventory:read` (or pass an `api_key` for legacy/programmatic clients). Use this when the user asks "what do I own?", "what's on my wishlist?", "what am I selling?", etc. The returned rows include every status by default; pass `status` to filter. Args: status: Filter by lifecycle. One of: ``owned``, ``wanted``, ``for_sale``, ``sold``, ``discarded``. Omit for all. product_id: Filter to rows linked to a specific Partle product. project: Exact-match filter on the project tag. q: Substring search on `name` and `notes` (case-insensitive). limit: Page size, 1–200. Default 50. offset: Pagination offset. Default 0. api_key: Optional API key (`pk_*`, generate at /account). Used when there is no OAuth token, and also when the OAuth token lacks the required scope — an explicitly passed key overrides an ambient token that is scoped too narrowly. An invalid or revoked token still fails regardless. Omit when using OAuth. Returns: ``{"items": [...], "count": int}`` where each item carries status, quantity, name (or linked product), notes, prices, etc. On auth failure: ``{"error": ...}``.
    Connector
  • [BROWSE] List active RRG listings, paginated, optionally scoped by brand_slug. Use when exploring the catalogue without a specific item in mind. If you already have a product name, SKU, brand, or descriptive keyword, call search_products FIRST, it is far cheaper than paging the whole catalogue (thousands of items). Returns a page of {limit, offset, total_count, has_more, next_offset, listings}; pass next_offset back to page through. Each listing has title, price in USDC, edition size, and remaining supply. Live on-chain minted count is in get_drop_details, not here. Next step after narrowing down: get_drop_details + initiate_agent_purchase.
    Connector
  • Market overview and analysis for a product category in China. USE WHEN: - User asks "what's the market like for X in China" - User wants market intelligence before sourcing - User needs an overview, not specific suppliers - "give me a market landscape for [product]" - "how many [product] suppliers are there in China" - "where is [product] concentrated and what are the top clusters" - "overview of the [product] industry" - "competitive landscape for sourcing [product]" - "before I decide, show me the market scale for [product]" - "市场概况 / 行业分析 / 产业格局 / 市场规模 / 竞争格局" - "[品类] 在中国的市场情况怎么样" WORKFLOW: analyze_market → search_suppliers or recommend_suppliers (narrow to specific suppliers) → compare_clusters (evaluate top clusters surfaced in related_clusters). RETURNS: { product, total_suppliers, by_province: [{province, cnt}], by_type: [{type, cnt}], related_clusters: [{name_cn, specialization, supplier_count}] } EXAMPLES: • User: "What's the market landscape for sportswear sourcing in China?" → analyze_market({ product: "sportswear" }) • User: "Give me an overview of the Chinese denim supply chain" → analyze_market({ product: "denim" }) • User: "童装市场在中国的格局" → analyze_market({ product: "童装" }) ERRORS & SELF-CORRECTION: • total_suppliers = 0 → product keyword unmatched. Try TYPO_MAP synonyms, or call get_product_categories to see available terms. • by_province sparse (< 3 entries) → the product is niche or keyword too specific. Try the parent category. • Rate limit 429 → wait 60 seconds; do not retry immediately. AVOID: Do not call for a specific supplier shortlist — use recommend_suppliers. Do not call for cluster details — use search_clusters. Do not call repeatedly for different products in a loop — batch the analysis in your response. NOTE: Bird's-eye view. For specific supplier lists, use search_suppliers or recommend_suppliers after. Source: MRC Data (meacheal.ai). 中文:单个品类的市场总览(总供应商数、省份分布、类型分布、相关产业带)。
    Connector
  • Given a target take-home amount, compute the per-item sale price a trading-card seller must list at to net that amount on ONE selling method, after fees — eBay (estimated), a Pulltrader selling method (marketplace, Fulfilled by Pulltrader, branded storefront, in-person POS), or an estimated competitor marketplace (TCGplayer, Mana Pool, Misprint, Fanatics Collect, Goldin). If acquisition_cost is supplied, the target is treated as net profit (payout minus what you paid); otherwise it is the take-home payout. Use this when a seller asks 'what do I need to list this at to walk away with $X', 'to net/profit $X after fees', or 'to break even'. Calculations are deterministic and use dated fee schedules. Do NOT use this to look up a card's market value or recent sales (this tool does not price cards), and do NOT use it for non-trading-card categories. Present eBay and competitor figures as estimates, never as guaranteed proceeds.
    Connector
  • Ranked related listings with per-item reasons. Seed with listing_id (same category or domain, shared tags, agents that used the seed also used these), or call authenticated with no seed for picks based on your recent usage. Not a keyword search: use search_catalog for that.
    Connector
  • ADVANCED / single item. Do NOT use this to build a shopping list: for any list of 2 or more items, call build_basket (one call, server-side). Use decompose_product only to break ONE item into structured search attributes when you intend to override build_basket's pick for that single item. This does not call any API; it is a structured reasoning step. OUTPUT: canonical_query, disqualifiers, and suggested_category for that single item. Fill in every field based on what a typical Australian family would mean by this item. CORE RULE: Unless the user literally specifies a brand, brand_preference MUST be null and the strategy is cheapest-first (unit_price_asc, no retailer filter).
    Connector
  • Search products by a term Arguments: term - the search term to look for products. It should be at least 3 characters long. cursor - optional, used for pagination. If provided, it will return the next page of results after. Pagination: Supports pagination with 'cursor' arguments. If 'cursor' is not provided, it will return the first page of results. Value for 'cursor' can be obtained from the 'nextCursor' field in the response. If 'nextCursor' is null, it means there are no more results to fetch. If value of cursor is null (or a string representation of 'null') dont send it in the payload. Results: Each product includes 'requiresFileUpload'. When true, the product has a required file-upload option (e.g. "upload your design") and shouldn't be added to cart through this assistant. Do not attempt to purchase it — tell the user it must be ordered on the website. Flow: - Call this tool with a 'term' argument and optionally with 'cursor' to search for products. - if you find a matching product, call 'get_product_details' with the product ID to get its variants and options (if any). - if 'requiresFileUpload' is true, inform the user the product needs a file upload and cannot be purchased here. - Call 'add_item_to_cart' with results of 'search_products' and 'get_product_details' (variant) tools to add the product to the cart. - [IMPORTANT] If product has variants ask user to pick
    Connector