@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, the effective_date, and the history line (the Acts that enacted and amended it). A prior (pre-amendment) version’s text is not available anywhere online — historical_versions says 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 to ky_statute for 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, and searchStatuteNumber=true for an exact-citation lookup. Needs a fresh RequestVerificationToken header, 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 new extractPdfText helper in shared/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, n
  • 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: 50

Regenerated from source · build October 7, 2026