# Vendooly (com.vendooly/vendooly): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/com.vendooly%2Fvendooly/versions/latest)
- Connected to: https://mcp.vendooly.com/mcp
- Homepage: https://vendooly.com/
- Scoring rules: v2
- Tools: 136
- Average: 42.2 / 100 (Cloudy)
- Near-identical pairs: 16

This page shows how Vendooly (com.vendooly/vendooly)'s tool descriptions scored, the issues found and the names of its tools and parameters. The descriptions are the server's own: read them where the copy came from.

Forecall asked the URL this server lists in the official MCP Registry for its tools/list once, on the date above, without calling any tool. The server may have changed since.

## Across the server

- Major: 136 tools. Above 40, models choose less accurately.
- Minor: 16 pairs with nearly the same description in all; the top 12 are shown.
- Minor: The server has no instructions. Say there, once, what the server is for and when to use it: Claude Code and Gemini CLI read the instructions before the tool descriptions.

## Tools

- `generate_vendor_oauth_link`: 20 / 100
  - Major: The description only restates the name (4 words).
  - Major: The description is too short (4 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: redirect_uri, state.
  - Minor: String arguments with no constraint or example: redirect_uri, state.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `get_catalog_item`: 21 / 100
  - Major: The description only restates the name (5 words).
  - Major: The description is too short (5 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: asin, locale.
  - Minor: String arguments with no constraint or example: asin, locale.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `get_vendor_purchase_orders`: 21 / 100
  - Major: The description is too short (2 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: days_back, include_details, po_item_state.
  - Minor: String arguments with no constraint or example: po_item_state.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument include_details is unclear.
  - Minor: Says nothing about what it returns.
- `update_price`: 22 / 100
  - Major: The description only restates the name (5 words).
  - Major: The description is too short (5 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: sku, price, currency.
  - Minor: String arguments with no constraint or example: sku, currency.
  - Minor: Says nothing about what it returns.
- `audit_catalog_quality`: 23 / 100
  - Major: The description only restates the name (4 words).
  - Major: The description is too short (4 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: top_n, wait_timeout_sec.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `get_context_document`: 23 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: topic.
  - Minor: String arguments with no constraint or example: topic.
  - Minor: Says nothing about what it returns.
- `ads_list_sp_negative_keywords`: 24 / 100
  - Major: The description is too short (4 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: campaign_id, ad_group_id, profile_id.
  - Minor: String arguments with no constraint or example: campaign_id, ad_group_id, profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `ads_list_sp_negative_targets`: 24 / 100
  - Major: The description is too short (5 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: campaign_id, ad_group_id, profile_id.
  - Minor: String arguments with no constraint or example: campaign_id, ad_group_id, profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `get_order_items`: 24 / 100
  - Major: The description only restates the name (5 words).
  - Major: The description is too short (5 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: order_id.
  - Minor: String arguments with no constraint or example: order_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: order_id. Name the tool or the place that returns it, or models look it up first.
- `update_mfn_quantity`: 24 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: sku, quantity.
  - Minor: String arguments with no constraint or example: sku.
  - Minor: Says nothing about what it returns.
- `ads_create_sp_product_ads`: 26 / 100
  - Major: The description only restates the name (4 words).
  - Major: The description is too short (4 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: ads.
  - Minor: Says nothing about what it returns.
- `bulk_update_inventory`: 26 / 100
  - Major: The description only restates the name (3 words).
  - Major: The description is too short (3 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: updates.
  - Minor: Says nothing about what it returns.
- `delete_listing`: 26 / 100
  - Major: The description only restates the name (3 words).
  - Major: The description is too short (3 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: sku.
  - Minor: String arguments with no constraint or example: sku.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `ads_list_sb_keywords`: 27 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: campaign_id, ad_group_id, state_filter, profile_id.
  - Minor: String arguments with no constraint or example: campaign_id, ad_group_id, profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `ads_list_sb_targets`: 27 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: campaign_id, ad_group_id, state_filter, profile_id.
  - Minor: String arguments with no constraint or example: campaign_id, ad_group_id, profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `ads_list_portfolios`: 28 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: profile_id.
  - Minor: String arguments with no constraint or example: profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `ads_list_sp_keywords`: 28 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: campaign_id, ad_group_id, profile_id.
  - Minor: String arguments with no constraint or example: campaign_id, ad_group_id, profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `get_my_catalog_detail`: 28 / 100
  - Major: The description is too short (5 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: asin.
  - Minor: String arguments with no constraint or example: asin.
  - Minor: Says nothing about what it returns.
- `get_vendor_purchase_order_details`: 28 / 100
  - Major: The description is too short (3 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: po_number.
  - Minor: String arguments with no constraint or example: po_number.
  - Minor: Says nothing about what it returns.
- `get_vendor_invoices`: 29 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: days_back, ship_from_party_id.
  - Minor: String arguments with no constraint or example: ship_from_party_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `ads_list_sp_targets`: 30 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: campaign_id, ad_group_id, state_filter, profile_id.
  - Minor: String arguments with no constraint or example: campaign_id, ad_group_id, profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `ads_update_sp_keyword_state`: 30 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: keyword_id, state, items[].keyword_id, items[].state, profile_id.
  - Minor: String arguments with no constraint or example: keyword_id, state, items[].keyword_id, items[].state, profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `ads_update_sp_target_state`: 30 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: target_id, state, items[].target_id, items[].state, profile_id.
  - Minor: String arguments with no constraint or example: target_id, state, items[].target_id, items[].state, profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `get_vendor_po_summary`: 30 / 100
  - Major: The description is too short (4 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: days_back.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `ads_delete_sp_negative_keywords`: 31 / 100
  - Major: The description is too short (4 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: keyword_ids, profile_id.
  - Minor: String arguments with no constraint or example: profile_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: keyword_ids. Name the tool or the place that returns it, or models look it up first.
- `ads_delete_sp_negative_targets`: 31 / 100
  - Major: The description is too short (6 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: target_ids, profile_id.
  - Minor: String arguments with no constraint or example: profile_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: target_ids. Name the tool or the place that returns it, or models look it up first.
- `ads_delete_sp_targets`: 31 / 100
  - Major: The description is too short (5 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: target_ids, profile_id.
  - Minor: String arguments with no constraint or example: profile_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: target_ids. Name the tool or the place that returns it, or models look it up first.
- `ads_update_sb_keyword_state`: 31 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: keyword_id, state, items[].keyword_id, items[].state, profile_id.
  - Minor: String arguments with no constraint or example: keyword_id, items[].keyword_id, items[].state, profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `ads_update_sp_ad_group`: 31 / 100
  - Major: The description is too short (5 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: ad_group_id, patches.
  - Minor: String arguments with no constraint or example: ad_group_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: ad_group_id. Name the tool or the place that returns it, or models look it up first.
- `get_vendor_remittances`: 31 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: days_back, summary_only.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument summary_only is unclear.
  - Minor: Says nothing about what it returns.
- `set_packing_information`: 31 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: inbound_plan_id, groupings, groupings[].packing_group_id, groupings[].shipment_id, groupings[].boxes, groupings[].boxes[].length_cm, groupings[].boxes[].width_cm, groupings[].boxes[].height_cm, groupings[].boxes[].weight_kg, groupings[].boxes[].items, groupings[].boxes[].items[].sku, groupings[].boxes[].items[].quantity.
  - Minor: String arguments with no constraint or example: inbound_plan_id, groupings[].packing_group_id, groupings[].shipment_id, groupings[].boxes[].items[].sku.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: inbound_plan_id. Name the tool or the place that returns it, or models look it up first.
- `ads_list_sb_ad_groups`: 32 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: campaign_id_filter, profile_id.
  - Minor: String arguments with no constraint or example: profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `ads_list_sp_ad_groups`: 32 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: campaign_id, profile_id.
  - Minor: String arguments with no constraint or example: campaign_id, profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `ads_update_sb_ad_group`: 32 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: ad_group_id, patches.
  - Minor: String arguments with no constraint or example: ad_group_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: ad_group_id. Name the tool or the place that returns it, or models look it up first.
- `ads_update_sd_ad_group`: 32 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: ad_group_id, bid, state, items[].ad_group_id, items[].bid, items[].state, profile_id.
  - Minor: String arguments with no constraint or example: ad_group_id, items[].ad_group_id, items[].state, profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `ads_create_sp_negative_keywords`: 33 / 100
  - Major: The description is too short (4 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: negatives.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `ads_list_profiles`: 33 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `ads_list_sp_product_ads`: 33 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: campaign_id, ad_group_id, asin, sku, page_size, next_token, all_pages, profile_id.
  - Minor: String arguments with no constraint or example: campaign_id, ad_group_id, asin, sku, next_token, profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument all_pages is unclear.
  - Minor: Says nothing about what it returns.
- `ads_update_sb_target_bid`: 33 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: target_id, bid, items[].target_id, items[].bid, profile_id.
  - Minor: String arguments with no constraint or example: target_id, items[].target_id, profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `ads_update_sp_target_bid`: 33 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: target_id, bid, items[].target_id, items[].bid, profile_id.
  - Minor: String arguments with no constraint or example: target_id, items[].target_id, profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `bulk_update_prices`: 33 / 100
  - Major: The description is too short (3 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: updates.
  - Minor: Says nothing about what it returns.
- `get_fba_inventory`: 33 / 100
  - Major: The description only restates the name (3 words).
  - Major: The description is too short (3 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `get_my_pricing`: 33 / 100
  - Major: The description is too short (5 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: skus.
  - Minor: Says nothing about what it returns.
- `save_cockpit`: 33 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: cockpit_id, name, description, outpost_ids, status.
  - Minor: String arguments with no constraint or example: name, description.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `ads_list_sp_campaigns`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: state_filter, profile_id.
  - Minor: String arguments with no constraint or example: profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `ads_update_sb_target_state`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: target_id, state, items[].target_id, items[].state, profile_id.
  - Minor: String arguments with no constraint or example: target_id, items[].target_id, items[].state, profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `create_listing`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: sku, product_data, product_data.title, product_data.brand, product_data.price, product_data.quantity, product_data.condition, product_data.ean, product_data.asin, product_data.requirements, product_data.productType, product_data.attributes, product_data.validate_only.
  - Minor: String arguments with no constraint or example: sku, product_data.title, product_data.brand, product_data.condition, product_data.ean, product_data.asin, product_data.requirements, product_data.productType.
  - Minor: The meaning of the boolean argument product_data.validate_only is unclear.
  - Minor: Says nothing about what it returns.
- `ads_create_sp_ad_group`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: ad_group, ad_group.name, ad_group.campaign_id, ad_group.default_bid, ad_group.state, ad_group.profile_id.
  - Minor: String arguments with no constraint or example: ad_group.name, ad_group.campaign_id, ad_group.profile_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `ads_update_sp_product_ad_state`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: ad_id, state, items[].ad_id, items[].state, profile_id.
  - Minor: String arguments with no constraint or example: ad_id, items[].ad_id, profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `get_listing_issues`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: skus, issue_locale.
  - Minor: String arguments with no constraint or example: issue_locale.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `list_cockpits`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: include_archived.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument include_archived is unclear.
  - Minor: Says nothing about what it returns.
- `ads_list_sb_campaigns`: 36 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: state_filter, campaign_id_filter, profile_id.
  - Minor: String arguments with no constraint or example: profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `ads_list_sd_campaigns`: 36 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: state_filter, campaign_id_filter, profile_id.
  - Minor: String arguments with no constraint or example: profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `ads_update_sp_audience_bidding`: 36 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: campaign_id, set[].audience_id, set[].percentage, profile_id.
  - Minor: String arguments with no constraint or example: campaign_id, set[].audience_id, profile_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: campaign_id. Name the tool or the place that returns it, or models look it up first.
- `ads_create_sp_negative_targets`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: targets.
  - Minor: Says nothing about what it returns.
- `ads_update_sd_campaign`: 37 / 100
  - Major: Arguments without a description: campaign_id, daily_budget, state, items[].campaign_id, items[].daily_budget, items[].state, profile_id.
  - Minor: String arguments with no constraint or example: campaign_id, items[].campaign_id, items[].state, profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `cancel_inbound_plan`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: inbound_plan_id.
  - Minor: String arguments with no constraint or example: inbound_plan_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: inbound_plan_id. Name the tool or the place that returns it, or models look it up first.
- `get_cockpit`: 37 / 100
  - Minor: Arguments without a description: cockpit_id, include_health.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument include_health is unclear.
  - Minor: Says nothing about what it returns.
- `get_listing`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: sku, include_data.
  - Minor: String arguments with no constraint or example: sku.
  - Minor: Says nothing about what it returns.
- `get_sop`: 37 / 100
  - Major: Arguments without a description: sop_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: sop_id. Name the tool or the place that returns it, or models look it up first.
- `ads_create_sp_campaign`: 38 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: campaign, campaign.name, campaign.targeting_type, campaign.daily_budget, campaign.state, campaign.dynamic_bidding, campaign.placement_bidding, campaign.placement_bidding[].placement, campaign.placement_bidding[].percentage, campaign.start_date, campaign.end_date, campaign.portfolio_id, campaign.profile_id.
  - Minor: String arguments with no constraint or example: campaign.name, campaign.placement_bidding[].placement, campaign.start_date, campaign.end_date, campaign.portfolio_id, campaign.profile_id.
  - Minor: Says nothing about what it returns.
- `ads_delete_sp_campaign`: 38 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: profile_id.
  - Minor: String arguments with no constraint or example: profile_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: campaign_ids. Name the tool or the place that returns it, or models look it up first.
- `ads_update_sb_campaign`: 38 / 100
  - Major: Arguments without a description: campaign_id, patches, patches.state, patches.daily_budget, patches.bid_adjustments_by_placement, patches.profile_id, items[].campaign_id, items[].daily_budget, items[].state, items[].bid_adjustments_by_placement, profile_id.
  - Minor: String arguments with no constraint or example: campaign_id, patches.profile_id, items[].campaign_id, profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `ads_update_sb_keyword_bid`: 38 / 100
  - Major: Arguments without a description: keyword_id, bid, items[].keyword_id, items[].bid, profile_id.
  - Minor: String arguments with no constraint or example: keyword_id, items[].keyword_id, profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `ads_update_sp_keyword_bid`: 38 / 100
  - Major: Arguments without a description: keyword_id, bid, items[].keyword_id, items[].bid, profile_id.
  - Minor: String arguments with no constraint or example: keyword_id, items[].keyword_id, profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `create_inbound_plan`: 38 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: items, items[].sku, items[].quantity, source_address.name, source_address.company_name, source_address.address_line_1, source_address.address_line_2, source_address.city, source_address.state_or_province_code, source_address.postal_code, source_address.phone_number, source_address.email.
  - Minor: String arguments with no constraint or example: items[].sku, source_address.name, source_address.company_name, source_address.address_line_1, source_address.address_line_2, source_address.city, source_address.state_or_province_code, source_address.postal_code, source_address.country_code, source_address.phone_number, source_address.email.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `ads_create_portfolio`: 39 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: portfolio, portfolio.name, portfolio.profile_id.
  - Minor: String arguments with no constraint or example: portfolio.name, portfolio.profile_id.
  - Minor: Says nothing about what it returns.
- `ads_list_sd_ad_groups`: 39 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: campaign_id_filter, state_filter, profile_id.
  - Minor: String arguments with no constraint or example: profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `set_cockpit_target`: 39 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: outpost_id, sales_target, vat, status, note.
  - Minor: String arguments with no constraint or example: month, note.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: outpost_id. Name the tool or the place that returns it, or models look it up first.
- `title_seo_rollback`: 39 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: batch_id. Name the tool or the place that returns it, or models look it up first.
- `ads_create_sp_keywords`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: keywords.
  - Minor: Says nothing about what it returns.
- `get_inbound_plan`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: inbound_plan_id.
  - Minor: String arguments with no constraint or example: inbound_plan_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `save_sop`: 41 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: title, description, steps, steps[].title, steps[].body, steps[].role, outpost_ids, status.
  - Minor: String arguments with no constraint or example: title, description, steps[].title, steps[].body, steps[].role.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `title_seo_status`: 41 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `ads_update_sp_campaign`: 42 / 100
  - Major: Arguments without a description: campaign_id, patches, patches.state, patches.daily_budget, patches.budget, patches.dynamicBidding, patches.placement_bidding[].placement, patches.placement_bidding[].percentage, patches.bidding_strategy, patches.profile_id, items[].campaign_id, items[].daily_budget, items[].state, items[].placement_bidding, items[].placement_bidding[].placement, items[].placement_bidding[].percentage, profile_id.
  - Minor: String arguments with no constraint or example: campaign_id, patches.placement_bidding[].placement, patches.profile_id, items[].campaign_id, items[].placement_bidding[].placement, profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `confirm_inbound_option`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: inbound_plan_id, kind.
  - Minor: String arguments with no constraint or example: inbound_plan_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: inbound_plan_id, option_id. Name the tool or the place that returns it, or models look it up first.
- `generate_inbound_options`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: inbound_plan_id, kind.
  - Minor: String arguments with no constraint or example: inbound_plan_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: inbound_plan_id. Name the tool or the place that returns it, or models look it up first.
- `ping`: 42 / 100
  - Major: The description is too short (1 word).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `woo_list_products`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: search, sku, status.
  - Minor: String arguments with no constraint or example: store_id, search, sku.
  - Minor: The meaning of the boolean argument include_variations is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: store_id. Name the tool or the place that returns it, or models look it up first.
- `ads_catalog_coverage`: 43 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: lookback_days, only_in_stock, only_with_sales.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument only_in_stock is unclear.
  - Minor: The meaning of the boolean argument only_with_sales is unclear.
  - Minor: Says nothing about what it returns.
- `woo_get_stock`: 43 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: store_id, product_id, sku, low_stock_threshold.
  - Minor: String arguments with no constraint or example: store_id, product_id, sku.
  - Minor: Required identifiers whose description does not say where the value comes from: store_id. Name the tool or the place that returns it, or models look it up first.
- `get_vendor_trading_terms`: 44 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `woo_amazon_mapping`: 44 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: store_id.
  - Minor: String arguments with no constraint or example: store_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: store_id, account_id. Name the tool or the place that returns it, or models look it up first.
- `woo_update_price`: 44 / 100
  - Major: Arguments without a description: store_id, product_id, variation_id, regular_price, sale_price, clear_sale_price.
  - Minor: String arguments with no constraint or example: store_id, product_id, variation_id.
  - Minor: The meaning of the boolean argument clear_sale_price is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: store_id, product_id. Name the tool or the place that returns it, or models look it up first.
- `ads_create_sp_product_targets`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: targets.
  - Minor: Says nothing about what it returns.
- `ads_list_sp_audiences`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: source, profile_id.
  - Minor: String arguments with no constraint or example: profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `apply_title_seo_batch`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: plan_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: plan_id. Name the tool or the place that returns it, or models look it up first.
- `update_item_highlights`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: sku.
  - Minor: String arguments with no constraint or example: sku.
  - Minor: Says nothing about what it returns.
- `woo_update_stock`: 45 / 100
  - Major: Arguments without a description: store_id, product_id, quantity.
  - Minor: String arguments with no constraint or example: store_id, product_id.
  - Minor: Required identifiers whose description does not say where the value comes from: store_id, product_id. Name the tool or the place that returns it, or models look it up first.
- `bulk_set_shipping_template`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `check_feed_status`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: feed_id. Name the tool or the place that returns it, or models look it up first.
- `get_dashboard_data`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `get_aplus_document`: 48 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: content_reference_key.
  - Minor: String arguments with no constraint or example: content_reference_key.
  - Minor: Says nothing about what it returns.
- `ads_get_budget_usage`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: profile_id.
  - Minor: String arguments with no constraint or example: profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `bulk_delete_listings`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `list_clients`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `plan_title_seo_fix`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `woo_list_orders`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: store_id.
  - Minor: String arguments with no constraint or example: store_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: store_id. Name the tool or the place that returns it, or models look it up first.
- `ads_stockout_check`: 50 / 100
  - Minor: Arguments without a description: profile_id.
  - Minor: String arguments with no constraint or example: profile_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `list_my_products`: 50 / 100
  - Major: Arguments without a description: limit, offset, q, only_in_stock.
  - Minor: String arguments with no constraint or example: q, channel.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument only_in_stock is unclear.
  - Minor: Says nothing about what it returns.
- `findings_list`: 51 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: severity.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `ads_performance`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `get_all_dashboards`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `get_client_status`: 52 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `get_product_types`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: product_type, locale, include_enums, raw_schema.
  - Minor: String arguments with no constraint or example: product_type, locale.
  - Minor: The meaning of the boolean argument include_enums is unclear.
  - Minor: The meaning of the boolean argument raw_schema is unclear.
- `get_fee_estimate`: 53 / 100
  - Minor: Arguments without a description: asin, sku, price.
  - Minor: String arguments with no constraint or example: asin, sku.
- `search_catalog`: 53 / 100
  - Major: Arguments without a description: keywords, identifiers, identifierType.
  - Minor: String arguments with no constraint or example: keywords, identifiers, identifierType.
  - Minor: No `required` list, so every argument is optional.
- `update_listing`: 53 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: sku.
  - Minor: String arguments with no constraint or example: sku, title.
  - Minor: Says nothing about what it returns.
- `audit_aplus_coverage`: 55 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `audit_compliance`: 55 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `list_aplus_documents`: 55 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `list_context_topics`: 55 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `list_team_members`: 55 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `woo_list_stores`: 55 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `audit_title_compliance`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
- `list_inactive_listings`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `send_feedback`: 57 / 100
  - Minor: Says nothing about what it returns.
- `get_orders`: 58 / 100
  - Minor: Arguments without a description: days_back, statuses.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `bulk_update_listings`: 60 / 100
  - Major: Arguments without a description: updates, updates[].sku, updates[].title, updates[].bullets, updates[].patches, updates[].product_type, updates[].validate_only.
  - Minor: String arguments with no constraint or example: updates[].sku, updates[].title, updates[].product_type.
  - Minor: The meaning of the boolean argument updates[].validate_only is unclear.
- `get_account_health`: 60 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `get_fulfilled_shipments`: 60 / 100
  - Minor: String arguments with no constraint or example: sku.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
- `list_sops`: 60 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `get_inbound_plans`: 62 / 100
  - Minor: No `required` list, so every argument is optional.
- `get_competitive_pricing`: 63 / 100
  - Minor: Arguments without a description: asins.
- `get_fba_customer_returns`: 65 / 100
  - Minor: Arguments without a description: asin, order_id.
  - Minor: String arguments with no constraint or example: sku, asin, order_id.
  - Minor: No `required` list, so every argument is optional.
- `weekly_recap`: 65 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `diagnose_sales_drop`: 66 / 100
  - Minor: No `required` list, so every argument is optional.
- `reprice_to_buybox`: 66 / 100
  - Minor: Arguments without a description: skus.
- `fba_inbound_discrepancies`: 67 / 100
  - Minor: No `required` list, so every argument is optional.
- `fba_reimbursement_check`: 67 / 100
  - Minor: No `required` list, so every argument is optional.
- `get_epr_report`: 70 / 100
  - Minor: No `required` list, so every argument is optional.
- `invite_team_member`: 70 / 100
  - Minor: Arguments without a description: permissions.sales, permissions.catalog, permissions.pricing_inventory, permissions.ads, permissions.account_team.
- `woo_hub_query`: 70 / 100
  - Minor: String arguments with no constraint or example: store_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: store_id. Name the tool or the place that returns it, or models look it up first.
- `check_listing_restrictions`: 74 / 100
  - Minor: No `required` list, so every argument is optional.
- `get_buybox_prices`: 75 / 100
- `fiscal_transactions_export`: 80 / 100

Is your server listed here and you would rather it were not? Email support@forecall.dev, and we will take it off within 7 days.

[All scored servers](https://forecall.dev/en/servers)
