CFPB consumer complaints

io.github.bnovarini/cfpb-complaints-analysis · v0.1.3 · data-and-databases

CFPB consumer complaints is healthy: it completed an MCP handshake in 789 ms and exposes 10 tools.

CFPB consumer complaints: 18M records, 3.85M archived narratives. Search, counts, trends.

Endpoint: https://cfpb-complaints-analysis.fly.dev/mcp (streamable-http)

Repository · JSON · Add to my inventory

Facts

Users (last 30 days)0
HandshakeHealthy
Auth neededNone
Tool count10
Latency789 ms
Last checked (UTC)2026-10-16T06:55:37.621Z

Health history

Checked (UTC)StatusLatencyError
2026-10-16T06:55:37.621ZHealthy789
2026-10-15T03:05:37.723ZHealthy2893

Tools (10)

dataset_infoWhat this dataset is: row counts, date ranges, narrative coverage, and the narrative freeze. Call first when unsure about coverage.
list_valuesList the values of a field with complaint counts, to find exact product/issue/response names. field is one of: product, sub_product, issue, sub_issue, company_response, company_public_response, submitted_via, state, timely_response. Optional search narrows by substring; product narrows issues to tha
find_companyFind companies by name. CFPB lists the same firm under variants and subsidiaries (e.g. 'EQUIFAX, INC.', 'Equifax Information Services LLC'), so this returns every matching name with complaint counts and first/last dates; pass the exact names you want to other tools via company, or use company_contai
complaint_countsCount complaints, optionally grouped. group_by is one or two of: year, quarter, month, product, sub_product, issue, sub_issue, company, state, company_response, company_public_response, submitted_via, timely_response. Returns complaints, timely_rate, monetary_relief_rate, nonmonetary_relief_rate, in
trendComplaints over time (month, quarter or year), for one filter set. Set period to month, quarter or year. The latest period is partial. In progress and Untimely response are CFPB response categories, not outcomes. Filters: company (exact name as in find_company), company_contains (substring), product
company_profileProfile of one company (or all name variants via company_contains): totals, first/last complaint, top products, issues, states, response outcomes, yearly counts. Counts are not adjusted for company size. Optional date_from/date_to/product.
compare_companiesSide-by-side comparison of up to 6 companies on the same filters: complaints, timely_rate, relief rates, top product and top issue each. Each entry in companies is matched as a substring on the company name (all variants combined). Counts are not adjusted for company size.
search_narrativesKeyword search over archived complaint narratives (frozen at 2026-08-14; CFPB stopped publishing them in September 2026). query: words that must all appear (case-insensitive), or use phrase for an exact phrase, or any_of for alternatives. Returns a snippet per complaint plus its structured fields, n
count_narrativesCount 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
get_complaintOne complaint by its CFPB Complaint ID: all structured fields and, when archived, the full narrative.