Skip to main content
Glama

Fac Findings Search

fac_findings_search
Read-onlyIdempotent

Full-text search over audit finding NARRATIVES — the actual prose auditors wrote describing a compliance exception ("failed to submit the Federal Single Audit report within the timeframe prescribed", "total available cash was less than total advances from grantors"). This is not possible against the live FAC API, which exposes no cross-table join; it is what searching the underlying text directly unlocks. Optionally narrow by state, audit year, CFDA agency prefix, or material-weakness-only. Narrative text is only on file for more recent filings — audits migrated from the pre-2022 Census-run FAC often have none, and rows without text are simply not returned rather than shown blank. Answers "which audits mention X in their findings", e.g. "data security", "cash management", "timesheet".

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoRows to return, 1-100 (default 25).
queryYesSearch phrase, e.g. "data security" or "questioned costs travel". Uses PostgreSQL websearch syntax (quote a phrase, "-word" to exclude). Aliases: q, text.
stateNo2-letter auditee state code to narrow the search, e.g. "TX".
offsetNoRows to skip, for paging.
audit_yearNoRestrict to one audit year.
federal_agency_prefixNoRestrict to findings on awards under this 2-digit agency prefix (e.g. "93" for HHS). Alias: cfda_prefix.
material_weakness_onlyNoOnly findings flagged as a material weakness.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive). The description adds real behavioral value beyond that: narrative text exists only for recent filings, pre-2022 migrated audits often lack it, and text-less rows are omitted rather than blank. It omits any pagination or result-shape detail, keeping it from a 5.

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-loaded with the core purpose and why it exists, and every sentence carries information. It is somewhat long with embedded examples, but the examples clarify the searchable domain rather than padding.

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

Completeness4/5

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

No output schema exists, yet the description covers what is searched, the filtering options, and the important caveat about missing narratives. It stops short of describing the returned row shape or paging behavior, which an agent would benefit from given the offset/limit parameters.

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 query syntax, aliases, and each filter. The description restates the narrowing options (state, audit year, agency prefix, material-weakness-only) without adding syntax or format meaning beyond the schema — the correct baseline when the schema does the heavy lifting.

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 precise verb+resource: full-text search over audit finding NARRATIVES, with concrete examples of the prose being searched. It clearly separates itself from fac_search_audits, fac_audit_findings and fac_cross_table_screen by naming the narrative-text scope and noting the live FAC API cannot do this join.

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 strong context for when to use it — answering 'which audits mention X' — and explains why the tool exists (the live API exposes no cross-table join). It doesn't explicitly route the agent to a specific sibling when narrative text isn't needed, so it stops short of full alternative-routing.

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.