Skip to main content
Glama

Fac Search Audits

fac_search_audits
Read-onlyIdempotent

Search US single audits (Uniform Guidance / former OMB A-133) filed with the Federal Audit Clearinghouse — "the FAC" — by auditee name, UEI, EIN, state, ZIP code, audit year, or minimum federal dollars expended. Covers every kind of non-federal recipient: cities, towns, counties, school districts, fire and water districts, housing authorities, universities, tribes, hospitals and nonprofits. Returns the report_id, summary_url (the official FAC dissemination summary page for that submission), the organization name, city, state and ZIP on file, total federal awards expended for the year, the cognizant/oversight agency, and the date FAC accepted the submission. Puerto Rico municipalities are found under either their Spanish or English legal name. Answers "does this grant recipient file a single audit and how much federal money does it run", and "what is the FAC report ID / summary URL for this entity".

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
einNoEmployer Identification Number, digits only, exact match. Alias: auditee_ein.
ueiNoSAM.gov Unique Entity Identifier (12 chars), exact match. Alias: auditee_uei.
zipNoAuditee ZIP code, matched on the 5-digit prefix so it works against both the 5-digit and 9-digit forms FAC stores ("75082", "009601588"). An auditee's ZIP on file changes between filing years; if it filters everything out the tool says which ZIPs FAC actually holds. Aliases: auditee_zip, zipcode, zip_code, postal_code.
limitNoRows to return, 1-200 (default 20).
stateNo2-letter auditee state code (e.g. "CA"). Alias: auditee_state.
offsetNoRows to skip, for paging.
order_byNoSort column, descending by default. Defaults to total_amount_expended.
ascendingNoSort ascending instead of descending.
audit_yearNoFiscal audit year, e.g. 2023.
auditee_nameNoOrganization name, matched as a forgiving case-insensitive substring (e.g. "stanford", "county of los angeles"). A municipality name is searched in both languages FAC files under, so "MUNICIPIO DE BAYAMON" and "Municipality of Bayamon" reach the same rows. Aliases: query, q, name.
audit_year_minNoEarliest audit year to include.
min_total_expendedNoOnly audits whose total federal awards expended is at least this many dollars (e.g. 100000000 for billion-dollar-scale recipients).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / examples
      Previous value: -[
      -  {
      -    "auditee_name": "stanford",
      -    "limit": 10
      -  },
      -  {
      -    "audit_year": 2024,
      -    "limit": 10,
      -    "min_total_expended": 100000000,
      -    "state": "CA"
      -  }
      -]New value: +[
      +  {
      +    "auditee_name": "stanford",
      +    "limit": 10
      +  },
      +  {
      +    "audit_year": 2024,
      +    "limit": 10,
      +    "min_total_expended": 100000000,
      +    "state": "CA"
      +  },
      +  {
      +    "auditee_name": "City of Richardson",
      +    "limit": 5,
      +    "state": "TX",
      +    "zip": "75082"
      +  },
      +  {
      +    "auditee_name": "MUNICIPIO DE BAYAMON",
      +    "limit": 5
      +  }
      +]
  2. Changed2 schema fields changed
    • changedInput schema / properties / auditee_name / description
      Previous value: -"Organization name, matched as a forgiving case-insensitive substring (e.g. \"stanford\", \"county of los angeles\"). Aliases: query, q, name."New value: +"Organization name, matched as a forgiving case-insensitive substring (e.g. \"stanford\", \"county of los angeles\"). A municipality name is searched in both languages FAC files under, so \"MUNICIPIO DE BAYAMON\" and \"Municipality of Bayamon\" reach the same rows. Aliases: query, q, name."
    • addedInput schema / properties / zip
      Added value: +{
      +  "description": "Auditee ZIP code, matched on the 5-digit prefix so it works against both the 5-digit and 9-digit forms FAC stores (\"75082\", \"009601588\"). An auditee's ZIP on file changes between filing years; if it filters everything out the tool says which ZIPs FAC actually holds. Aliases: auditee_zip, zipcode, zip_code, postal_code.",
      +  "type": "string"
      +}
  3. Changed1 schema field changed
    • changedInput schema / examples
      Previous value: -[
      -  {
      -    "audit_year": 2023,
      -    "auditee_name": "stanford",
      -    "limit": 3
      -  }
      -]New value: +[
      +  {
      +    "auditee_name": "stanford",
      +    "limit": 10
      +  },
      +  {
      +    "audit_year": 2024,
      +    "limit": 10,
      +    "min_total_expended": 100000000,
      +    "state": "CA"
      +  }
      +]
  4. First observed

TDQS

A4.4/5.0
Behavior5/5

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

The annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description then adds substantial behavioral detail beyond that: it reveals matching semantics ('matched as a forgiving case-insensitive substring'), bilingual name handling for Puerto Rico municipalities, and a graceful failure mode ('if it filters everything out the tool says which ZIPs FAC actually holds'). These insights are not in the annotations and help an agent predict tool behavior accurately.

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?

The description is longer than average but deliberately structured: it opens with the core search capability, then audience coverage, then return fields, then special-case behavior, then the FAQ-style answers. Every sentence contributes distinct information, and the most important discriminator ('Search US single audits') is front-loaded. It could trim the exhaustive recipient-type list, but the list reinforces scope and is not filler.

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?

There is no output schema, so the description's explicit enumeration of returned fields (report_id, summary_url, organization name, city/state/ZIP, total federal awards, cognizant agency, acceptance date) is essential and provided. The behavior around prefix ZIP matching, name substring matching, bilingual municipalities, and feedback when a filter excludes everything is also disclosed. With 12 parameters and no output schema, nothing an agent needs to call this correctly is missing.

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 every parameter already has a thoughtful description in the input schema, including aliases, matching semantics, and defaults. The description adds little beyond listing the searchable fields, which the schema already does. This meets the baseline of 3 because the schema carries the heavy lifting and the description doesn't conflict or add meaningful new parameter meaning.

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 begins with a specific verb+resource pair: 'Search US single audits ... filed with the Federal Audit Clearinghouse.' It then enumerates the search dimensions (name, UEI, EIN, state, ZIP, audit year, federal dollars) and the returned fields (report_id, summary_url, etc.), making the tool's role unmistakable. It also implicitly differentiates from sibling tools like fac_get_audit or fac_audit_findings by emphasizing multi-criteria search over retrieval of a single audit or findings.

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?

The description gives clear context by stating the exact questions it answers ('does this grant recipient file a single audit and how much federal money does it run') and the scope ('Covers every kind of non-federal recipient...'). However, it does not explicitly contrast with sibling tools such as fac_audit_findings, fac_federal_awards_by_program, or fac_get_audit, so an agent must infer when to choose this search over those alternatives. This is clear context without explicit exclusions or named alternatives.

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.