@pipeworx/texas-ag-opinions
Connect: https://pipeworx.io/mcp — every tool in the catalog, including @pipeworx/texas-ag-opinions’s. Install: one-click buttons
Connect to just the @pipeworx/texas-ag-opinions pack
https://gateway.pipeworx.io/texas-ag-opinions/mcp — only @pipeworx/texas-ag-opinions’s own tools, nothing else in the catalog.
No MCP client? Skip the connection: POST https://gateway.pipeworx.io/v1/tools/search_packs {"query":"..."} to find a tool below, GET /v1/tools/<name> for its schema, POST the same URL with arguments for the data — see For AI agents.
Tools: 3
Texas Attorney General opinions since 1939: look up a specific opinion by number (full text, requestor, cited statutes), check whether it has a recorded overruled/modified/affirmed/withdrawn status, and search that status index by statute citation.
Tools
tx_ag_opinion_lookup(opinion_number)— the AG, date, requestor, RQ- request number, topic categories, one-sentence summary, full opinion text, and statute citations found in it (best-effort regex over the opinion PDF). Also includes the opinion’s own subsequent-treatment status if it has one.tx_ag_opinion_status(opinion_number)— whether a specific opinion has a recorded overruled/modified/affirmed/superseded/withdrawn entry in the AG’s own courtesy index.not_listeddoes NOT mean the opinion is still good law — the AG’s own page says the list may be incomplete.tx_ag_statute_search(citation)— search the ~381 opinions with a recorded subsequent-treatment entry for one mentioning a given statute citation or keyword. PARTIAL CAPABILITY — see “Data sources” below for exactly what this does and does not cover.
Auth
Keyless.
Data sources
- https://www.texasattorneygeneral.gov/opinions — landing page listing all
16 Attorneys General since 1939 with their exact opinion-number range (e.g.
“GA-0001 - GA-1096”). Scraped once (2026-10-07) into
TX_AG_RANGESinsrc/index.ts— this is howtx_ag_opinion_lookupandtx_ag_opinion_statusturn a bare number into the right AG slug without guessing. - https://www.texasattorneygeneral.gov/opinions/{ag-slug}/{number} — one
opinion’s own page (e.g.
/opinions/ken-paxton/kp-0537): AG name, topic categories, one-sentence summary, and a link to the opinion PDF. Fetched live, never baked. - https://www.texasattorneygeneral.gov/sites/default/files/opinion-files/opinion/{year}/{number}.pdf
— the opinion’s full text. Verified text-based (not scanned):
extractPdfText(shared/src/pdf-text.ts) parses it cleanly with zero warnings. Requestor name/title/address, the RQ- request number, the one-line question, and cited statutes are all regex-extracted from this text — best-effort, not a real citation parser (a multi-section cite like ”§§ 51.031, .034” only captures the first section; non-”TEX. … CODE §” citation styles, e.g. to federal law or by “Art.” instead of ”§”, are not captured). - https://www.texasattorneygeneral.gov/opinions/opinions-overruled-modified-affirmed-withdrawn
— ONE page listing every opinion (381, captured 2026-10-07) the AG’s Opinion
Committee has flagged as later overruled, modified, affirmed, superseded, or
withdrawn, with the citing statute or case. Baked into
src/tx-ag-status-data.ts(~38KB — comfortably under the few-hundred-KB threshold that would require KV baking, so this stays a plain module-scope import, unlike the state-code packs with much larger tables). This index is what backs bothtx_ag_opinion_statusandtx_ag_statute_search.
What this pack cannot do, and why
/opinions/{number} WITHOUT the AG slug is a trap. It returns HTTP 200
for ANY number, real or fabricated — verified live: a real opinion (kp-0537)
and a made-up one (kp-9999) come back byte-for-byte the same size, because
the slug-less path is a generic “ajax-individual-opinion” form stub that says
“Invalid Attorney General name in URL”, not the opinion. The correctly
AG-qualified path 404s properly on a bad number. This pack always resolves
the AG slug from TX_AG_RANGES first and never fetches the slug-less path.
Full-text statute-citation search across the whole archive (~19,000
opinions back to 1939) is NOT available. The site’s own opinion search box
is a Cludo widget (api-us1.cludo.com, customerId 10000129, engineId
10001310) that renders results entirely client-side after a signed API call —
confirmed live: every call shape tried (GET, POST, with/without Origin and
Referer headers) returns 401 {"Message":"Authorization has been denied for this request."}. tx_ag_statute_search instead searches only the baked
overruled/modified/affirmed/withdrawn index (381 opinions) for a citation or
keyword appearing in the text describing what superseded each one — useful
for “has this been overruled by a later statute,” not for “which opinions
discuss this statute” in general. Every response from that tool states this
limitation in a coverage_note field.
Cloudflare JS challenge under load. The site is Cloudflare-fronted and
answered a “Just a moment…” challenge page (not the real content) to one of
this pack’s own research requests after ~15 rapid sequential fetches. Both
live-fetching tools detect this (isCloudflareChallenge) and throw a loud
upstream_down: error naming it, rather than silently parsing the challenge
page as if it were real content.
Tools
- tx_ag_opinion_lookup — Look up a Texas Attorney General opinion by its number (e.g. “KP-0537”, “GA-0153”) — returns the AG, date, requestor, RQ- request number, topic categories, one-sentence summary, full opinion text
- tx_ag_opinion_status — Check whether a specific Texas AG opinion has a recorded overruled, modified, affirmed, superseded, or withdrawn status in the AG’s own courtesy index. A ‘not_listed’ result does NOT mean the opinion
- tx_ag_statute_search — Find Texas AG opinions interpreting a given statute (e.g. “552.101” (Public Information Act), “551” (Open Meetings Act)) or citing it as a keyword. For Chapter 552/551 citations this returns real
Tools
tx_ag_opinion_lookup— Look up a Texas Attorney General opinion by its number (e.g. KP-0537 , GA-0153 ) -- returns the AG, date, requestor, RQ- request number, topic categories, one-sentence summary, full opinion text, stattx_ag_opinion_status— Check whether a specific Texas AG opinion has a recorded overruled, modified, affirmed, superseded, or withdrawn status in the AG's own courtesy index. A 'not_listed' result does NOT mean the opiniontx_ag_statute_search— Find Texas AG opinions interpreting a given statute (e.g. 552.101 (Public Information Act), 551 (Open Meetings Act)) or citing it as a keyword. For Chapter 552/551 citations this returns real opinions