Skip to main content
Glama
cfpb-complaints-mcp

cfpb-complaints-mcp

by bnovarini

count_narratives

Count archived CFPB narratives matching a keyword search, optionally grouped by year, month, product, company, issue, or state. Only complaints with narratives are counted.

Instructions

Count how many archived narratives match a keyword search, optionally grouped by year, month, product, company, issue or state. Same search and filter arguments as search_narratives (without the slower issue/response filters). Use this for 'how many complaints mention X'. Counts only complaints that have a narrative (through 2026-08-14), not all complaints. Narrow with date, company or product when you can.

Input Schema

NameRequiredDescriptionDefault
limitNo
queryNo
stateNo
any_ofNo
phraseNo
companyNo
date_toNo
productNo
group_byNo
date_fromNo
company_containsNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.3

TDQS

A4/5.0
Behavior4/5

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

No annotations are present, so the description carries the full burden. It discloses a meaningful data-coverage caveat (counts only complaints with a narrative, coverage through 2026-08-14) and a performance trait (excludes the slower issue/response filters). It omits auth/permission needs and pagination behavior, but the coverage limitation is exactly the kind of non-obvious behavior an agent needs.

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?

Four sentences, front-loaded with the core purpose before the caveats and the narrowing advice. Dense but every sentence carries information; nothing is redundant filler.

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

Completeness3/5

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

An output schema exists, so return shape needn't be explained, and the data-coverage caveat is well covered. But for an 11-parameter tool with zero annotation coverage and zero schema descriptions, several argument semantics remain unaddressed, leaving the agent to guess at key filters.

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 0% across 11 parameters, so the schema provides only titles. The description compensates partially by listing the group_by dimensions (year, month, product, company, issue, state) and the filter categories (date, company, product), and by pointing to search_narratives for the shared argument set. However, non-obvious parameters such as any_of, phrase, company_contains vs company, and limit are left entirely unexplained.

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+resource (count archived narratives) with the grouping dimensions enumerated, and explicitly distinguishes itself from search_narratives and implicitly from complaint_counts by noting it counts only complaints that have a narrative. An agent can tell what this tool returns without opening the schema.

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

Usage Guidelines4/5

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

Gives a concrete use case ("how many complaints mention X"), names the sibling whose arguments it shares (search_narratives), and advises narrowing with date/company/product. It stops short of an explicit when-not (e.g., use search_narratives when you need the actual narrative text), so routing is strong but not fully closed.

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