# Fac

> Federal Audit Clearinghouse (FAC) MCP — US single-audit data, served from a served from a…

- name: io.github.pipeworx-io/fac
- version: 0.1.4
- connection class: R0 (autonomous)
- trust: 97/100
- quality: –/100 (not scored)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.pipeworx-io%2Ffac
- tools: https://api.protogrid.dev/v1/servers/io.github.pipeworx-io%2Ffac/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "fac": {
      "type": "http",
      "url": "https://gateway.pipeworx.io/fac/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 99
- freshness: 100
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-97% +updated-4d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality –/100 (not scored)

Not scored: fewer than three checks apply, usually because no remote answered a credential-free probe or the server is a local package.

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-03-26; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: n/a (weight 30)

- n/a `tools.descriptions`, `tools.description_length`, `tools.schemas`, `tools.annotations`, `tools.directory_hints`, `tools.token_cost`, `tools.api_dump`: tool list unknown (behind auth, not probed, or empty)

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool list unknown

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: unknown
- tools last changed: 2026-10-05T08:00:10.524Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.pipeworx-io/fac.svg)](https://protogrid.dev/servers/io.github.pipeworx-io/fac)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-05 `recent_changes` removed
  - "What's new with X" / "latest on Y" / "what happened to Z this week / month / quarter" / "updates on Acme" / "news on Tesla recently" / "what's happening with Apple" — change feed for a company in the last N days/weeks/months in ONE parallel call. Fans out to SEC EDGAR (filings since `since`), GDELT→GNews fallback (news mentions in window — GDELT preferred, GNews when rate-limited or 5xx), USPTO (patents granted; PatentsView API sunset May 2025 so this soft-fails until reactivated). `since` accepts ISO date ("2026-04-01") or relative shorthand ("7d", "30d", "3m", "1y"). Returns structured changes[] grouped by source + total_changes count + pipeworx:// citation URIs. Use entity_profile instead when you want the static profile (filings + fundamentals + LEI + patents) regardless of window.
- 2026-10-05 `fac_cross_table_screen` removed
  - 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.
- 2026-10-05 `recall` removed
  - Retrieve a value previously saved via remember, or list all saved keys (omit the key argument). Use to look up context the agent stored earlier — the user's target ticker, an address, prior research notes — without re-deriving it from scratch. Scoped to your identifier (anonymous IP, BYO key hash, or account ID). Pair with remember to save, forget to delete.
- 2026-10-05 `scan_dependency` removed
  - Composite "should I add this npm package to my project" check in ONE call — fans out across deps.dev (license + advisories + version history) and bundlephobia (gzipped/minified bundle size, dependency count, ESM/tree-shake support). Use whenever an agent asks "is X safe / popular / small" or "what does adding lodash cost me". Returns a summary block (is_latest, license, published_at, advisory_count, bundle_kb_min, bundle_kb_gz, dependency_count, has_esm, tree_shakeable), per-advisory detail, links, and a list of recent alternative versions. NPM ecosystem only in v1; PyPI / Maven / Cargo / Go fall under deps.dev:version directly. Partial failures degrade gracefully — bundlephobia's first measurement on a new version can take 5-30s; sources_failed will list it if it times out, the rest still returns.
- 2026-10-05 `ask_pipeworx_beta` removed
  - Beta version of ask_pipeworx: identical universal router (same 6,475 tools, same arguments, same response shape) with candidate routing improvements enabled live whenever one is under test. A candidate routing prompt (v9-eval-disjoint-examples) is live on every call here; ask_pipeworx serves it to a slice of traffic only. Use it exactly like ask_pipeworx when you want the newest routing; results are compared against the stable router to decide what merges. Falls back to nothing — this IS a full working router, just the experimental edge.
- 2026-10-05 `company_facts` removed
  - TYPED, DETERMINISTIC financial facts for a US public company for an EXPLICITLY NAMED reporting period — "Apple revenue for fiscal 2023", "Walmart net income FY2026 Q3", "Microsoft cash at the end of fiscal 2024". PREFER OVER entity_profile / get_company_financials whenever the period matters: those answer "the most recent figures" and will happily hand back FY2025 when you asked about FY2019, and neither separates a discrete quarter from a year-to-date figure. This one refuses instead — it NEVER substitutes the latest period for the period requested, NEVER returns 0 for missing data, NEVER lets a 9-month YTD number answer a quarterly question, and NEVER converts a currency. Every answer carries the exact us-gaap concept it came from, what that concept MEASURES (NetIncomeLoss excludes non-controlling interests, ProfitLoss includes them — not synonyms), the accession number and a link to the filing on sec.gov, the restatement trail of any superseded figures, and a contract + derivation version to pin against. Fiscal periods are the FILER'S OWN, anchored on their fiscal-year end, so Walmart's year ending 2026-01-31 is FY2026 and Apple's ending 2025-09-27 is FY2025. Attributes in v1: revenue, net_income, cash. Every non-answer is a named status — `unavailable` (the filer did not report it for that period; the periods that DO exist are listed, without values), `unsupported` (outside what v1 covers — a non-us-gaap filer, an unknown attribute, a non-USD unit), `ambiguous` (the company name matched two filers equally well; both are named), `conflicting` (two filings the same day disagree; both are returned and neither is picked), `partial` (a value with no accession behind it). Source: SEC EDGAR XBRL companyconcept, one publisher read once — see `corroboration`. Same response is served at POST https://gateway.pipeworx.io/v1/facts for non-MCP callers.
- 2026-10-05 `list_subscriptions` removed
  - List the caller's active subscriptions. Returns id, type, params, created_at, last_fired_at, fire_count for each. Use this to review what you're monitoring before adding more or to find an id to cancel.
- 2026-10-05 `fac_findings_search` removed
  - 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".
- 2026-10-05 `fac_recipient_audit_history` removed
  - Year-by-year single-audit history for one grant recipient, identified by UEI or by name. Returns each audit year with total federal awards expended, the report_id, the oversight agency and the FAC acceptance date, plus a growth read on the spend trend. Answers "how has this organization's federal funding moved over time and which years were audited".
- 2026-10-05 `fac_federal_awards_by_program` removed
  - List the organizations that expended money under a given federal Assistance Listing / CFDA number (e.g. "93.224" community health centers, "84.010" Title I, "20.205" highway planning), ranked by dollars expended, with the recipient name, state, audit year and whether it was a major program. Answers "who spends the money in this federal grant program and how much does each one run".

Full history: https://api.protogrid.dev/v1/servers/io.github.pipeworx-io%2Ffac/changes

## Remotes

- https://gateway.pipeworx.io/fac/mcp (streamable-http, auth none, reachable true, uptime30d 0.9655172)

## Packages

_none_

## Tools (0)

_none observed_
