North Carolina General Statutes — state statutes by citation, plus topic search.
MCPpedia last refreshed this data
io.github.pipeworx-io/north-carolina-code is an MCP server that north Carolina General Statutes — state statutes by citation, plus topic search. Its tool list has not been published yet over http, requires no API key, and scores 89/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients - only the file and path differ.
{
"mcpServers": {
"north-carolina-code": {
"url": "https://gateway.pipeworx.io/north-carolina-code/mcp"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
North Carolina General Statutes — state statutes by citation, plus topic search.
This server supports HTTP transport. Be the first to test it - help the community know if it works.
Five weighted categories - click any category to see the underlying evidence.
No known CVEs.
Checked @pipeworx/mcp-north-carolina-code against OSV.dev.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience - it helps other developers decide.
Sign in to write a review.
Others in legal
Korean law: statutes, precedents, ordinances, treaties and citation verification (법제처 API).
Supplier lien and notice deadlines by project scope. Public lien guides for all 50 states and DC.
Missouri Revised Statutes — state statutes by citation.
Nevada Revised Statutes — state statutes by citation.
MCP Security Weekly
Get CVE alerts and security updates for io.github.pipeworx-io/north-carolina-code and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
North Carolina General Statutes by citation, plus full-text topic search. Keyless.
Part of Pipeworx — an MCP gateway connecting AI agents to 1867+ live data sources. This is an independent, unofficial integration — not affiliated with, endorsed by, or published by the upstream provider.
See docs/state-law-probe.md for how this source was verified — every state pack
confirms a MISS is distinguishable from a HIT before shipping, because several
state sites answer HTTP 200 for statutes that do not exist.
The per-section live path (BySection/Chapter_N/GS_N-M.html) is throttled by
ncleg.gov — measured 82 of 85 calls timed out on 2026-09-29. nc_general_statute
now tries a pre-fetched text first: scripts/ingest-nc-statutes.mjs fetches ncleg.gov's
own per-CHAPTER bulk documents (ByChapter/Chapter_N.html — 396 requests,
counting lettered subchapters, not ~34,000 per-section requests) and splits
each on its § N-M. Heading. markers, writing one JSON bundle per chapter
into the shared pipeworx-datasets R2 bucket at statutes/nc/<chapter>.json.
If the chapter has been crawled and the section is simply not in it, that is authoritative (repealed/renumbered sections are normal) and the tool says so without a live round trip. If the chapter has not been crawled yet, it falls back to the original per-section live fetch.
data_as_of on every response says whether it came from the pre-fetched text (the
crawl's ingested_at) or a live fetch (now).
nc_statute_search answers questions no citation lookup can — "election
conduct at polling places", "landlord retaliatory eviction" — via FTS5 in the
shared SEARCH_SHARD Durable Object (workers/gateway/src/search-shard.ts,
shard name nc-statutes; no new Cloudflare binding). Search hits carry a
citation and heading; call nc_general_statute with the section from a result
to get the full text.
The chapter splitter anchors on § <section>. <Heading> — a literal period
before the heading. A minority of sections use a colon instead, specifically
dotted sub-numbers marking a placeholder: § 1-87.2: Reserved for future codification purposes. The splitter's period-anchor backtracks onto the dot
inside "1-87.2" and folds it under the base section (1-87), so eleven
placeholder sub-sections can attach to one real section's bundle entry as
separate array items sharing its number. Measured across the full 2026-09-30
crawl: 460 (chapter, section) pairs affected, 1,875 extra entries, essentially
all "Reserved for future codification purposes" (verified — no substantive
section heading appeared in a sample of the affected pairs). A real citation
lookup for one of these numbers still resolves (the FIRST matching entry,
which is the genuine section); only the index used for search-hit resolution
carries the redundant placeholder rows, and the search index itself remains
correct rank-wise since a placeholder has no meaningful full-text content to
rank on. Not fixed here because the affected content is exclusively "reserved,
no text" filler; fixing the splitter to disambiguate . inside a dotted
sub-number from . as a heading terminator is a bounded follow-up if a real
citation ever collides this way.
node scripts/ingest-nc-statutes.mjs — re-run periodically (NC's legislative
session runs annually; there is no daily-freshness need here). No schedule is
wired up: dispatch it by hand, or via gh workflow run if/when a workflow is
added — GitHub's own schedule: trigger has been unreliable since ~2026-09-09
(see CLAUDE.md), so a recurring refresh should follow the monitor-dispatch
pattern rather than a bare cron trigger.
Official state legislature site (ncleg.gov). North Carolina statutes are public record; no reuse restriction was found on the bulk document paths used here.
Add to yo