@pipeworx/louisiana-code
Connect: https://pipeworx.io/mcp — every tool in the catalog, including @pipeworx/louisiana-code’s. Install: one-click buttons
Connect to just the @pipeworx/louisiana-code pack
https://gateway.pipeworx.io/louisiana-code/mcp — only @pipeworx/louisiana-code’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
Louisiana law by citation — Revised Statutes, Civil Code, Code of Civil Procedure, Code of Criminal Procedure, Code of Evidence, Children’s Code and the Louisiana Constitution — with each section’s enactment and amendment history parsed out, plus full-text topic search across those code bodies and a browse of every section in one Revised Statutes title. Keyless, sourced live from the Louisiana State Legislature.
Tools
louisiana_statute(citation | doc_id)— full text of one section:"RS 14:20","La. R.S. 9:2800.1","14:20","CC 2315","La. C.C. art. 2315","CCP 966","C.Cr.P. art. 701","CE 404","CHC 603","Const. Art. I, §5"/"CONST 1:5", or the legis.la.govdoc_ida search result carries. Returnsheading,hierarchy(the chapter/title lines above the section),text, the trailinghistoryline (“Added by Acts 1976, No. 655, §1. Amended by Acts 2014, No. 163, §1.”) parsed intoamendments({year, act, session}), andlast_amended_year.louisiana_law_search(query, bodies?, limit?)— full-text search by topic/keyword (“vehicular homicide”, “security deposit lessor”, “comparative fault”), optionally narrowed to code bodies (RS,CC,CCP,CCRP,CE,CHC,CONST,CA,HRULE,SRULE,JRULE; default all). Relevance-ranked rows with citation, heading, last-modified date anddoc_id, plus the source’stotal.louisiana_title_contents(title, filter?, offset?, limit?)— every section of one Revised Statutes title with its heading anddoc_id(Title 14 has 729, Title 32 has 870), optionally filtered by a word in the heading; repealed sections are flagged.
Auth
Keyless.
Data sources
- https://legis.la.gov/Legis/Law.aspx?d=78338 — one section page (that id
is RS 14:20). Citation in
#ctl00_PageBody_LabelName, text as<P>paragraphs in#ctl00_PageBody_LabelDocument, last paragraph = history. - https://legis.la.gov/Legis/LawSearch.aspx — the “View a Specific Law” form and the text-search form.
- https://legis.la.gov/Legis/LawSearchList.aspx — where the search form cross-page-posts; renders the result rows.
- https://legis.la.gov/Legis/Laws_Toc.aspx?folder=75&level=Parent — the Revised Statutes table of contents (one LinkButton postback per title).
Shape of this source, because it is a WebForms site and not an API
Everything is reachable with plain HTTP — no cookie, no JavaScript, no CAPTCHA, no Lexis hop — but three of the four routes are form POSTs:
- Doc ids are not in citation order.
d=78337is RS 14:2,d=78338is RS 14:20,d=78339is RS 14:201 (string-sorted). So a citation cannot be computed into a URL; the “View a Specific Law” form does the mapping. POST the form’s hidden__VIEWSTATE/__EVENTVALIDATIONfields plusddlLawBodies,tbFirstNumber,tbSecondNumberandbtnViewLaw=View; the server answers 302 toLaw.aspx?d=<id>. An unknown citation re-renders the form with HTTP 200 and no redirect — that is the not-found signal (there is no message). - Non-RS bodies need the dropdown’s own postback first. Selecting Civil
Code etc. is a
__doPostBack('...ddlLawBodies')that switches the form to a single “Article” box; posting the article number against the fresh RS-state form is silently ignored. The pack runs that switch once per body and caches the resulting hidden fields. - The viewstate is not session-bound. One GET of the form supplies fields that stay valid for repeated POSTs (verified: two different citations resolved off the same fields, no cookie ever set). The pack caches them per isolate for 30 minutes and refreshes once on a POST that comes back without a redirect, so a warm citation lookup is one POST + one GET.
- Search posts to
LawSearchList.aspx, not back to the form (the button’sWebForm_PostBackOptionsnames it). The per-body checkboxes arecbLaws$0..cbLaws$10(0 CHC, 1 CC, 2 CCP, 3 CCRP, 4 CE, 5 CA, 6 CONST, 7 HRULE, 8 JRULE, 9 RS, 10 SRULE);cbLaws$11“Select All” is client-side JavaScript only — the server ignores it, so “all bodies” means ticking all ten. A single-hit search 302s straight to the section page. The list renders the first 100 of N, relevance-sorted, and states N (“There are 347 sections of law in this list”). - A one-word query that matches too many sections is refused silently:
"tax"against RS 302s back to the blank form, byte-identical to a fresh GET. The pack reports that assearch_rejectedwith a hint to add a word. The engine ANDs every word;a or b,a not band""exact phrase""(doubled quotes) are its own syntax. - Pages hard-wrap paragraphs with raw newlines. The history paragraph
of RS 14:30 spans nine source lines. Split on
<P>tags, never on newlines, or the history line fragments and only its first piece reads as history. - Form field names contain
$.URLSearchParamsencodes it as%24, which is what IIS expects; a body that leaves$literal gets the form re-rendered with HTTP 200 and nothing else.
The four capabilities, and the one the source cannot do
| Capability | Status | How |
|---|---|---|
| Topic search | yes | louisiana_law_search (the legislature’s own full-text engine) |
| Section by citation | yes | louisiana_statute (form POST → 302 → section page) |
| Amendment / enactment history | yes | trailing history paragraph, parsed into amendments |
| Historical point-in-time version | no | legis.la.gov serves the current compiled text only; every section response says so in historical_version |
laws_current_through on every response is the legislature’s own
“updated through the …” line (e.g. “2025 First Extraordinary Session”),
read from the search form.
Tools
- louisiana_statute — Get the FULL TEXT of one section of Louisiana law by citation — Louisiana Revised Statutes (“RS 14:20” justifiable homicide, “La. R.S. 32:414” driver licence suspension), Civil Code articles (“CC 2315
- louisiana_law_search — Full-text search of Louisiana law BY TOPIC or keyword — “vehicular homicide”, “security deposit lessor”, “concealed handgun permit”, “wrongful death damages” — across the Revised Statutes, Civil Code,
- louisiana_title_contents — List every section in one TITLE of the Louisiana Revised Statutes with its heading and doc_id — Title 14 Criminal Law, Title 32 Motor Vehicles, Title 47 Revenue and Taxation, Title 9 Civil Code Ancill
Tools
louisiana_law_search— Full-text search of Louisiana law BY TOPIC or keyword — vehicular homicide , security deposit lessor , concealed handgun permit , wrongful death damages — across the Revised Statutes, Civil Code, Codelouisiana_statute— Get the FULL TEXT of one section of Louisiana law by citation — Louisiana Revised Statutes ( RS 14:20 justifiable homicide, La. R.S. 32:414 driver licence suspension), Civil Code articles ( CC 2315 lilouisiana_title_contents— List every section in one TITLE of the Louisiana Revised Statutes with its heading and doc_id — Title 14 Criminal Law, Title 32 Motor Vehicles, Title 47 Revenue and Taxation, Title 9 Civil Code Ancill