NC General Statutes
com.ncstatutes/ncgsVersion 1.3.0NC statutes, session laws, Constitution, court rules and agency rules: search, read, see changes.
Status
Responds243 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 14:07 UTC
- Latency
- 243 ms
- Remotes responding
- 1 of 1
- Sign-in
- No sign-in
- Hosting
- Hosted outside the EU (detected)
- Registry data as of
- Nov 14, 2026, 22:14 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://mcp.ncstatutes.com/mcpResponds243 msNo sign-in
Claude Code
claude mcp add --transport http ncgs https://mcp.ncstatutes.com/mcpClaude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: ncgs
Remote MCP server URL: https://mcp.ncstatutes.com/mcpCursor
{
"mcpServers": {
"ncgs": {
"url": "https://mcp.ncstatutes.com/mcp"
}
}
}VS Code
code --add-mcp '{"name":"ncgs","type":"http","url":"https://mcp.ncstatutes.com/mcp"}'Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
15 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
amendment_historyWhen a North Carolina (NC) statute section was enacted and every time it was amended.
Use for "how often has G.S. 14-33 changed" or "when was this last amended". Returns one
entry per session law mined from the section's own history note, grouped by year, plus
first-enacted year and total amendment count. Each amendment is listed once even when
the section has several versions; an entry marked `not_yet_in_force` is an enacted
law whose version of the text has not taken effect yet.
These are STATUTORY dates from the legislature's record — not when this database saw
the text change. For that use recent_law_changes; for the wording itself use
get_statute or diff_statute. | No | Yes | Yes | No |
chapter_activityHow much legislative churn a North Carolina (NC) statute chapter has seen.
Use for "which parts of Chapter 14 keep changing". Returns amendment counts by year,
the most-amended sections with their totals, and counts of pending and repealed
sections. Omit `chapter` for a corpus-wide view.
Counts are STATUTORY, from history notes — not observations. For one section use
amendment_history; for upcoming text use pending_changes. | No | Yes | Yes | No |
cross_referencesWhich North Carolina (NC) statutes this section cites, which cite it, and which agency
rules implement it.
Use for "what does G.S. 14-72.1 depend on", "what else references it", or "what rules
were adopted under G.S. 150B-21.2". OUTBOUND is what the section's own text cites;
INBOUND is every section citing it — the direction you cannot get by reading one statute
— plus `implementing_rules`: NC Administrative Code rules that cite it as their
authority.
Section-level only: a reference to 20-141(j1) is an edge to 20-141. Chapter-wide and
"this Article" references are not edges. For the text itself use get_statute. | No | Yes | Yes | No |
diff_statuteWord-level diff of a North Carolina (NC) statute section between two versions.
`mode="pending"` compares the text in force against an enacted-but-not-yet-effective
variant — use this for "what will change on 1 October". `mode="observed"` compares
versions this database has actually recorded, optionally between two dates.
CANNOT show text from before the ingest's first observation: observed history begins
then, so most sections have only one version and return diff: null. For earlier change
dates use amendment_history; for pending text use pending_changes. | No | Yes | Yes | No |
get_constitutionThe North Carolina (NC) Constitution — read a section by citation, list an article, or
search it by topic.
Use for "what does the NC Constitution say about ..." and for any "N.C. Const." citation.
Give `citation` ("N.C. Const. art. I, § 20", "Article I, Section 20", "Art. IX, sec. 2",
"Section 20 of Article I") or `article` + `section`; an article alone ("Article IV")
lists its sections. Give `query` instead to search the text by topic.
A section returns its heading, text, the statutes that cite it, and when ncleg's text
last changed. Amendments awaiting a referendum are printed by ncleg as two versions —
"(Effective until contingency met)" and "(Effective once contingency met)" — and come
back as `variants`, the one in force first, with ncleg's note on the contingency.
This is ncleg's online text, not an official certified copy, and it carries no
amendment history: stored versions begin with the first crawl. For the U.S. Constitution
this server has nothing; for statutes use get_statute. | No | Yes | Yes | No |
get_court_ruleNorth Carolina (NC) court rules that are NOT in the General Statutes: the Rules of
Appellate Procedure, the General Rules of Practice for the Superior and District Courts,
and the Business Court Rules.
Give `citation` in any common form — "N.C. R. App. P. 30(e)", "App. R. 30", "Appellate
Rule 28(b)(6)", "Rule 2 of the General Rules of Practice", "BCR 7.2", "Business Court
Rule 7.2" — or `rule_set` + `rule`. A pinpoint returns that subdivision's text (`pinpoint`)
alongside the whole rule. `rule_set` alone lists its rules; `query` searches by topic.
The Rules of Civil Procedure and of Evidence are General Statutes (G.S. 1A-1, 8C-1): use
get_statute("1A-1, Rule 12"). The Rules of Professional Conduct are NC Administrative Code
(27 NCAC 02): use get_rule. Local rules are not covered.
Earlier versions: `as_of` reads the rule as codified then, and `compare_with` adds a
line diff between two codifications — "Appellate Rule 28 in 2019 vs today" is
citation="App. R. 28", compare_with="2019". Versions are dated by codification, not by
each amendment's effective date; the Appellate Rules go back to the January 2019
codification. | No | Yes | Yes | No |
get_definitionWhat a term means in the North Carolina (NC) General Statutes — the statutory
definition, and where it applies.
Use whenever a statute's outcome turns on a word that may be DEFINED rather than plain
English ("motor vehicle", "impairing substance", "person", "dwelling"). With `section`,
returns only the definitions whose scope covers that section, most specific first
(section > listed sections > Subpart > Part > Subchapter > Article > Chapter > statewide
rules of construction in G.S. 12-3), each with `why` it applies. Without `section`,
returns every definition of the term grouped by scope — which differ: "board" means a
different body in each chapter that defines it.
Matching: the exact term first, then case and plural folded, then the term inside a
longer defined phrase (flagged `fuzzy`). A definition that only says "has the meaning in
G.S. X" is resolved one step to that section's definition.
Definitions are extracted automatically from the statute text; some lead-ins ("As used
in this act") cannot be tied to a scope and are reported as such, never guessed. Read
the defining section before relying on a definition. get_statute(include_definitions=
True) lists every defined term a section uses. | No | Yes | Yes | No |
get_ruleRead a North Carolina Administrative Code (NCAC) rule — a state agency regulation.
Returns the rule's text, heading, status (current, temporary, emergency, repealed,
expired, transferred or reserved), its history (adopted, amended, …, by date), the G.S.
sections it cites as AUTHORITY, and links to the rule on OAH. Give a chapter instead
("26 NCAC 03") to list that chapter's rules.
Use for agency rules; use get_statute for the General Statutes the legislature passes.
To find which rules implement a statute, use cross_references on the statute. | No | Yes | Yes | No |
get_session_lawThe text of North Carolina (NC) session laws — the enacted acts — by act-section.
Use when an answer turns on what an ACT says rather than the codified statute: "what does
Sec. 5.14 of S.L. 2026-61 do", an uncodified "Notwithstanding G.S. 143-129 …" provision,
an amendment to one subsection the codified text has not caught up with, or when an act
takes effect. get_statute names acts touching a section; this reads them.
- `session_law` alone: the act's title, effective date, the chapters it creates or
repeals, and its table of contents (each act-section's number, caption and the G.S.
sections it names), paged by `limit`/`offset`.
- `session_law` + `section`: the full text of that act-section ("5.14" gives 5.14.(a),
(b), …).
- `citation` (a G.S. section), with or without `session_law`: every provision naming it,
newest act first.
- `query`: provisions containing all the words, in one act or across all of them.
Amended text is marked as the act prints it: [-deleted-] {+inserted+}. Covers the acts
of the current biennium (2025-) that ncleg has published; a bill not yet law is not
here. This is the act's own text, not the codified statute — use get_statute for that. | No | Yes | Yes | No |
get_statuteFull text of one North Carolina (NC) General Statutes section, by citation.
Use for "what does G.S. 14-72.1 say". Accepts any spelling — "14-72.1", "G.S. 14-72.1",
"§ 14-72.1". Returns catchline, body, history note, and when it was first enacted and
last amended. `as_of` gives the text observed on a past date; `pending` lists variants
enacted but not yet effective.
Carries `codified_through`, `session_laws_through` and a `legislation_note` naming any
enacted act that touches this section outside the codified text. An uncodified override
("Notwithstanding G.S. ...") is never codified, so it is reported regardless of the
watermark. PENDING BILLS ARE NOT COVERED — a ratified bill is not law and appears in
neither source, so an empty note is not evidence nothing passed.
`as_of` RESOLVES AGAINST OBSERVED VERSIONS, NOT EFFECTIVE DATES — it answers "what did
this database hold on that date", so it cannot reach text from before the first ingest
run. For "what took effect on 1 October" use recent_law_changes(source="effective").
`include_definitions=True` adds the defined terms the section uses, each with the
definition that governs it here (most specific scope) — use it whenever the outcome turns
on a word like "vehicle", "person" or "dwelling". get_definition looks up one term.
Section-level only — ask for "20-141", not "20-141(j1)". The Rules of Evidence and of
Civil Procedure are each one statute (G.S. 8C-1, G.S. 1A-1) holding many rules; ask for a
rule as "8C-1, Rule 104" or "1A-1, Rule 12" (N.C. R. Evid. / N.C. R. Civ. P. forms work).
Asking for 8C-1 or 1A-1 itself lists the rules. For WHEN it changed use
amendment_history; for WHAT changed use diff_statute. | No | Yes | Yes | No |
pending_changesNorth Carolina (NC) statute text already enacted but not yet effective.
Use for "what changes to Chapter 14 are coming". Returns each section's current text
alongside the future variant, its effective date, and by default a diff of the two.
Distinguishes an AMENDMENT (current text exists) from a NEW SECTION (nothing in force
yet, so no diff).
Only counts variants dated in the future. For text in force now use get_statute; for
already-enacted history use amendment_history or recent_law_changes. | No | Yes | Yes | No |
recent_law_changesChanged North Carolina (NC) statutes, by effective date, observation or session year.
source="effective" answers "what took effect on 1 October" from ncleg's own effective
dates — use it for that, and bound a single day with since=until. It looks FORWARD too,
so it also answers "what takes effect next quarter".
source="statutory" is the legislature's record from history notes, back to the 1800s,
dated by year. source="observed" is only when this database saw text change — ncleg's
publishing schedule, not the law's, and no substitute for effective dates.
"both" returns statutory + observed. For one section use amendment_history. | No | Yes | Yes | No |
rule_historyWhen a North Carolina Administrative Code (NCAC) rule was adopted, amended or repealed,
and exactly what changed.
Returns OAH's history events (dated: adopted, amended, temporary or emergency adoption,
readopted, repealed, expired, transferred, recodified) and the versions of the text this
server has stored, with a word-level diff between two of them — the latest two by default,
or the versions in force on `from_date` and `to_date` (YYYY-MM-DD). `format` is "unified",
"html" or "both". Stored versions begin with the first weekly crawl, so older changes
have dates but no diff. | No | Yes | Yes | No |
search_rulesSearch North Carolina Administrative Code (NCAC) rules — state agency regulations — by topic.
Use when you know the subject but not the rule: "how long to file a contested case",
"child care staff ratios", "septic permit requirements". Narrow with `title` ("15A") or
`chapter` ("15A NCAC 18A", or "18A" together with `title`). If you have a citation, use
get_rule instead.
Returns ranked rules with highlighted fragments; read one with get_rule. Results are
ordered the same way as search_statutes: by how many search words a rule contains, then
how much of its heading they make up, then rank. For the General Statutes the legislature
passes, use search_statutes. | No | Yes | Yes | No |
search_statutesSearch North Carolina (NC) statutes by topic, keyword or phrase.
Use this when you know the SUBJECT but not the citation — "what's the NC law about
leaving a dog in a hot car", "failure to appear penalty", "when can I expunge a
misdemeanor". If you already have a citation, use get_statute instead.
Returns ranked sections with highlighted fragments showing why each matched, not full
text: pick the one you want and call get_statute for it.
Supports quoted "exact phrases", -excluded terms and `or`. `match_mode` says how the
query was read: "all_terms" (every word), "all_terms_with_synonyms" (every word, but the
words as typed matched nothing or only weakly, so statutory synonyms were accepted —
"car" for "motor vehicle", "leaving" for "confined"; listed in `synonyms_used`),
"any_of" (the query used `or`), "any_terms" (nothing matched every word, so any word or
synonym was accepted) or "citation" (the query was a bare citation, so it was looked up
directly; when the section doesn't exist, the nearest real sections by number come back
as `suggestions`).
The loose modes only return sections that contain at least one of your words. Results
are ordered by `terms_matched` — how many of the search words a section contains, a
quoted phrase counting only when it appears as a phrase — then by
`catchline_terms_matched`, how many are in the section's own heading, then by
`catchline_coverage`, how much of that heading the search words make up (1.0 is an
exact title, so "DWI" finds "Impaired driving" before longer sections that merely
mention it), then by rank. Court shorthand is expanded
automatically and case-insensitively — FTA, DWLR, PJC, AWDW and similar become the
statutory wording, because the statute book spells the phrase out and never uses the
abbreviation. The expansion is reported back as `expanded_query`. Shorthand that names
one offense lists that offense's section first, marked `primary_for` (FTA → 15A-543,
DWI → 20-138.1).
Searches the law in force today, at sect | No | Yes | Yes | No |
Details
- Registry status
- Active
- Published
- Nov 11, 2026
- Updated
- Nov 11, 2026
- Repository
- Not given
- Categories (suggested)
- Knowledge and notesSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
- GDPR
- Not declared