Skip to main content
Glama

Fac Cross Table Screen

fac_cross_table_screen
Read-onlyIdempotent

Screen single audits across state, federal program (CFDA), and finding type / material weakness in ONE call — a join FAC's own live API cannot express (its PostgREST has no foreign key between /general, /federal_awards and /findings). Answers compound diligence questions like "material weaknesses in Texas under CFDA 93.224" or "questioned-cost findings on highway funding (20.205) over $1M". Every filter is optional; pass at least one to keep the result meaningful. Returns one row per matching (audit, award, finding) combination, ranked by award dollar amount.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cfdaNoAssistance Listing / CFDA number, e.g. "93.224" or a bare 2-digit agency prefix "93". Aliases: program_number, assistance_listing, program, cfda_number.
limitNoRows to return, 1-100 (default 25).
stateNo2-letter auditee state code, e.g. "TX".
offsetNoRows to skip, for paging.
audit_yearNoRestrict to one audit year.
min_amountNoOnly award rows expending at least this many dollars.
finding_typeNoSubstring match on FAC's finding type_requirement code (e.g. "A" internal control, "B" allowable costs — FAC packs several letters into one field, so this matches loosely).
federal_agency_prefixNoTwo-digit agency prefix on its own. Alias: prefix.
material_weakness_onlyNoOnly findings flagged as a material weakness.
federal_award_extensionNoProgram extension on its own, e.g. "224". Alias: extension.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so safety is covered. The description adds valuable context beyond that: the return cardinality (one row per audit/award/finding combination), the ranking by award dollar amount, and the underlying API limitation motivating the tool.

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 capability and the differentiator, and each sentence — including the PostgREST justification and the optional-filter constraint — earns its place. It is dense but not redundant; minor tightening of the API parenthetical would push it to a 5.

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?

For a 10-parameter query tool with no output schema, the description supplies what the schema omits: result granularity (one row per audit/award/finding), ordering (by award dollar amount), and the one-filter minimum. Combined with annotations covering safety, an agent has everything needed to invoke 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 description coverage is 100%, so the baseline is 3. The description adds meaning on top by demonstrating how filters combine into a compound query ('highway funding (20.205) over $1M' maps cfda + min_amount) and by enforcing the at-least-one-filter constraint, which is not present in the schema itself.

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 (Screen) and resource (single audits) with precise scope across state, federal program (CFDA), and finding type / material weakness. The description explicitly frames the unique capability — a cross-table join FAC's PostgREST API cannot express — which distinguishes it from siblings like fac_findings_search, fac_search_audits, and fac_federal_awards_by_program.

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 concrete compound diligence questions it answers (e.g., 'material weaknesses in Texas under CFDA 93.224') and states every filter is optional with the constraint to pass at least one. However, it never names alternative sibling tools or when-not-to-use-this, leaving the agent to infer routing from the compound-query framing alone.

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.