Comprehensive Model Context Protocol server for managing Home Assistant through AI assistants.
GLO Law is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Free U.S. legal research: court opinions, statutes, state regulations and corrections policies.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http glo-law-mcp https://mcp.glolaw.org/mcp
# 2 — ask your agent for something these tools do
# search, fts, semantic_search and 14 more
GLO Law costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http glo-law-mcp https://mcp.glolaw.org/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
17 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Case-name metadata search over the local CourtListener mirror. Punctuation-insensitive trigram match on the case name ("Brown v board of education" matches "Brown v. Board of Education"). Returns cluster rows: id, case_name, case_name_short, date_filed, precedential_status, citation_count, slug. Metadata only: no opinion text, and not concept search (it finds a case by its name, not by what it is
| Parameter | Type | Required | Notes |
|---|---|---|---|
| q | string | yes | case name or fragment (>=3 chars) |
| court | array | no | filter to CourtListener court ids (e.g. ["scotus","ca10"]); OR within the list |
| date_filed_after | string | no | only cases filed on/after this date (YYYY-MM-DD) |
| date_filed_before | string | no | only cases filed on/before this date (YYYY-MM-DD) |
| precedential_status | array | no | filter by precedential status; OR within the list |
| min_citation_count | integer | no | minimum citation_count |
| sort | string | no | order: citation (default), date, date_asc |
| limit | integer | no | max results, 1-20 (default 20) |
Keyword full-text search (BM25) over opinion body text in the local mirror. Keyword, not concept: matches the exact words given (case-insensitive) with no stemming ("petition" does not match "petitions"); all words must appear; "double quotes" mark an exact phrase. A case that states the concept in other words does not appear; semantic_search covers that gap. Coverage (exact scan 2026-07-18): the
| Parameter | Type | Required | Notes |
|---|---|---|---|
| q | string | yes | keywords; all must appear, no stemming; "quotes" = exact phrase |
| court | array | no | filter to CourtListener court ids (e.g. ["scotus","ca10"]); OR within the list |
| date_filed_after | string | no | only cases filed on/after this date (YYYY-MM-DD) |
| date_filed_before | string | no | only cases filed on/before this date (YYYY-MM-DD) |
| precedential_status | array | no | filter by precedential status; OR within the list |
| min_citation_count | integer | no | minimum citation_count |
| limit | integer | no | max results, 1-20 (default 20) |
Semantic (vector) search over embedded opinion chunks: finds cases by concept or plain-language description when there is no fixed term of art. Returns one row per case: opinion_id, cluster_id, metadata, matched_chunk, distance, similarity, matched_text (the passage the case matched on) and matched_text_status; same_case_other_opinions counts other opinions of the same case, and duplicate_records
| Parameter | Type | Required | Notes |
|---|---|---|---|
| q | string | yes | a concept or plain-language description of the legal issue |
| limit | integer | no | max results, 1-20 (default 20) |
Given one opinion id, returns other opinions whose wording overlaps it, ranked by keyword match (BM25 more-like-this). Keyword overlap only: not a finding that the neighbors address the same issue, reach the same result or remain good law, and not complete. The seed opinion and its own case are excluded. Case law in this mirror ends 2026-09-30 (exact scan of all 10,174,547 case records): a thin or
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | integer | yes | seed OPINION id (from a search/fts/semantic result opinion_id) |
| limit | integer | no | max results, 1-20 (default 20) |
Resolves a reporter citation "<volume> <reporter> <page>" (e.g. 347 U.S. 483) to the matching case cluster(s) in the local mirror, optionally with member opinions and parallel citations. A 404 means the citation is not in this mirror, not that the case does not exist. A resolved citation shows the case is in the mirror; it is not a good-law, treatment or validity signal. One citation can sit on se
| Parameter | Type | Required | Notes |
|---|---|---|---|
| cite | string | yes | "<volume> <reporter> <page>", e.g. 347 U.S. 483 |
| include | array | no | extra data to attach: "opinions" (member opinions), "citations" (parallel cites) |
Full case (cluster) detail by cluster id: cluster metadata, member opinions and parallel citations. Metadata only; the opinion tool returns full text. Every response carries a "note" stating that response’s source and coverage limits.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | integer | yes | cluster id (from a search/fts/citation result: id or cluster_id) |
Full text of one opinion by opinion id, plus metadata. The text is the best stored text extracted from the mirror (HTML stripped; body_source names the extraction source and fallback_used flags a lower-precedence one), bounded to 200k characters with truncated and text_available flags. Not live CourtListener, not legal advice, and no treatment, "good law" or citation-validity status. Responses car
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | integer | yes | opinion id (from a search/fts/semantic/similar result opinion_id) |
Given one opinion id, lists the cases it cites (direction=authorities) or the cases that cite it (direction=cited_by). Textual reference only: an edge means one opinion’s text names the other; it is not treatment, agreement, validity or "good law", and not a Shepard’s or KeyCite result. At most 1000 references are examined; those resolving to a loaded case are shown (most-cited first), the rest ar
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | integer | yes | seed OPINION id (from a search/fts/semantic/similar result opinion_id) |
| direction | string | no | authorities = cases THIS opinion cites; cited_by = cases that cite THIS one (default cited_by) |
| limit | integer | no | max in-corpus results, 1-50 (default 25) |
| with_passages | boolean | no | cited_by only: also return each citing court's verbatim sentence around the citation (citing_passage). Adds passage_note, passages_scanned, passages_found, and passage_error when the pass fails or the |
Given one opinion id, returns the one-line parentheticals later courts wrote about that case, verbatim. A parenthetical is the later court’s own characterisation: not a holding of the described case, not a summary written by this service, and not treatment, validity or "good law". Each item names the opinion that wrote it (case name, date, citation_count). Near-duplicates ship pre-grouped by Court
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | integer | yes | the DESCRIBED opinion id — the case you want later courts' descriptions of (from a search/fts/semantic/similar result opinion_id) |
| limit | integer | no | max groups returned, 1-25 (default 10); one representative parenthetical per group |
Later courts, in their own words, reporting that one case was overruled, abrogated, superseded, reversed or vacated. Takes a cluster id (the case-record id), not an opinion id. Every row carries the citing court’s own sentence, cut from its stored text; the label is a filter over those sentences, not a verdict, and 68.7% of findings are expressly partial ("overruled on other grounds"). Not a valid
| Parameter | Type | Required | Notes |
|---|---|---|---|
| cluster_id | integer | yes | the CASE RECORD (cluster) id of the case you are checking — from a search/citation/fts result (id or cluster_id), not an opinion id |
| label | string | no | filter rows to one label. A filter over sentences, never a verdict; by_label on the response reports all five regardless |
| limit | integer | no | max rows returned, 1-25 (default 10) |
| offset | integer | no | skip this many, for paging further down the date order; capped at 5000 |
Checks the case citations in a document the user supplies (a draft filing, brief or motion) against this collection and court-reported negative history, showing which cited cases to read before filing. Nothing is ever cleared: there is no pass mark or "verified" state. Per citation: reported_negative_history (a later opinion’s sentence matched as reporting it overruled, abrogated, superseded, reve
| Parameter | Type | Required | Notes |
|---|---|---|---|
| text | string | yes | the document text to check, as plain text. Up to 380,000 characters; a longer document is refused with a reason rather than silently cut, because a check run on part of a filing says nothing about the |
Exact lookup of one statute section or one regulation section by citation, in a point-in-time snapshot of published law. Returns the text verbatim with jurisdiction, corpus, citation, heading, path, source_url, as_of, act_status, last_amended_year and repaired. Enacted text only: not case law or annotations, no treatment or "good law" judgment, and nothing in a result means the text is current; as
| Parameter | Type | Required | Notes |
|---|---|---|---|
| cite | string | no | full citation as published, e.g. "KRS § 11A.001" (2026-08-14 rows, no year), "KS Stat § 1-201 (2021)" (Justia rows), or "K.A.R. 1-1-1" (Kansas regulations, no section sign) — the reliable form for eve |
| jurisdiction | string | no | jurisdiction code, e.g. "us" or "ks"; requires section. Resolves for the federal slice, for 2026-08-14 state rows and for the Kansas regulation rows (Justia-only GA/NC/PR/VI never match this way) |
| section | string | no | section number as the publisher prints it, e.g. "21-6614", "11A.001", or a Kansas regulation number "1-1-1"; requires jurisdiction. Justia rows carry none, so this can never match one of them |
| title | string | no | optional title or chapter number narrowing a jurisdiction+section lookup; with source="cfr" the CFR title, required with section; for other sources the forms are given by sources(tool="statute", sourc |
| raw | boolean | no | statutes only: true returns the stored text unchanged, without the page-overlap repeat removal |
| source | string | no | omit for statutes and Kansas regulations; a regulation source code ("cfr" for federal, or a state code) reaches that source alone; each code’s coverage and citation forms are given by sources(tool="st |
Keyword (BM25) search over the body text of statute sections and, in the default source, Kansas administrative regulations, in the same snapshot as the statute tool; source=<code> searches one regulation source alone. Without jurisdiction=, results mix states: on 6,852 benchmark housing-law questions run unconfined, the top-ranked section came from a state other than the asker’s in 97.7% of them.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| q | string | yes | words to match in the statute section text. A full natural-language question is fine: common words are dropped and the rest matched ANY-OF, so more words widen the search rather than narrowing it. "do |
| jurisdiction | string | no | restrict to one jurisdiction, e.g. "ks" or "us". STRONGLY preferred when the user’s state is known: without it results mix states |
| limit | integer | no | max results, default 20, capped at 50 |
| source | string | no | omit for statutes and Kansas regulations; a regulation source code ("cfr" for federal, or a state code) searches that source alone; each code’s coverage is given by sources(tool="statute_search", sour |
| title | string | no | only with source=: narrows the search to one title, part or chapter of that source; the forms per source are given by sources(tool="statute_search", source=<code>) |
Lists the opinions whose text cites one U.S. Code section. Federal only: no state statute-citation links exist, and a state citation returns a visible error. An entry means the opinion’s text names the section; it does not say how the court treated it and carries no treatment, validity or "good law" judgment. Zero results is the majority outcome: only 25,093 of 60,444 parseable federal sections (4
| Parameter | Type | Required | Notes |
|---|---|---|---|
| cite | string | no | federal citation as published, e.g. "42 U.S.C. § 1983". A trailing subsection is stripped and reported in subsection_dropped. State citations are refused with a visible error |
| title | string | no | U.S. Code title, e.g. "42"; used with section= in place of cite= |
| section | string | no | U.S. Code section number, e.g. "1983" or "1997e". Use with title= |
| limit | integer | no | max citing opinions returned, default 25, capped at 50 |
| offset | integer | no | skip this many, for paging further down the date order; capped at 5000 |
Internal policies of a state department of corrections, or of the Federal Bureau of Prisons (state="bop", federal), as the department posts them, by number or by keyword search (query; no stemming). Not law: not statutes, regulations or court rules (a Maine policy the department marks as adopted as a rule answers apa_marked true; for Kentucky GLO makes no claim about legal effect either way). A de
| Parameter | Type | Required | Notes |
|---|---|---|---|
| state | string | yes | the department: a state code (e.g. "va", "ks", "ks-go" for Kansas facility General Orders) or "bop" (the Federal Bureau of Prisons); each code’s department and coverage are given by sources(tool="corr |
| number | string | no | a procedure, section, directive or policy number as the department prints it, e.g. "851.1", "OP 038.1", "01-103D" (Kansas), "TCF 15-101" (a Kansas facility General Order); number "contents" lists a de |
| query | string | no | words to match in the policies’ text (keyword, no stemming). Give number or query, not both |
| limit | integer | no | max search results, default 20, capped at 50 (search only) |
Counts a deadline from a date the user gives, under a rule whose text is in GLO’s mirror, and returns every counting step beside that text. Counted: K.S.A. 60-206 (Kansas civil procedure; a period in days the user supplies from the rule or order that sets it, forward or backward, with three days added after service by mail or by leaving it with the clerk) and K.A.R. 44-15-101b (Kansas Department o
| Parameter | Type | Required | Notes |
|---|---|---|---|
| rule | string | yes | the rule: "ks-60-206" (K.S.A. 60-206), "kar-44-15-101b" (K.A.R. 44-15-101b), "frcp-6" (Fed. R. Civ. P. 6), "frap-26" (Fed. R. App. P. 26) or "usc-28-2107-a" (28 U.S.C. 2107(a), thirty days after entry |
| start_date | string | yes | YYYY-MM-DD: for ks-60-206, frcp-6 and frap-26 the day the period runs from (or the event it counts back from); for kar-44-15-101b the day the event was discovered; for usc-28-2107-a the day of entry |
| days | integer | no | ks-60-206, frcp-6 and frap-26: the period in days, 1 to 3650, from the rule or order that sets it (usc-28-2107-a: omit, or 30) |
| direction | string | no | ks-60-206, frcp-6 and frap-26: "after" (default) or "before" the start date |
| service | string | no | ks-60-206, frcp-6 and frap-26: how the paper was served. ks-60-206: "mail" and "clerk" add three days; frcp-6: those and "other" (two readings: consented to in writing or not); frap-26: all but "elect |
| event_date | string | no | kar-44-15-101b only, required: YYYY-MM-DD, the day of the event itself (the one-year limit) |
Returns GLO’s coverage statements as text, so each tool’s and each source’s limits can be read on request. With a tool name alone: that tool’s full statement of coverage, measured limits and field meanings ("server" gives the full server overview). With a source or state code: for statute and statute_search, that regulation source’s coverage, citation forms, served and held counts and read dates (
| Parameter | Type | Required | Notes |
|---|---|---|---|
| tool | string | yes | a tool name, or "server" for the full server overview |
| source | string | no | optional: a regulation source code for statute or statute_search (e.g. "cfr", "fl"), or a department code for corrections_policy (e.g. "ks", "bop") |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install GLO Law or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | minimal | capability blast radius (minimal) — client exposure if the model is manipulated | −0 |
| coverage-honesty | manifest | inspection depth (manifest) — how much of the target the scan could see | −4 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
The scan read each tool’s name, description, input schema and annotations exactly as the server listed them the last time it answered us; no code was reviewed. We ask the server again about once a month, and a list that changed is graded again.
The implementation source was not read — this reflects the declared tool metadata only.
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. minimal is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| search | no tags | |
| fts | no tags | |
| semantic_search | no tags | |
| similar | no tags | |
| citation | no tags | |
| cluster | no tags | |
| opinion | no tags | |
| citations | no tags | |
| parentheticals | no tags | |
| treatment | no tags | |
| brief_check | no tags | |
| statute | no tags | |
| statute_search | no tags | |
| statute_citing | no tags | |
| corrections_policy | no tags | |
| deadline | no tags | |
| sources | no tags |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
The public result for this release does not print the flow graph, so there is nothing to show here. That is not the same as "no paths were found": what the scan did read is above, under coverage.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.0.1.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish GLO Law can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.