_ registry / mcp http-sse · checked 1h ago

NC Statutes & Rules

https://mcp.ncstatutes.com

Registry code: e1ca0909a3f48cb8

api record

Read-only access to North Carolina law, refreshed weekly: the General Statutes and enacted session laws (ncleg.gov), the NC Constitution, the Supreme Court's court rules (nccourts.gov) and the NC Administrative Code (Office of Administrative Hearings). Search the statute book by subject when you have no citation (search_statutes), read any section by citation (get_statute) — including single rules of the Rules of Evidence and Civil Procedure as "8C-1, Rule 104" or "1A-1, Rule 12" — and follow the legislature's own record of how it changed — amendment history back to the 1800s, word-level…

endpoint
https://mcp.ncstatutes.com/mcp
protocol
http-sse ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is NC Statutes & Rules live?
Yes — it answered the hub's last check (checked 1h ago). It answered 100% of checks over the last 30 days.
Is NC Statutes & Rules free to use?
Yes — the hub reached it with no key and no payment.
What tools does NC Statutes & Rules have?
15 tools: search_statutes, get_statute, get_definition, pending_changes, amendment_history, diff_statute, recent_law_changes, cross_references, ….
Is NC Statutes & Rules safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
100%

90 days 100%· all time 100%

latency
133ms

last good check

priced tools
0

of 15 tools

_ answered our checks, 90 days 1 checks · signed record
  • unknown → live
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 15 tools
3 open 12 never probed 3 of 15 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • chapter_activity open 1h ago

    How 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.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "top": {
          "type": "integer",
          "default": 20,
          "description": "How many of the most-amended sections to list (1-100)."
        },
        "chapter": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            14,
            "15A"
          ],
          "description": "The chapter. Omit for every chapter."
        },
        "since_year": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            2015
          ],
          "description": "Count amendments from this year on (default: five years ago)."
        }
      },
      "additionalProperties": false
    }
    arguments 45 lines
  • get_constitution open 1h ago

    The 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.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "default": 10,
          "description": "With `query`: maximum number of sections to return (1-25)."
        },
        "query": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            "right to a jury trial",
            "public schools funding"
          ],
          "description": "Topic search across the Constitution when there is no citation."
        },
        "article": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            "I",
            9
          ],
          "description": "Article number, Roman or Arabic, with or without `section`."
        },
        "section": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            20
          ],
          "description": "Section number within `article`."
        },
        "citation": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            "N.C. Const. art. I, § 20",
            "Article I, Section 20",
            "Art. IX, sec. 2",
            "Article IV",
            "Preamble"
          ],
          "description": "A section or article of the NC Constitution in any common form."
        },
        "max_chars": {
          "type": "integer",
          "default": 12000,
          "description": "Cut each section's text at this many characters (default 12000). A cut is flagged `truncated`."
        }
      },
      "additionalProperties": false
    }
    arguments 88 lines
  • get_court_rule open 1h ago

    North 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.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "rule": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            "30(e)",
            "7.2",
            2
          ],
          "description": "Rule number within `rule_set`."
        },
        "as_of": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            "2019",
            "2021-06-30"
          ],
          "description": "Read the rule as codified on this date (YYYY-MM-DD), or in this year (the first codification that year). Omit for the current text."
        },
        "limit": {
          "type": "integer",
          "default": 10,
          "description": "With `query`: maximum number of rules to return (1-25)."
        },
        "query": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            "unpublished opinions citation"
          ],
          "description": "Topic search when there is no citation."
        },
        "citation": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            "N.C. R. App. P. 30(e)",
            "App. R. 28(b)(6)",
            "BCR 7.2",
            "Rule 2 of the General Rules of Practice"
          ],
          "description": "A court rule in any common form, with or without a pinpoint."
        },
        "rule_set": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            "app",
            "Business Court"
          ],
          "description": "\"app\" (Appellate Procedure), \"gen\" (General Rules of Practice) or \"bcr\" (Business Court); with `rule`, or to narrow `query`."
        },
        "max_chars": {
          "type": "integer",
          "default": 12000,
          "description": "Cut the rule's text, and its commentary, at this many characters (default 12000)."
        },
        "compare_with": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            "2019"
          ],
          "description": "Diff the rule against its version on this date or in this year (same forms as `as_of`), oldest first. The diff replaces the full text in the answer and may run to twice `max_chars`."
        }
      },
      "additionalProperties": false
    }
    arguments 122 lines
  • search_statutes unknown never probed

    Search 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 section level. A low top rank means the corpus probably has no section on point — NC simply has no statute on some subjects, and saying so is a better answer than the nearest loose word match.

    mcp-tool

    {
      "type": "object",
      "required": [
        "query"
      ],
      "properties": {
        "limit": {
          "type": "integer",
          "default": 10,
          "description": "Maximum number of sections to return (1-25)."
        },
        "query": {
          "type": "string",
          "examples": [
            "dog fighting",
            "failure to appear penalty",
            "\"breaking or entering\""
          ],
          "description": "Topic, keyword or phrase. Supports quoted \"exact phrases\", -excluded terms and `or`. Court shorthand (FTA, DWLR, PJC) is expanded for you."
        },
        "chapter": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            "14",
            "15A"
          ],
          "description": "Only sections in this General Statutes chapter."
        },
        "include_repealed": {
          "type": "boolean",
          "default": false,
          "description": "Also return repealed sections. Off by default, so results are law in force."
        }
      },
      "additionalProperties": false
    }
    arguments 44 lines
  • get_statute unknown never probed

    Full 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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "citation"
      ],
      "properties": {
        "as_of": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            "2026-01-01"
          ],
          "description": "A date (YYYY-MM-DD): the text this database recorded as in force at the end of that day, instead of today's. Records begin with the first ingest run."
        },
        "pending": {
          "type": "boolean",
          "default": false,
          "description": "True lists every variant of the section, including text enacted with a future effective date, each marked in_force_today."
        },
        "citation": {
          "type": "string",
          "examples": [
            "14-72.1",
            "G.S. 14-72.1",
            "§ 14-72.1",
            "15A-145.5",
            "8C-1, Rule 104"
          ],
          "description": "One NC General Statutes SECTION, or one rule of the Rules of Evidence or Civil Procedure (\"8C-1, Rule 104\", \"N.C. R. Civ. P. 12\"). Any spelling works; subsections do not — ask for 20-141, not 20-141(j1), and 1A-1, Rule 12, not Rule 12(b)(6)."
        },
        "max_chars": {
          "type": "integer",
          "default": 12000,
          "description": "Cut the body at this many characters (default 12000). A cut is flagged `truncated`, with the length to retry with."
        },
        "include_definitions": {
          "type": "boolean",
          "default": false,
          "description": "Also list the statutory definitions that govern this section and whose terms appear in its text (e.g. \"impairing substance\" in 20-138.1, defined in 20-4.01 for all of Chapter 20)."
        }
      },
      "additionalProperties": false
    }
    arguments 50 lines
  • get_definition unknown never probed

    What 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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "term"
      ],
      "properties": {
        "term": {
          "type": "string",
          "examples": [
            "impairing substance",
            "motor vehicle",
            "person",
            "board"
          ],
          "description": "The defined word or phrase, as it reads in the statute. Case and plural do not matter."
        },
        "chapter": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            "20"
          ],
          "description": "Limit to definitions made in or scoped to one chapter."
        },
        "section": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            "20-138.1",
            "G.S. 14-72"
          ],
          "description": "The section whose text uses the term. Returns ONLY the definitions that legally apply there, most specific first. Strongly recommended."
        }
      },
      "additionalProperties": false
    }
    arguments 50 lines
  • pending_changes unknown never probed

    North 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.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "default": 50,
          "description": "Maximum number of sections to return (1-500)."
        },
        "chapter": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            14,
            "15A"
          ],
          "description": "Only sections in this chapter."
        },
        "citation": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            "20-141"
          ],
          "description": "Only this section."
        },
        "include_diff": {
          "type": "boolean",
          "default": true,
          "description": "Include a diff of the current text against the pending text for each amended section."
        }
      },
      "additionalProperties": false
    }
    arguments 50 lines
  • amendment_history unknown never probed

    When 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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "citation"
      ],
      "properties": {
        "citation": {
          "type": "string",
          "examples": [
            "14-33",
            "G.S. 20-141",
            "1A-1, Rule 46"
          ],
          "description": "The section whose amendment record you want."
        }
      },
      "additionalProperties": false
    }
    arguments 18 lines
  • diff_statute unknown never probed

    Word-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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "citation"
      ],
      "properties": {
        "mode": {
          "type": "string",
          "default": "observed",
          "examples": [
            "observed",
            "pending"
          ],
          "description": "\"observed\" compares versions this database recorded; \"pending\" compares today's text with text enacted but not yet in effect."
        },
        "format": {
          "type": "string",
          "default": "unified",
          "examples": [
            "unified",
            "html",
            "both"
          ],
          "description": "\"unified\" (a line diff), \"html\" (word-level <del>/<ins> markup) or \"both\"."
        },
        "to_date": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            "2026-10-01"
          ],
          "description": "With mode \"observed\": the later date (YYYY-MM-DD)."
        },
        "citation": {
          "type": "string",
          "examples": [
            "14-78",
            "G.S. 14-33",
            "1A-1, Rule 12"
          ],
          "description": "The section to diff. Add mode=\"pending\" to compare today's text against an enacted-but-not-yet-effective version."
        },
        "from_date": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            "2026-01-01"
          ],
          "description": "With mode \"observed\": the earlier date (YYYY-MM-DD), compared with the version at to_date. Omit both dates to compare the latest two recorded versions."
        }
      },
      "additionalProperties": false
    }
    arguments 67 lines
  • recent_law_changes unknown never probed

    Changed 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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "since"
      ],
      "properties": {
        "limit": {
          "type": "integer",
          "default": 100,
          "description": "Maximum number of rows per source (1-500)."
        },
        "since": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "integer"
            }
          ],
          "examples": [
            2025,
            "2026-10-01"
          ],
          "description": "Start of the window: a session year or an ISO date. Pair with `until` and source=\"effective\" to ask about a single day."
        },
        "until": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            "2026",
            "2026-10-01"
          ],
          "description": "End of the window: a year or an ISO date, inclusive. Omit for no end; effective dates run into the future."
        },
        "source": {
          "type": "string",
          "default": "both",
          "examples": [
            "effective",
            "statutory",
            "observed",
            "both"
          ],
          "description": "\"effective\" (what took or takes effect, by ncleg's effective dates), \"statutory\" (session laws by year, from history notes), \"observed\" (when this database saw text change) or \"both\" (statutory and observed)."
        },
        "chapter": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            20,
            "15A"
          ],
          "description": "Only sections in this chapter."
        },
        "include_baseline": {
          "type": "boolean",
          "default": false,
          "description": "With observed changes: also include the rows from this database's first load, which record the start of the record, not a change in the law."
        }
      },
      "additionalProperties": false
    }
    arguments 80 lines
  • cross_references unknown never probed

    Which 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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "citation"
      ],
      "properties": {
        "limit": {
          "type": "integer",
          "default": 100,
          "description": "Maximum number of references per direction (1-500)."
        },
        "citation": {
          "type": "string",
          "examples": [
            "15A-145.5",
            "G.S. 1A-1",
            "8C-1, Rule 702"
          ],
          "description": "The section whose references you want, in either direction."
        },
        "direction": {
          "type": "string",
          "default": "both",
          "examples": [
            "outbound",
            "inbound",
            "both"
          ],
          "description": "\"outbound\" (what this section cites), \"inbound\" (what cites it, with implementing rules) or \"both\"."
        }
      },
      "additionalProperties": false
    }
    arguments 33 lines
  • search_rules unknown never probed

    Search 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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "query"
      ],
      "properties": {
        "limit": {
          "type": "integer",
          "default": 10,
          "description": "Maximum number of rules to return (1-25)."
        },
        "query": {
          "type": "string",
          "examples": [
            "contested case hearing filing deadline",
            "septic system permit"
          ],
          "description": "Topic, keyword or phrase. Supports quoted \"exact phrases\", -excluded terms and `or`."
        },
        "title": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            "15A",
            26
          ],
          "description": "Only rules in this NCAC title."
        },
        "chapter": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            "15A NCAC 18A"
          ],
          "description": "Only rules in this chapter: \"15A NCAC 18A\", or \"18A\" together with `title`."
        },
        "include_repealed": {
          "type": "boolean",
          "default": false,
          "description": "Also return repealed and expired rules."
        }
      },
      "additionalProperties": false
    }
    arguments 64 lines
  • get_rule unknown never probed

    Read 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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "citation"
      ],
      "properties": {
        "citation": {
          "type": "string",
          "examples": [
            "26 NCAC 03 .0101",
            "10A NCAC 27G .0104",
            "26 NCAC 03"
          ],
          "description": "An NCAC rule citation, or a chapter to list its rules. Loose forms are fine: \"26 NCAC 3 .101\", \"10a ncac 27g .0104\", \"26 NCAC 03\". The State Bar's rules are \"27 NCAC 02 Rule 1.1\" or \"RPC 1.1\"; the Utilities Commission's are \"R8-49\"."
        },
        "max_chars": {
          "type": "integer",
          "default": 12000,
          "description": "Cut the rule text at this many characters (default 12000). A cut is flagged, with the length to retry with."
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • rule_history unknown never probed

    When 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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "citation"
      ],
      "properties": {
        "format": {
          "type": "string",
          "default": "unified",
          "examples": [
            "unified",
            "html",
            "both"
          ],
          "description": "\"unified\" (a line diff), \"html\" (word-level <del>/<ins> markup) or \"both\"."
        },
        "to_date": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The later date (YYYY-MM-DD). Defaults to the latest stored version."
        },
        "citation": {
          "type": "string",
          "examples": [
            "26 NCAC 03 .0101"
          ],
          "description": "An NCAC rule citation."
        },
        "from_date": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            "2026-11-10"
          ],
          "description": "The earlier date (YYYY-MM-DD): diff the version in force then against the one at to_date. Omit both for the latest two stored versions."
        }
      },
      "additionalProperties": false
    }
    arguments 53 lines
  • get_session_law unknown never probed

    The 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.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "default": 20,
          "description": "Maximum entries (1-50): act-sections in an act's contents, or provisions found by `citation` or `query`."
        },
        "query": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            "procurement threshold",
            "extraterritorial jurisdiction"
          ],
          "description": "Words that must all appear in the provision. Within `session_law` when given, else across every act."
        },
        "offset": {
          "type": "integer",
          "default": 0,
          "description": "Skip this many act-sections of an act's contents; pass the previous answer's `next_offset`."
        },
        "section": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            "5.14",
            "1.6(b)",
            "33"
          ],
          "description": "An act-section number as the act prints it. \"5.14\" returns every lettered part (5.14.(a), (b), …); \"5.14(a)\" one of them."
        },
        "citation": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            "143-129",
            "G.S. 20-141"
          ],
          "description": "A G.S. section: return the act provisions that name it — amendments of one subsection, uncodified \"Notwithstanding G.S. …\" provisions, effective-date clauses. Without `session_law`, searches every act."
        },
        "max_chars": {
          "type": "integer",
          "default": 15000,
          "description": "Total characters of provision text in the answer (default 15000). A cut provision says so."
        },
        "session_law": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "examples": [
            "S.L. 2026-61",
            "2026-41",
            "Sec. 1.6 of S.L. 2026-61"
          ],
          "description": "The act, as \"S.L. 2026-61\", \"Session Law 2026-61\" or \"2026-61\". May carry its section: \"S.L. 2026-61, s. 5.14\" or \"Sec. 5.14 of S.L. 2026-61\"."
        }
      },
      "additionalProperties": false
    }
    arguments 87 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id e1ca0909a3f48cb8.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/e1ca0909a3f48cb8/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/e1ca0909a3f48cb8/badge.svg)](https://brick.blue/agent/e1ca0909a3f48cb8?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.