@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_listed does 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_RANGES in src/index.ts — this is how tx_ag_opinion_lookup and tx_ag_opinion_status turn 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 both tx_ag_opinion_status and tx_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, stat
  • 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 opinions

Regenerated from source · build October 7, 2026