Skip to main content
Glama

KeyVex

get_consumer_complaints

Read-only

Returns consumer complaints filed with the Consumer Financial Protection Bureau (CFPB). Each record is one filing against a bank, credit reporting agency, mortgage servicer, debt collector, fintech, or crypto firm — with company response status, timeliness flag, and (when consented) consumer narrative. Use this when the user asks about: complaint volume against a specific company, top issues at a credit reporting agency, regional complaint patterns, untimely responses by a financial institution, or as a leading indicator of upcoming CFPB/OCC/FDIC enforcement action. COVERAGE — live passthrough (source:'live'): each call queries CFPB's own search API over the FULL 15.7M+ complaint database, full history, current as of CFPB's publication. The response's total_count is CFPB's authoritative count for your filtered query — USE IT for volume answers (the results array is just the requested page). total_count is omitted when an issue or sub_product filter is active (those apply after the upstream query, so the upstream total wouldn't match). If CFPB is unreachable the tool falls back to a small cached sample (source:'cache' + coverage_warning) — do NOT infer volume in that mode. Note: company matching is word-based against the company name ('experian', 'wells fargo'), not arbitrary-substring. Product taxonomy (the top categories): - 'Credit reporting or other personal consumer reports' — Equifax, Experian, TransUnion. ~80% of recent complaint volume. - 'Debt collection' - 'Mortgage' - 'Credit card or prepaid card' - 'Checking or savings account' - 'Payday loan, title loan, or personal loan' - 'Money transfer, virtual currency, or money service' - 'Vehicle loan or lease' - 'Student loan' Company-response values: 'Closed with explanation', 'Closed with non-monetary relief', 'Closed with monetary relief', 'In progress', 'Untimely response', 'Closed without relief'. Cross-source tip: pair with get_enforcement_actions(source:'cftc'|'occ'| 'fdic'|'sec'|'doj', text:'') to see if complaint volume preceded a formal enforcement action.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoDirect lookup by CFPB complaint_id.
issueNoCase-insensitive substring against the issue field (e.g., 'incorrect information', 'fraud', 'debt is not yours').
limitNoDefault 50, max 500.
sinceNoISO date (YYYY-MM-DD). Applied to sort_by field.
stateNoTwo-letter state code (e.g., 'CA', 'NY'). Case-insensitive.
untilNoISO date (YYYY-MM-DD).
companyNoCase-insensitive substring against company name (e.g., 'experian', 'jpmorgan', 'capital one').
productNoExact product match (e.g., 'Mortgage', 'Debt collection', 'Credit reporting or other personal consumer reports').
sort_byNoDefault date_received.
sort_orderNoDefault desc.
sub_productNoExact sub-product match.
submitted_viaNoChannel filter.
timely_responseNoFilter to complaints with timely company response (within CFPB's 15-day window) or not.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

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

With readOnlyHint/openWorldHint already covering the safety profile, the description goes further: it explains the live-vs-cache fallback, the presence of a coverage_warning, that volume must not be inferred in cache mode, and that total_count is authoritative but omitted when issue/sub_product filters are active. These are non-obvious operational traits that materially affect interpretation. It stops short of covering pagination mechanics 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?

Well front-loaded: purpose first, then usage, then coverage/behavioral caveats. The taxonomy and company-response value lists are long but genuinely useful for constructing valid filters; a couple of enumerations could be tightened without loss.

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?

With 13 optional params, no output schema, and open-world behavior, the description compensates fully — it explains the return surface (total_count vs results, source, coverage_warning), filter interactions, and fallback semantics. An agent has everything needed to call and interpret it correctly.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds real meaning: it enumerates the exact product taxonomy values and clarifies that company matching is word-based rather than arbitrary-substring. It also warns that issue/sub_product are applied post-upstream (changing what total_count means), which the schema does not convey.

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?

The description opens with a specific verb+resource ('Returns consumer complaints filed with the CFPB') and defines the record granularity ('Each record is one filing against a bank, credit reporting agency...'). It names the concrete fields returned (company response status, timeliness flag, narrative), which clearly separates it from siblings like get_enforcement_actions.

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?

It enumerates explicit use cases ('complaint volume against a specific company, top issues at a credit reporting agency, regional complaint patterns, untimely responses...'), including forward-looking use as an enforcement indicator. It also names an alternative and the condition to pair with it (get_enforcement_actions with source-specific params), which is exactly the when/when-with guidance the dimension rewards.

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.

Resources