Skip to main content
Glama

bbb_business_complaints

Read-only

Fetch BBB complaint-history records for one business, including response threads; a business with no complaints returns a valid empty list. Results come 10 per page, newest first, with total_pages and has_more; request the next page while has_more is true to retrieve the full list. published_complaints and hidden_complaints split the total into complaints BBB lists and ones it counts without publishing. Use bbb_business_reviews for customer reviews or bbb_business_more_info for other profile details.

Input Schema

NameRequiredDescriptionDefault
urlYesBBB business profile URL, from a bbb-search result's url or hq_profile_url. A location URL ending in /addressId/<number> is accepted and read from the business profile.
pageNoComplaint list page, 1 or greater (10 complaints per page, newest first). Defaults to 1; request the next page while has_more is true.

Output Schema

NameRequiredDescriptionDefault
dataYesThe tool result payload (shape varies per tool; see each tool's docs resource).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / url / description
      Previous value: -"BBB business profile URL, from a bbb-search result's url or hq_profile_url."New value: +"BBB business profile URL, from a bbb-search result's url or hq_profile_url. A location URL ending in /addressId/<number> is accepted and read from the business profile."
  2. Changed1 schema field changed
    • addedInput schema / properties / page
      Added value: +{
      +  "description": "Complaint list page, 1 or greater (10 complaints per page, newest first). Defaults to 1; request the next page while has_more is true.",
      +  "type": [
      +    "null",
      +    "integer"
      +  ]
      +}
  3. First observed

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnlyHint, openWorldHint), so the description's added value is behavioral detail: an empty list is a valid result for businesses with no complaints, and the published_complaints/hidden_complaints split explains how BBB partitions complaints. This is genuinely beyond what annotations or the schema convey, though it stops short of describing auth or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the purpose in the first clause, then covers empty-state, pagination, and routing in three compact sentences. It is dense but nearly every sentence earns its place; the response-field detail (total_pages, has_more, published/hidden) is slightly redundant given an output schema exists.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers empty results, ordering, page size, pagination termination, the semantic split of complaint counts, and sibling routing. With an output schema already present, nothing an agent needs to call this tool correctly and interpret its pages is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents url and page, including the 10-per-page newest-first ordering. The description largely restates that and instead expends words on response fields, so it adds only marginal value at the parameter level; baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Fetch) and resource (BBB complaint-history records for one business), including the scope detail that response threads are included. It explicitly distinguishes itself from sibling tools bbb_business_reviews and bbb_business_more_info, so an agent can pick correctly without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names two sibling alternatives and the exact condition that selects each ('customer reviews' vs 'other profile details'). Adds operational guidance (paginate while has_more is true) that tells the agent how to fully use the tool, leaving little to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.