Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
NDLAW_DBNoPath to opinions.db on the server.bundled / app-data
NDLAW_HOSTNoBind address for HTTP/SSE transport. Keep 127.0.0.1 for local-only access.127.0.0.1
NDLAW_PORTNoBind port for HTTP/SSE transport.8000
NDLAW_AG_DBNoPath to ag_opinions.db (Attorney General opinions corpus).bundled / app-data
NDLAW_NDCC_DBNoPath to statutes.db (N.D.C.C. corpus).bundled / app-data
NDLAW_RULE_DBNoPath to rules.db (court-rules corpus).bundled / app-data
NDLAW_ADMIN_DBNoPath to admincode.db (Admin. Code corpus).bundled / app-data
NDLAW_CONST_DBNoPath to constitution.db (ND Constitution corpus).bundled / app-data
NDLAW_TRANSPORTNoTransport mode: 'http' for Streamable HTTP, 'sse' for SSE, anything else for stdio.stdio

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
lookup_opinionA

Look up an opinion by any citation (neutral cite, N.W.2d, N.W., etc.).

Returns metadata and all known citations. Text is excluded by default to keep responses manageable — use include_text=True for the first text_limit characters, or get_opinion_text() to read in chunks.

get_opinion_textA

Read opinion text in chunks.

Use this to read long opinions in manageable pieces. Start with offset=0 and advance by the limit to paginate through the text.

search_opinionsA

Full-text search across all opinions.

Returns matching opinions ranked by relevance with snippets. Use this to find opinions on a topic, legal issue, or factual pattern.

list_opinions_by_dateA

List opinions filed within a date range.

Returns opinions in reverse chronological order.

get_database_statsA

Get summary statistics about the opinion database.

Returns counts, date range, and top authors.

justice_infoA

Get justice information — voting record for a specific case, or aggregate statistics across cases.

If citation is provided, returns the voting record for that opinion. Otherwise, returns aggregate stats (authorship count, dissent rate, etc.) for the justice across all cases (optionally filtered by date range).

Only covers opinions from 1997–present (neutral-cite era with voting data).

search_by_case_typeA

Search opinions by case type classification.

Case types include values like 'Appeal - Criminal - Misc. Felony', 'Appeal - Civil - Constitutional Law', 'Original Jurisdiction', etc. Partial matches are supported.

get_citing_opinionsA

Find opinions that cite a given opinion.

Returns opinions that reference the given citation in their text, ordered by date (newest first). Requires citation extraction to have been run (python -m ndlaw_mcp.cite_extract).

verify_citationA

Verify a citation or case name and return its canonical form.

Confirms the case exists and returns the exact case name, filing date, authoring justice, and the full parallel-cite set in Redbook order, plus a ready-to-paste formatted citation. Catches wrong volume/page, wrong year, and name drift. If expected_case_name is supplied alongside a citation, the name as-written is compared to the canonical name and any drift is flagged.

get_parallel_citationsA

Return the complete parallel-cite set for a case, in Redbook order.

Feed any one citation (or a case name) and get every known parallel cite so a draft's missing neutral or N.W. parallel can be auto-filled. Synthetic back-assigned [YYYY ND nnn] identifiers for pre-1997 opinions are returned separately and never folded into the formatted citation.

verify_quotationA

Confirm a quoted passage appears verbatim in a case, with pinpoint ¶.

Locates the quote in the opinion text. Differences in whitespace, curly vs. straight quotes, and dash style are treated as still-verbatim; dropped, changed, or inserted words are flagged with a word-level diff and the closest actual text. Returns the pinpoint paragraph (¶) when the opinion carries paragraph markers (generally 1997+ opinions).

get_pinpointA

Resolve a pinpoint: paragraph number → its text, or quote → its ¶.

Provide exactly one of paragraph or quote. With paragraph, returns that ¶'s text and a pinpoint cite. With quote, locates the passage and returns the ¶ it lives in (with verbatim status). Paragraph pinpoints require ¶ markers, present on most 1997+ opinions but not pre-1997 text.

check_treatmentA

Citator: how later opinions have treated a case (KeyCite/Shepard's-style).

Aggregates opinions citing the target and, for each, returns the citing sentence, its paragraph, and a CONSERVATIVE, NON-AUTHORITATIVE treatment signal scanned from that sentence alone. Possible-negative and distinguished items are surfaced first so they are never truncated away.

IMPORTANT: signals are heuristic — a citing sentence may use a treatment word about a different case. This is NOT a "still good law" verdict. Always read the returned sentence and the full citing opinion before relying on it.

get_cited_authoritiesA

Outbound authorities a case relies on, grouped by type.

Maps the authority graph around a case: cited cases (in-corpus ND opinions resolved to name/date/oid; others with a source URL), statutes (N.D.C.C.), court rules, constitutional provisions, and regulations — each with an official-source link where available.

case_summaryA

One-call bench-memo front matter for a case.

Returns name, full caption, all parallel cites (Redbook-ordered; synthetic [YYYY ND nnn] separate), date, author, panel, voting record, disposition, paragraph count, syllabus points (pre-1953), and citation-graph counts. disposition and syllabus_points are DERIVED/heuristic — verify against the opinion.

get_subsequent_historyA

Related opinions sharing the case's docket (rehearings, supplemental, etc.).

Finds other opinions on the same docket number, ordered by date, with a relation hint. Docket-linking also surfaces companion opinions and same- docket duplicates, so this is a research aid — verify the relationship.

authoring_justice_on_issueA

Opinions a justice has authored on an issue (predictive bench-memo signal).

Full-text searches issue and filters to opinions authored by justice, newest first, with snippets. Reflects authored majority/lead opinions (the author field); separate writings are most fully attributed 1997+.

search_booleanA

Westlaw-style Boolean / proximity search.

Connectors: & (AND), | or OR (OR), % or NOT (BUT NOT), /N (within N words), /s (same sentence ≈ NEAR/20), /p (same paragraph ≈ NEAR/50), ! truncation (e.g. negligen! → negligen*), and "quoted phrases". Because FTS5 has no sentence/paragraph unit, /s and /p are token-distance approximations — the translated FTS query and any approximation notes are returned for transparency.

search_facetedA

Faceted opinion search: filter by metadata, optionally with full text.

Any combination of facets may be supplied. With query, results are FTS relevance-ranked; otherwise newest first. Disposition is a partial match (e.g. "REVERSED" matches "REVERSED AND REMANDED"). Dissent/concurrence/ unanimity derive from voting data present for 1997+ opinions only.

find_opinions_construingA

Find opinions that cite/construe an N.D.C.C. section, court rule, or constitutional provision.

Accepts forms like "14-09-06.2", "N.D.C.C. § 14-09-06.2", "chapter 28-32", "N.D.R.Crim.P. 12", "Rule 56 NDRCivP", or "N.D. Const. art. I, § 8". Returns the matched authority (or authorities, if the reference is ambiguous) and the opinions citing it, newest first. When the cited provision's corpus is installed, also returns the provision's own text.

get_notes_of_decisionsA

Annotated "Notes of Decisions" for a statute, court rule, constitutional provision, or admin-code section: every citing opinion with its citing sentences (verbatim, with ¶ pinpoints), the SUBSECTION each mention cites, and depth-of-treatment signals — a research view of how courts have applied the provision, grouped and ranked (vs find_opinions_construing's bare list).

Per citing opinion: mentions (in-text occurrence count), construes (interpretive vocabulary near a mention — heuristic), quotes_provision (reproduces ≥8 consecutive words of the provision's text), subsections_cited (parsed pinpoints, oracle-validated against the provision's structured subsection index where available), the opinion's own cited-by count, and the provision VERSION in force when it was filed. The header aggregates a per-subsection citation outline and the provision's amendment timeline, so notes can be read against text changes.

Signals are heuristic and NON-authoritative — read the returned context (and the full opinion) before relying on any of them.

get_provision_xrefsA

Cross-references between primary-law provisions: what a statute / court rule / constitutional / admin-code provision cites, and what cites it.

Outbound: every provision this one's text references ("as defined in section 44-04-17.1", "subject to chapter 54-55"), resolved with heading and status where the target corpus is installed. Inbound: every provision — across ALL installed corpora — whose in-force text references this one: the admin-code rules implementing an enabling statute, every section incorporating a definition (the blast radius of amending it), rules citing a constitutional provision.

Point-in-time: edges are asserted per text version, so as_of_date returns the references in (and to) the versions in force on that date; default is current text. Unresolved outbound targets (e.g. a chapter cite — chapters aren't provisions — or a reference to a repealed section) are listed with resolved=false rather than dropped.

lookup_authorityA

Retrieve the text of a ND constitutional, statutory, court-rule, or administrative provision — optionally as it read on a specific date.

Resolves citations like "N.D. Const. art. I, § 8", "N.D.C.C. § 12.1-20-03", "N.D.R.Civ.P. 56", or "N.D. Admin. Code § 75-02-01". When as_of_date is given (ISO YYYY-MM-DD), returns the version in force on that date; this is what lets you read a statute "as the court applied it" in an older opinion. Omit as_of_date for the current text.

For the Constitution, the 1889<->1981 renumbering is bridged automatically: a modern cite (art. V, § 2) at a pre-1981 date returns its original-section predecessor (§ 72), and an original §-cite (or amend. art.) at a post-1981 date returns its modern successor — each with requested_citation, returned_provision, relation, and a note explaining the link (source: NDCC Replacement Vol. 13 disposition tables).

Returns the provision text, heading, effective window, enacting/amending authority, source URL, and a count of opinions construing it. If the relevant corpus is not installed, says so.

constitutional_amendmentsA

List the chronology of amendments to the ND Constitution.

Returns every amendment from ndconst.org's authoritative table (1889–present, ~167 amendments) with its effective date, election date, affected section(s), subject, and a link to the enacting session law. Optionally filter by effective-date range (ISO YYYY-MM-DD). Note: pre-1996 amendments list the section numbers in effect at the time (the Constitution was renumbered in 1996), so those do not map to current article/section citations.

get_authority_historyA

Show the amendment history of a ND constitutional, statutory, court-rule, or administrative provision — every version with its effective dates and the authority that enacted or amended it.

Use this to see how a provision changed over time, then call lookup_authority with a specific as_of_date to read any version in full. Version text is truncated here; full text comes from lookup_authority.

search_authorityA

Full-text search across ND primary law (Constitution, court rules, statutes, administrative code).

Searches provision text and headings. By default returns the version currently in force; pass as_of_date (ISO YYYY-MM-DD) to search the text as it read on that date. Restrict to one corpus with corpus_name ('const', 'rule', 'ndcc', or 'admin'). Each hit's excerpt is the matched passage with the matching terms marked >>>term<<< (the same convention as search_opinions); when the match falls only in the citation or heading, the excerpt is that field instead.

more_like_thisA

Find opinions doctrinally similar to a given case (hybrid ranking).

Blends two signals: co-citation (sharing the same cited authorities) and keyword overlap (shared salient terms). Each result reports both sub-scores so the ranking is explainable.

detect_overruled_in_draftA

Proofreading pass: flag cited cases that later opinions may have overruled, superseded, abrogated, or distinguished.

Extracts every ND / N.W. / N.D. case citation in the draft, resolves each to a corpus opinion, and runs it through the citator. Cases with a possible- negative or distinguished signal are flagged with the citing context for human verification; the rest are reported as clear.

IMPORTANT (same caution as the citator): signals are heuristic and sentence-local, NOT a "still good law" verdict. ALWAYS read each flagged entry — and the full citing opinion — before relying on it. Citations that don't resolve to a corpus opinion (foreign/federal cases, or typos) are listed under unresolved and were NOT checked; absence of a flag is not assurance a case is good law.

check_draftA

One-call cite-check of a draft opinion, memo, or brief: verify every citation, every attributed quotation, negative treatment of cited cases, and the currency of cited authorities — a severity-ranked flag report.

Checks (all on by default, select with checks): citations — every ND case cite resolves (typo catch), case-name drift vs the canonical caption, missing neutral cite, statutory subsection pinpoints validated against the provision; quotations — every quotation attributed to a nearby cite is located in that authority's text (typography-tolerant; word-level diff on mismatch); statutes/rules/const quotes are also retried against OTHER captured versions to catch quoting since- amended text; treatment — cited cases run through the citator; possible-negative / distinguished citing sentences surface (same engine as detect_overruled_in_draft, which remains the cheap treatment-only pass); currency — repealed / superseded / not-in-force authorities, checked at as_of_date when given (offense/contract date).

Severities: S1 misquotation or quote-of-superseded-text · S2 citation doesn't resolve · S3 possible negative treatment · S4 authority currency / bad pinpoint · S5 name drift / missing neutral cite.

Heuristic and NON-authoritative throughout: extraction is regex-based (foreign/federal authority is listed as unchecked, not verified), quote attribution follows the nearest-cite convention and can misattribute, bracketed alterations and ellipses in quotes surface as differences, and treatment signals are sentence-local. Read every flag's context before acting on it. A draft spanning several operative dates needs per-authority lookup_authority calls — as_of_date anchors the whole draft.

search_ag_opinionsA

Full-text search across ND Attorney General opinions (1942–present).

The AG's published opinions construe ND statutes, the Constitution, court rules, and the open-records/open-meetings law. Returns matching opinions ranked by relevance with snippets.

lookup_ag_opinionA

Retrieve a ND Attorney General opinion by its number (e.g. "2015-L-12").

Returns the opinion's metadata, the ND primary-law authorities it cites (extracted cross-links), and optionally its text.

get_ag_opinions_citingA

Find ND Attorney General opinions that cite a given authority.

Reverse index: give a statute, constitutional, court-rule, admin-code, or case citation and get the AG opinions that cite it. Statutory/constitutional citations are canonicalized against the installed corpora first, so "N.D.C.C. § 44-04-18" and "44-04-18" both resolve.

get_court_opinions_citing_agA

Find ND Supreme Court / Court of Appeals opinions that cite a given AG opinion.

The inbound direction of the AG citation graph. Court opinions cite AG opinions two ways — a docket cite (N.D. Op. Att'y Gen. 2003-L-11) or, more often historically, a date reference (Attorney General's opinion of February 18, 1975); both are captured (see ag_backlink). Returns the citing court opinions, newest first.

search_jeac_opinionsA

Full-text search across ND Judicial Ethics Advisory Committee opinions (1990–present).

The committee's advisory opinions construe the N.D. Code of Judicial Conduct — recusal/disqualification, campaign conduct, extra-judicial activities. NOTE (per the committee): before relying on an opinion, compare its rule/canon references with the current Code — the Code has been restructured since many were issued.

lookup_jeac_opinionA

Retrieve a ND Judicial Ethics Advisory Committee opinion by number (e.g. "96-1" or "2016-2").

Returns the opinion's metadata (including the committee's question digest), the authorities it cites (Code of Judicial Conduct canons/rules, cases, statutes), and optionally its text. Two-digit and four-digit year forms both resolve ("96-1" == "1996-1").

get_jeac_opinions_citingA

Find ND Judicial Ethics Advisory Committee opinions that cite a given authority.

Reverse index over the committee's citations — most useful for Code of Judicial Conduct provisions ("N.D. Code Jud. Conduct canon 3"), but any rule/statute/case citation works. Old-form Canon citations (pre-2007 Code) are indexed at canon granularity.

get_court_opinions_citing_jeacA

Find ND Supreme Court / Court of Appeals opinions that reference a JEAC opinion (or the committee at all).

The inbound direction of the JEAC citation graph. Courts rarely cite these by number — most references are descriptive prose ("The trial court contacted the Judicial Ethics Advisory Committee..."), captured with the surrounding text. Call with no opinion_number to list ALL court references to the committee, including unresolved prose references.

get_opinion_figuresA

List the figures reproduced in an opinion (plat maps, survey drawings, photos, diagrams, tables-as-image).

Returns lightweight metadata for each figure — its index, kind, a descriptive caption, the PDF page, and dimensions. Fetch the actual image bytes for one figure with get_opinion_figure_image(citation, fig_index). The captions are our editorial descriptions (what the figure is), not the court's own text. Returns an empty list if the opinion has no figures (or if figures.db is not installed).

get_opinion_figure_imageA

Return one figure's image from an opinion, as viewable image content.

Use get_opinion_figures(citation) first to see how many figures exist and their captions/kinds, then call this for a specific figure. One image per call keeps responses manageable.

get_opinion_tablesA

Return the reconstructed data tables in an opinion, structured for reading.

Some opinions contain tables — numeric ones (apportionment counts, tax- redemption schedules, caseload statistics) and, from 2026 ND 34 on, tables whose cells are running text (a grid of case citations) — that flat opinion text renders as a scrambled run of cells. Those tables are reconstructed from a geometry-bearing source and served here structured. The opinion's own text_content carries the same table inline as a fixed-width block under a "[Table N]" anchor; this tool gives you a cleaner rendering for display or parsing.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jet52/ndlaw'

If you have feedback or need assistance with the MCP directory API, please join our Discord server