@pipeworx/kentucky-code
Connect: https://pipeworx.io/mcp — every tool in the catalog, including @pipeworx/kentucky-code’s. Install: one-click buttons
Connect to just the @pipeworx/kentucky-code pack
https://gateway.pipeworx.io/kentucky-code/mcp — only @pipeworx/kentucky-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: 2
Kentucky Revised Statutes (KRS) — state statutes by citation and by topic search, with legislative/amendment history. Keyless.
Tools
ky_statute(citation)— the current text of a KRS section by citation ("507.020","KRS 383.580","§ 507.020"). Returns the catchline, the full statutory text, theeffective_date, and thehistoryline (the Acts that enacted and amended it). A prior (pre-amendment) version’s text is not available anywhere online —historical_versionssays so rather than silently omitting it.ky_search(query, limit?)— full-text topic search over the statutory body text, not just catchlines ("landlord"surfaces KRS 383.580 “Security deposits”, a catchline that contains neither word). Returns matching citations and catchlines; pass a citation toky_statutefor the full text.
Auth
Keyless. No signup, no key, on either side of the call.
Data sources
- https://apps.legislature.ky.gov/LRCSearch/Home/getStatuteJSON — the
Legislative Research Commission’s own citation/topic search, GET with
searchPhrase,statuteRange=true&startRange=1&endRange=999, andsearchStatuteNumber=truefor an exact-citation lookup. Needs a freshRequestVerificationTokenheader, read from an inline<script>on https://apps.legislature.ky.gov/lrcsearch — NOT cookie-bound (confirmed: the search page sets no cookie), so one GET for the token followed by one GET against the API, per call, is the whole mechanism. No login. - https://apps.legislature.ky.gov/law/statutes/statute.aspx?id= — the
matched section’s full text, served as a per-section PDF
(
content-disposition: inline;FileName="KRS507_020(K).pdf"). There is no HTML page with the statutory text anywhere on the site; the chapter index pages list only catchlines. Extracted via the newextractPdfTexthelper inshared/src/pdf-text.ts(see that file for what it does and does not handle) — this repo had no PDF text extraction before this pack.
The opaque-id trap, and why this isn’t the two-hop resolver. The August
state-law survey (docs/state-law-probe.md) flagged Kentucky’s statute URLs
as addressed by an opaque database id with no derivable mapping from the
citation — the same shape Vermont and Connecticut solved with a two-hop fetch
through the chapter index. Kentucky’s chapter index pages (chapter.aspx?id=)
DO carry that mapping (confirmed: Chapter 507’s index lists “.020 Murder.” next
to its id), so the two-hop route would work — but a simpler ONE-hop route also
works and is what this pack uses: the LRC’s own search API resolves a citation
straight to its id, because it is a real full-text search over the whole KRS
rather than a title/catchline index (verified live: searching “landlord”
surfaces KRS 383.580, whose catchline is just “Security deposits.”).
Four capabilities, three available. Citation lookup and topic search are
both the same search endpoint with a flag; amendments/history is the
statute’s own History: line, parsed out of the extracted PDF text. The
fourth — the TEXT of a section as it read before a given amendment — is not
published online anywhere: a superseded id redirects to an “Invalid Statute”
page instructing the reader to e-mail the Reviser of Statutes for it. This
pack reports that as historical_versions, not as a silent gap.
Division/chapter-heading rows. The search API’s Type field is "K" for
a real statute section, "D" for a chapter/division heading (no statutory
text — ky_statute reports not_a_section rather than fetching a PDF for
it), and "R" for a repealed section (text still returned; type_label
says which).
Tools
- ky_statute — Get the FULL TEXT of a section of the Kentucky Revised Statutes (KRS) — Kentucky state law — by citation. “507.020” is murder; “383.580” is the landlord security-deposit statute. Accepts natural forms
- ky_search — Search the Kentucky Revised Statutes BY TOPIC or keyword rather than citation — “security deposit”, “concealed carry”, “DUI per se limit”, “homicide”. Real full-text search over the statutory body tex
Tools
ky_search— Search the Kentucky Revised Statutes BY TOPIC or keyword rather than citation — security deposit , concealed carry , DUI per se limit , homicide . Real full-text search over the statutory body text, nky_statute— Get the FULL TEXT of a section of the Kentucky Revised Statutes (KRS) — Kentucky state law — by citation. 507.020 is murder; 383.580 is the landlord security-deposit statute. Accepts natural forms: 50