776,701 tools. Updated 2026-11-13 12:38
"Amazon ElastiCache" matching MCP tools:
- Get detailed KDP niche intelligence for a specific keyword. Returns demand score, competition score, Amazon BSR range, estimated monthly revenue, review threshold, average book pricing, and data freshness for the given Kindle publishing niche. Pricing tiers (x402 USDC on Base network): - $0.03 per query for cached/pre-seeded keywords - $0.10 per query for live on-demand research (new keywords) Use the free `list_niches` tool first to see available keywords. Payment options: 1. Set the KDP_X_PAYMENT environment variable on the server for auto-pay. 2. Pass a valid x402 payment header via the x_payment argument. 3. If neither is set, the tool returns structured 402 payment instructions that an x402-capable agent can use to construct and retry payment. Args: keyword: The KDP niche keyword to research (e.g. "romance novels", "keto cookbook") x_payment: Optional base64-encoded x402 payment header. Takes precedence over the KDP_X_PAYMENT environment variable.ConnectorNo auth
- Search Amazon products 1. Function Discover candidate Amazon products by keyword, category and business metrics, returning a paginated list of the shared Product model (max 100 per page). Reads the catalog snapshot: omit dateRange or pass 'Nd' for the latest daily snapshot, or 'YYYY-MM' for that month's month-end snapshot (earliest 2026-02). Filters include price, monthly sales and revenue floors, growth rates, BSR and its 7-day change, rating, seller count, brand and seller lists, badges, fulfillment, package weight in ounces, package size tier, Buy Box seller country, gross margin rate and category scope. Setting any range or list filter excludes products whose value is unknown, so a narrower result set is a coverage effect, not a market finding. categoryScope=includeChildren (default) matches the given category levels and every subcategory; exactOnly requires the product's path to end at the last given level. monthlySalesFloor is the page's 'N+ bought in past month' figure carried forward by the catalog snapshot, a lower bound rather than an estimate. Billing: 1 credit per request. 2. Use cases Use search to find products you do not know yet — niche discovery, competitor screening, filtering by margin or growth. Use /products/detail to read ASINs or a parent's variants you already know; it takes no filters. Use /products/competitors for competitor lookup around one ASIN, and /markets/search for category-level demand and competition. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "success": true, "meta": { "requestId": "Requestid", "timestamp": "Timestamp" } } ``` **Output Schema:** ```json { "properties": { "success": { "type": "boolean", "title": "Success", "description": "Whether the request was successful", "default": true }, "data": { "title": "Data", "description": "Response data payload" }, "error": { "description": "Error details if request failed" }, "meta": { "description": "Metadata for API responses.\n\nCredit fields follow the ADR-0003 parallel-fields strategy (Option 3):\n- `credits_remaining` / `credits_consumed` (int): legacy fields, rounded\n to whole credits, kept for zero-breaking-change to existing SDK clients.\n- `credits_remaining_exact` / `credits_consumed_exact` (float): new\n precision-aware fields for clients that opt in to decimal credits.\n\nSee ADR-0003 decision 5 and the \u00a78 deprecation timeline.\n\nTODO(2026-11, ADR-0003 \u00a78 +6mo): mark `credits_remaining` /\n`credits_consumed` as `deprecated=True` in their Field() definitions\nand announce in customer changelog.\nTODO(2027-05, ADR-0003 \u00a78 +12mo): remove the legacy int fields via a\nmajor-version bump of the OpenAPI surface.", "properties": { "requestId": { "type": "string", "title": "Requestid", "description": "Unique request identifier" }, "timestamp": { "type": "string", "title": "Timestamp", "description": "Response timestamp in ISO 8601 format" }, "total": { "title": "Total", "description": "Total number of records" }, "page": { "title": "Page", "description": "Current page number" }, "pageSize": { "title": "Pagesize", "description": "Number of records per page" }, "totalPages": { "title": "Totalpages", "description": "Total number of pages" }, "creditsRemaining": { "title": "Creditsremaining", "description": "Remaining API credits (rounded to whole credits; see creditsRemainingExact for precise value)" }, "creditsConsumed": { "title": "Creditsconsumed", "description": "Credits consumed by this request (rounded; see creditsConsumedExact for precise value)" }, "creditsRemainingExact": { "title": "Creditsremainingexact", "description": "Remaining API credits, precise to 1 decimal place" }, "creditsConsumedExact": { "title": "Creditsconsumedexact", "description": "Credits consumed by this request, precise to 1 decimal place" }, "tokensUsage": { "description": "Provider token-usage block \u2014 populated on terminal video polls only, null on every non-video endpoint. See TokensUsage for its fields." } }, "type": "object", "required": [ "requestId", "timestamp" ], "title": "ResponseMeta" } }, "type": "object", "required": [ "meta" ], "title": "OpenApiResponse[list[Product]]", "examples": [] } ``` **422**: Validation Error Content-Type: application/json **Example Response:** ```json { "detail": [ { "loc": [], "msg": "Message", "type": "Error Type", "ctx": {} } ] } ``` **Output Schema:** ```json { "properties": { "detail": { "items": { "properties": { "loc": { "items": {}, "type": "array", "title": "Location" }, "msg": { "type": "string", "title": "Message" }, "type": { "type": "string", "title": "Error Type" }, "input": { "title": "Input" }, "ctx": { "type": "object", "title": "Context" } }, "type": "object", "required": [ "loc", "msg", "type" ], "title": "ValidationError" }, "type": "array", "title": "Detail" } }, "type": "object", "title": "HTTPValidationError" } ```ConnectorNo auth
- Confirms whether an SSP/exchange is authorized to sell a publisher's inventory according to that publisher's ads.txt. This is a cache lookup against ads.txt files crawled daily across the top 10,000 publisher domains — it does NOT fetch the publisher's ads.txt live, so it is fast and adds no latency to a real-time bidding decision. Use this tool when: - You are an ad-buying agent and want to confirm, pre-bid, that a supply path (publisher → exchange → seller_id) is legitimate. - You are detecting domain spoofing or unauthorized resale in a bid stream. - You want to check whether a seller is listed DIRECT or RESELLER. Do NOT use this tool when: - You want a full supply-path trust score — that endpoint is Sigil P31. - You want surveillance tracker data for the domain — use `get_domain`. Inputs: - `publisher_domain` (body, required): Publisher domain, e.g. `nytimes.com`. A `www.` prefix and scheme/path are stripped automatically. - `exchange_domain` (body, required): The exchange/SSP domain as it appears in ads.txt, e.g. `google.com`, `amazon-adsystem.com`. - `seller_id` (body, required): The publisher's seller/account ID at that exchange, e.g. `pub-4177862836555934`. Matched exactly. - `seller_type` (body, optional): `DIRECT` or `RESELLER`. When supplied it is checked against the ads.txt entry; a mismatch is reported as a warning. - `resolve_chain` (body, optional): When true, a matched RESELLER entry is cross-checked against the exchange's sellers.json (one authoritative hop). Returns: - `verified`: true (entry found), false (confidently not listed), or null (ads.txt could not be retrieved — indeterminate). - `confidence`: `high` | `degraded` | `low` | `unknown`. - `seller_entry`: the matched ads.txt line (line number, raw text, parsed fields) when `verified` is true; otherwise null. - `ads_txt_parse_status`, `ads_txt_last_parsed`, `stale`: provenance of the cached crawl this answer is derived from. - `reseller_chain`: empty unless `resolve_chain: true` and the matched entry is RESELLER — then it carries the sellers.json cross-check for the seller. - `warnings`: actionable flags, e.g. `publisher_not_in_corpus`, `publisher_has_no_ads_txt`, `seller_type_mismatch`, `ads_txt_cache_stale`. Cost: - Counts as one request against the daily rate limit. Latency: - Typical: <50ms (single cache lookup, no outbound fetch). p99: <120ms.ConnectorNo auth
- Pass exactly ONE of {query} or {category_slug}. Searches Amazon (com|co.uk|de|fr|es|it) and returns ranked hits with buybox price (gross + VAT-excluded net), ratings, review counts, and ASINs. Drill down with glim_amazon_get(ref). Set sort_by='most_reviewed' (with min_reviews to filter junk) for a trust-weighted re-rank within the current page. Compact text by default; pass format='json' for full structured data.ConnectorNo auth
- **Executes the task on live websites** and returns the result. Call `get_library` FIRST, then `run({ script })`. The same script can run from your app: POST `https://api.bowmark.ai/v1/run` with your API key; see `bowmark.ai/docs/http-api`. THE SCRIPT is a plain async JavaScript body, not a wrapping function. `bowmark` is a ready global: `await bowmark.<capability>.<fn>(...)`, or one site via `await bowmark.providers.<provider>.<fn>(...)`. `return` what you want back; `log(...)` for progress. Built-ins plus `URL`/`URLSearchParams` exist; `fetch`, `import`, `setTimeout` and a filesystem do not — `bowmark` is the only I/O. MIND THE CLOCK. Your client times out around 55 seconds; calls may take 30-55 seconds; default to ONE per script. Several? Use `Promise.allSettled` together (a dropped leg still returns `partial`), never one after another or inside a `for` loop. Keep under ~25,000 chars. CHECK `status` BEFORE `ok` — `ok` | `error` | `partial` | `needs_user` | `running`: • `running`: it is still going. Call `run({ runId })` to wait for the SAME run; never resend the script. • `partial`: `result` is real but narrower than asked, usually the site's doing; `incomplete` names what did not answer. Tell your user — never call it complete. `incomplete.failures[].fixable: true` means your argument was wrong: fix it and rerun. • `needs_user`: a site needs your user signed in; not a failure. Give them `meta.handoff.url`, name the sites, then call `wait_for_sign_in` with `meta.handoff.ref`. On `done`, send the SAME script unchanged. • `error`: there is no result; `error` says why. Saving files, one exit IP, saved secrets, `warnings`, `emptyHanded`, and the billed `browser_agent`/`delegate` fallbacks: `get_library({ query: "run guide" })`.ConnectorDestructiveNo auth
- Analyze a negative Amazon review for root cause and a suggested response (async; 2 credits). Extracts the underlying issue from a critical review and drafts a brand-appropriate response angle. Use this after a negative review appears, to decide how to reply. Do NOT use it to generate a listing or an appeal - use generate_listing or generate_poa for those. Read-only; deducts 2 credits; runs asynchronously, poll for the result. Args: text: the negative review text (required). marketplace: marketplace code (default US). lang: zh or en (default en).ConnectorNo auth
Matching MCP Servers
- AlicenseBqualityBmaintenanceEnables AI assistants to diagnose Amazon ElastiCache health and performance read-only by combining Redis/Valkey/Memcached data-plane insights with AWS control-plane context. It surfaces findings across memory, latency, clients, keys, replication, and cluster events without changing anything.65MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to query Amazon search volume trends and growth signals for product research and consumer purchase intent analysis.3MIT
Matching MCP Connectors
Amazon keyword search, product details, seller profiles and seller catalogues, as structured JSON.
Amazon search in 22 country stores, cross-store price comparison, one product's offers, all in PLN.
- Keyword Research (marketplace term universe): search the FULL Top Search Terms store by phrase - not anchored to any ASIN. Filters: contains (up to 5 substrings, ANDed), department, rank_max, min_volume; period WEEK or MONTH (MONTH = monthly volumes); sort rank | volume | trend. Each term: search_frequency_rank, volume (amazon_sqp = TRUE Amazon volume where any account's SQP covers the term; estimated_from_rank with volume_band otherwise), rank_change vs ~4 periods back, and the top-3 clicked ASINs with click/conversion shares (the term's competitive landscape). The estimator block reports calibration health (pairs, typical error factor, band coverage). Use keyword_finder for ASIN-anchored lookups; this tool for term-first research. For the guided process start with keyword_opportunities.ConnectorOAuth
- Claim the user's public handle: the @name in the links to pages they publish, bowmark.ai/jigs/@<handle>/<slug>. It is PUBLIC and PERMANENT: it can never be changed or released. Ask the user which one they want BEFORE calling, suggesting one from their name, and never choose it for them. A handle is 2 to 30 lowercase letters, digits and single hyphens. Calling again with the handle they already hold is fine. A taken or invalid handle is refused with a free `suggestedHandle` to offer instead. Call it with no `handle` to see whether they have one and a free one to suggest; that writes nothing. `jig_open` tells you when a new jig's owner has none yet.ConnectorNo auth
- BATCH INSPECTION: run up to 32 AWS inspect probes in one call. ⚠️ **PREREQUISITE**: Same as awsinspect — deploy attempt required. Check convostatus for hasDeployAttempt=true before calling. Use this when you need to check more than ~3 resources. The backend fetches Oracle credentials ONCE per batch and fans out probes against a single AWS config — for a 12-resource health check this is ~5–8× faster and 12× fewer Oracle round-trips than calling awsinspect 12 times. BUDGETS: - Up to 32 sub-probes per call (subs array length). - 30s per-sub timeout; 60s total batch wall-clock. - Concurrency cap 8 — sub-probes run in parallel but never saturate AWS. - 512 KB response cap: subs past the cap keep their envelope (index/service/action/ok) but have result replaced with truncated=true. PARTIAL FAILURE IS EXPECTED. The response is an ordered results array; each entry has {index, service, action, ok, result, error}. Inspect each result — do NOT abort on the first error. A credential fetch failure leaves cred-less probes (list-actions, list-metrics) succeeding anyway. REQUIRES: session_id from convoopen response (format: sess_v2_...). Supported services: account, acm, alb, apigateway, apprunner, backup, bedrock, cloudfront, cloudwatchlogs, cognito, cost-explorer, dynamodb, ebs, ec2, ecs, eks, elasticache, kms, lambda, msk, opensearch, rds, route53, s3, sagemaker, secretsmanager, sqs, vpc, waf For a specific service's actions, use awsinspect (singular) with action="list-actions" — batch is not the place for discovery. Batch responses are always summarized (no detail/raw per-sub); use singular awsinspect when you need full metadata or raw API output for one resource. EXAMPLES: - awsinspect_batch(session_id=..., subs=[ {"service":"ec2","action":"describe-instances"}, {"service":"rds","action":"describe-db-instances"}, {"service":"vpc","action":"describe-vpcs"}, {"service":"s3","action":"list-buckets"}]) - awsinspect_batch(session_id=..., subs=[ {"service":"ec2","action":"get-metrics","filters":"{\"hours\":6}"}, {"service":"rds","action":"get-metrics","filters":"{\"hours\":6}"}])ConnectorNo auth
- BATCH INSPECTION: run up to 32 AWS inspect probes in one call. ⚠️ **PREREQUISITE**: Same as awsinspect — deploy attempt required. Check convostatus for hasDeployAttempt=true before calling. Use this when you need to check more than ~3 resources. The backend fetches Oracle credentials ONCE per batch and fans out probes against a single AWS config — for a 12-resource health check this is ~5–8× faster and 12× fewer Oracle round-trips than calling awsinspect 12 times. BUDGETS: - Up to 32 sub-probes per call (subs array length). - 30s per-sub timeout; 60s total batch wall-clock. - Concurrency cap 8 — sub-probes run in parallel but never saturate AWS. - 512 KB response cap: subs past the cap keep their envelope (index/service/action/ok) but have result replaced with truncated=true. PARTIAL FAILURE IS EXPECTED. The response is an ordered results array; each entry has {index, service, action, ok, result, error}. Inspect each result — do NOT abort on the first error. A credential fetch failure leaves cred-less probes (list-actions, list-metrics) succeeding anyway. REQUIRES: session_id from convoopen response (format: sess_v2_...). Supported services: account, acm, alb, apigateway, apprunner, backup, bedrock, cloudfront, cloudwatchlogs, cognito, cost-explorer, dynamodb, ebs, ec2, ecs, eks, elasticache, kms, lambda, msk, opensearch, rds, route53, s3, sagemaker, secretsmanager, sqs, vpc, waf For a specific service's actions, use awsinspect (singular) with action="list-actions" — batch is not the place for discovery. Batch responses are always summarized (no detail/raw per-sub); use singular awsinspect when you need full metadata or raw API output for one resource. EXAMPLES: - awsinspect_batch(session_id=..., subs=[ {"service":"ec2","action":"describe-instances"}, {"service":"rds","action":"describe-db-instances"}, {"service":"vpc","action":"describe-vpcs"}, {"service":"s3","action":"list-buckets"}]) - awsinspect_batch(session_id=..., subs=[ {"service":"ec2","action":"get-metrics","filters":"{\"hours\":6}"}, {"service":"rds","action":"get-metrics","filters":"{\"hours\":6}"}])ConnectorNo auth
- Search affiliate shopping products and get ranked recommendations. Only `query` is required — a natural-language description of what the shopper wants (e.g. "a warm waterproof jacket for winter hiking"). Add fields to narrow results: - keywords: exact product terms. Use a SPECIFIC product type ("women running shoes", "stainless steel knife set"), not a bare generic noun ("shoes", "knife") — a generic keyword can surface the wrong audience. Audience/occasion go in `query`. - commerce_l2s: category ids to restrict to (read the `commerce://categories` resource for valid values — that taxonomy is for shopping only). - max_price / min_price: price band (USD). platforms: ["amazon"|"walmart"] (empty=all). - intent: ranking preset — "cheapest" | "best_discount" | "top_rated" | "best_value". - require_commission: only return products that pay a commission (default: server setting, normally on). Pass false to include zero/unknown-commission products. - limit: max results (default 10). `agent_id` is REQUIRED: your registered, active agent id. It is the attribution key and the access key — a missing/blank or unregistered agent_id is rejected (no anonymous use). Returns {count, products:[{offer_id,title,brand,price,rating,...,buy_url,product_url}]}. Each product's `buy_url` is ALREADY the trackable affiliate buy link — hand it to the shopper directly. (`product_url` is the plain product page.) There is no separate resolve/click step.ConnectorNo auth
- Check which of the 11 Amazon marketplaces a keyword was observed in Amazon's own autocomplete suggestions, with first/last observed dates and an example current suggestion-list position per marketplace. Use when a seller asks 'does anyone type X on Amazon Germany/Japan/…', compares keyword presence across countries, or plans a marketplace expansion (pair with brand_xmarket / operator_xmarket_presence). Exact-keyword match — not volumes, not rankings. Amazon marketplaces only.ConnectorNo auth
- Fetch a LIVE Amazon search-results page (SERP) right now — the ranked organic + sponsored listings a shopper would see this minute for a query, with position, ASIN, title, price, rating and badges. Use when the user wants CURRENT ranking/visibility: 'who ranks for "dog bed" on Amazon right now', 'is my ASIN on page 1 for this keyword', 'what's sponsored vs organic for this search'. This is a real-time fetch (takes ~10-40 seconds) — for warehouse keyword search use search_products; for buying advice use shopping_search. Amazon marketplaces only; up to 3 pages per call.ConnectorNo auth
- Use for a seller's customer feedback (service, shipping). Not for product reviews (product_reviews). Returns paginated seller feedback, optionally filtered to a star-rating window. Price: $0.003 per call. from_rating and to_rating are optional; omit both for unfiltered feedback. A page holds 5 reviews and the answer carries current_page and has_next_page; Amazon exposes no total, so page until has_next_page is false (up to page 100).ConnectorNo auth
- List the stored secrets this account holds, by NAME. Returns name, type, which hosts each may be used against, when it expires and when it was last used — never a value, and no Bowmark endpoint returns one. **Call this BEFORE `request_secret`.** A secret the user has already set is ready to use; asking for it again sends them to a page for nothing. In a script, refer to one by name: `bowmark.secret('acme_pw')`.ConnectorNo auth
- List the saved logins this account already holds, one entry per login: its `id` (name it in a signed-in call as `{ connection: id }`), the site, which account on that site, whether it works right now (`usable`), and when it was made, last used and last checked. **Call this before any task that needs a login, and again whenever you come back to one later.** A `usable` login means the site is already signed in: do not ask the user to sign in, just run the script, naming the id if the site has more than one. Prefer the login you used before over a new one. A login marked `needs_reauth`, `expired` or `logged_out` is not lost. Run the script anyway (name the id if you know it): it pauses with a link, and signing in through that link puts the fresh session back into the SAME id, so you can keep using it. To add a login for a site with none, call `add_connection` — it hands you a sign-in link for the user. `delete_connection` only asks the user to delete one this account already holds.ConnectorNo auth
- Create an idempotent, auditable write intent that builds a complete brand-new campaign structure (one or more campaigns, each with ad groups, keywords, and product ads) for the given ASINs in a single call -- this is not for editing anything that already exists. Preview only: nothing is built on Amazon until the returned request is confirmed via approve_write_v1 and then execute_write_v1, at which point the durable pipeline fans the build out into a trackable campaign setup job (poll its progress with get_campaign_setup_job_v1). The preview states `will_dispatch`: true means execute_write_v1 sends it to Amazon, false (execution_mode PREVIEW_ONLY) means it is recorded and never sent. Keywords and targets are researched while the structure is built and are not part of this preview; the campaigns are created ENABLED and start serving once built (get_campaign_setup_job_v1 lists them). A product that already has one of the requested campaign types (live, or built by a setup in the last 30 days) is refused unless allow_existing_structure is true. At most one campaign structure setup can be running per profile at a time. To create a single ad group, keyword, product target, or product ad in an EXISTING campaign instead of building a whole new structure, use prepare_adgroup_create_v1 / prepare_keyword_create_v1 / prepare_product_target_create_v1 / prepare_product_ad_create_v1 instead. To create ONE single custom campaign with a name you choose (for example a Phrase or Broad keyword campaign), use prepare_campaign_create_v1 and then fill it with prepare_adgroup_create_v1 / prepare_product_ad_create_v1 / prepare_keyword_create_v1.ConnectorDestructiveOAuth
- Create an idempotent, auditable write intent to edit one or more EXISTING ad groups' name, state (ENABLED/PAUSED/ARCHIVED), and/or default bid -- the default bid an individual target in that ad group falls back to when it has none of its own, not any one target's own bid. At least one field must be supplied per ad group, and only the fields supplied are changed. campaign_id must come from get_campaigns and adgroup_id from get_ad_groups. Nothing changes on Amazon or in Sellantica until the returned request is confirmed via approve_write_v1 and then execute_write_v1. The preview states `will_dispatch`: true means execute_write_v1 sends it to Amazon, false (execution_mode PREVIEW_ONLY) means it is recorded and never sent. To change one target's own bid or state instead of the ad group's default, use prepare_target_bid_v1; to create a new ad group instead of editing one, use prepare_adgroup_create_v1.ConnectorDestructiveOAuth
- Create an idempotent, auditable write intent to change the state of one or more EXISTING product ads: enable, pause, or archive (archiving is dispatched as an Amazon delete, not a state PUT). ad_id must be the Amazon product ad's own id (not its ASIN or its ad group id); a request for a state the ad is already in is rejected at prepare time. Nothing changes on Amazon or in Sellantica until the returned request is confirmed via approve_write_v1 and then execute_write_v1. The preview states `will_dispatch`: true means execute_write_v1 sends it to Amazon, false (execution_mode PREVIEW_ONLY) means it is recorded and never sent. To create a brand-new product ad instead of changing an existing one's state, use prepare_product_ad_create_v1.ConnectorDestructiveOAuth
- Monthly Amazon search volume for up to 1,000 keywords you already have, in the order given. Use when: "how many people search Amazon for X", comparing Amazon demand with Google demand, sizing a product idea on Amazon. Not for: Google volume, use seo_get_keyword_metrics. Finding keywords, use amazon_search_keywords. Returns: List. rows[]: keyword, volume (monthly Amazon searches; null = no data). Cost: 5 + 5 per 100 keywords. 10 keywords = 6 credits. Cached 7 days. Example: {"keywords": ["standing desk", "desk converter"]}ConnectorAPI key
- Looks up Amazon products. With asin it returns one product (asin, title, brand, price, availability, rating, reviews_count, url, image); with query, up to 20 results from the first search page (title, url, asin, price, rating, reviews_count, position). Send asin or query, not both; marketplace selects the Amazon site (default com). It does not return reviews, offers, bestseller lists or price history, nor prices from other merchants (use google_shopping_prices). A search with no matches is charged; errors are not. Required: asin or query.ConnectorNo auth