michigan-law-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MLAW_DB | Yes | Path to the SQLite database file containing Michigan law data. Required for the MCP server to serve statutes and rules. | |
| MLAW_CA_BUNDLE | No | Path to a CA bundle file (certifi bundle plus the intermediate certificate) for TLS verification. | |
| MLAW_USER_AGENT | No | User agent string used by the crawler; should include a real contact address. | |
| MLAW_BEARER_TOKEN | No | Bearer token for HTTP transport authentication (used in remote/team mode). | |
| MLAW_MIN_INTERVAL | No | Minimum interval between requests in seconds (default 2, never below 2). | |
| MLAW_ROBOTS_ERROR_OK | No | Set to '1' to proceed when robots.txt returns an error; otherwise fails closed. | |
| MLAW_USE_SYSTEM_TRUST | No | Set to '1' to use the system trust store to fix the Legislature's incomplete certificate chain. |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_documentA | Get the full text of one Michigan legal provision by citation. citation: "MCL 750.83", "MCR 6.110", "MRE 404", or "Const 1963, art 1, § 17". Subdivisions like (1)(a) are ignored; the whole section is returned. as_of: optional YYYY-MM-DD. Returns the version this server had observed by that date. This is observation history, not a legal effective date, and only goes back to this server's first ingest. Returns text, catchline, history note, compiler's notes (including Admin Rule and Constitutionality notes when the source has them), status, and provenance (source URL, last confirmed, and the source's own "complete through PA n of year" stamp). If the source lists another form of the same citation (for example an amended version that takes effect on a future date) it appears under other_forms with its effective date; that text is NOT the law currently in force unless its notice says so. A citation that falls inside a repealed range gets an explanatory error naming the range. |
| searchA | Full-text search across stored provisions (stemmed keywords; "quoted phrases"; uppercase AND / OR / NOT). Returns citations, catchlines and snippets; call get_document for full text. Optionally restrict by source or MCL chapter number (e.g. "750"). |
| get_chapter_outlineA | List the sections in a chapter (e.g. chapter "750" for the Michigan Penal Code) in citation order, with catchlines. Paged with limit/offset. The Michigan Constitution is filed as chapter "1" but is NOT an MCL chapter -- pass source="const" to list it (chapter "1" with the default source="mcl" returns nothing, since there is no ordinary MCL chapter 1). |
| get_cross_referencesB | Follow citations. direction="cites": provisions this one refers to. direction="cited_by": provisions whose text refers to this one. Extracted automatically from explicit citations; not exhaustive. |
| list_changesA | List provisions added, modified, removed or restored since a date (YYYY-MM-DD), newest first, as detected by this server's ingest runs. |
| lookup_public_actA | Look up a Public Act (e.g. year 1931, number 328): title, effective date, and the citations it affects, when known. |
| data_statusA | Report, per source, how many provisions are stored, when the last successful update and last full crawl ran, and the source's own currency stamp (e.g. "Complete Through PA 91 of 2026"). Call this when the user asks whether the data is current. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
Each tool targets a clearly distinct operation: public act metadata, provision full text by citation, full-text search, chapter listing, citation graph traversal, change tracking, and data health. There is no overlap between lookup_public_act and get_document, and search is clearly scoped to stored provisions. An agent can reliably select the right tool for each task.
Most names follow a predictable verb_noun pattern (lookup_public_act, get_document, get_chapter_outline, get_cross_references, list_changes). The bare verb 'search' and the noun phrase 'data_status' are minor deviations but remain readable and unambiguous in context.
Seven tools are well-scoped for a legal reference server: retrieval, search, navigation, cross-referencing, change tracking, and status reporting. Each tool earns its place with no redundant capabilities. The count sits comfortably in the typical 3-15 range.
The surface covers core read-only legal research workflows: lookup by citation, full-text retrieval, search, chapter outlines, citation following, change history, and data currency. Minor gaps exist—no direct way to list public acts by year or fetch a public act's full text—but agents can work around these using search and citation references.