Skip to main content

NC General Statutes

com.ncstatutes/ncgsVersion 1.3.0

NC statutes, session laws, Constitution, court rules and agency rules: search, read, see changes.

Status

Responds243 msAnswered our handshake without sign-in.

Registry data may be out of date

We could not refresh it, so this page shows the last copy.
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 ms
No sign-in

Claude Code

claude mcp add --transport http ncgs https://mcp.ncstatutes.com/mcp

Claude Desktop and claude.ai

Settings > Connectors > Add custom connector
Name: ncgs
Remote MCP server URL: https://mcp.ncstatutes.com/mcp

Cursor

{
  "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.

Host your own MCP server on run.zero

Tools

15 tools

Tools of NC General Statutes
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.NoYesYesNo
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.NoYesYesNo
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.NoYesYesNo
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.NoYesYesNo
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.NoYesYesNo
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.NoYesYesNo
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.NoYesYesNo
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.NoYesYesNo
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.NoYesYesNo
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.NoYesYesNo
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.NoYesYesNo
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.NoYesYesNo
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.NoYesYesNo
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.NoYesYesNo
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 sectNoYesYesNo

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

Are you the operator? Claim this listing