The law of nearly every country on earth, any date: read it, see what changed it, check citations.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
For a case commenced on one date, which later changes to a provision reach it (from any scope the record holds, such as "cases commenced on or after"), and the text that applies to it.
A provision file, for example united-states/federal/usc/title-11/1182.md, germany/bund/acts/grundgesetz/artikel/016a.md or united-kingdom/uk/legislation/uksi/2014/1530/regulation/13.md. Use find_provision to look one up.
The day the case (or matter) was commenced, YYYY-MM-DD.
An in-force date, YYYY-MM-DD, or "today". Defaults to today.
Also give the full text of every period (long); the changes between periods come anyway.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http global-law https://global-law.lexifina.com/mcp
For a case commenced on one date, which later changes to a provision reach it (from any scope the record holds, such as "cases commenced on or after"), and the text that applies to it.
| Argument | Type | Description |
|---|---|---|
| date | string | An in-force date, YYYY-MM-DD, or "today". Defaults to today. |
| path* | string | A provision file, for example united-states/federal/usc/title-11/1182.md, germany/bund/acts/grundgesetz/artikel/016a.md or united-kingdom/uk/legislation/uksi/2014/1530/regulation/13.md. Use find_provision to look one up. |
| commenced* | string | The day the case (or matter) was commenced, YYYY-MM-DD. |
| include_period_texts | boolean | Also give the full text of every period (long); the changes between periods come anyway. |
{
"type": "object",
"required": [
"path",
"commenced"
],
"properties": {
"date": {
"type": "string",
"description": "An in-force date, YYYY-MM-DD, or \"today\". Defaults to today."
},
"path": {
"type": "string",
"description": "A provision file, for example united-states/federal/usc/title-11/1182.md, germany/bund/acts/grundgesetz/artikel/016a.md or united-kingdom/uk/legislation/uksi/2014/1530/regulation/13.md. Use find_provision to look one up."
},
"commenced": {
"type": "string",
"description": "The day the case (or matter) was commenced, YYYY-MM-DD."
},
"include_period_texts": {
"type": "boolean",
"description": "Also give the full text of every period (long); the changes between periods come anyway."
}
},
"additionalProperties": false
}Every provision whose text differs between two dates, in every jurisdiction or one, with the laws that changed them.
| Argument | Type | Description |
|---|---|---|
| kind | string | law (default): bodies of law only. judgments: court decisions (case law) only. Case law is also read when the jurisdiction names it (a path ending in /caselaw). |
| date_a* | string | An in-force date, YYYY-MM-DD, or "today". Defaults to today. |
| date_b* | string | An in-force date, YYYY-MM-DD, or "today". Defaults to today. |
| jurisdiction | string | Optional jurisdiction prefix, for example "germany", "united-states/federal" or "united-kingdom/uk/legislation/uksi". |
{
"type": "object",
"required": [
"date_a",
"date_b"
],
"properties": {
"kind": {
"enum": [
"law",
"judgments"
],
"type": "string",
"description": "law (default): bodies of law only. judgments: court decisions (case law) only. Case law is also read when the jurisdiction names it (a path ending in /caselaw)."
},
"date_a": {
"type": "string",
"description": "An in-force date, YYYY-MM-DD, or \"today\". Defaults to today."
},
"date_b": {
"type": "string",
"description": "An in-force date, YYYY-MM-DD, or \"today\". Defaults to today."
},
"jurisdiction": {
"type": "string",
"description": "Optional jurisdiction prefix, for example \"germany\", \"united-states/federal\" or \"united-kingdom/uk/legislation/uksi\"."
}
},
"additionalProperties": false
}For case law: a court applied a provision on the day it decided. Is that text still the text in force (today, or on a date), and if not, which laws changed it and how? Also lists judgments the record holds for the provision.
| Argument | Type | Description |
|---|---|---|
| date | string | An in-force date, YYYY-MM-DD, or "today". Defaults to today. |
| path* | string | A provision file, for example united-states/federal/usc/title-11/1182.md, germany/bund/acts/grundgesetz/artikel/016a.md or united-kingdom/uk/legislation/uksi/2014/1530/regulation/13.md. Use find_provision to look one up. |
| decided | string | The day the decision was made, YYYY-MM-DD. |
| case_name | string | Optional, to label the answer. |
| max_results | integer | Recorded judgments to check (default 50). |
{
"type": "object",
"required": [
"path"
],
"properties": {
"date": {
"type": "string",
"description": "An in-force date, YYYY-MM-DD, or \"today\". Defaults to today."
},
"path": {
"type": "string",
"description": "A provision file, for example united-states/federal/usc/title-11/1182.md, germany/bund/acts/grundgesetz/artikel/016a.md or united-kingdom/uk/legislation/uksi/2014/1530/regulation/13.md. Use find_provision to look one up."
},
"decided": {
"type": "string",
"description": "The day the decision was made, YYYY-MM-DD."
},
"case_name": {
"type": "string",
"description": "Optional, to label the answer."
},
"max_results": {
"type": "integer",
"description": "Recorded judgments to check (default 50)."
}
},
"additionalProperties": false
}How a provision changed between two dates: a word-level diff and the laws that took effect in between.
| Argument | Type | Description |
|---|---|---|
| path* | string | A provision file, for example united-states/federal/usc/title-11/1182.md, germany/bund/acts/grundgesetz/artikel/016a.md or united-kingdom/uk/legislation/uksi/2014/1530/regulation/13.md. Use find_provision to look one up. |
| date_a* | string | An in-force date, YYYY-MM-DD, or "today". Defaults to today. |
| date_b* | string | An in-force date, YYYY-MM-DD, or "today". Defaults to today. |
| offset | integer | Where the part starts, in characters: the offset the previous part gave for the next one (default 0). |
| max_chars | integer | Longest part of the text in one answer (default 40000, at least 1000, at most 100000). A longer text comes in parts. |
{
"type": "object",
"required": [
"path",
"date_a",
"date_b"
],
"properties": {
"path": {
"type": "string",
"description": "A provision file, for example united-states/federal/usc/title-11/1182.md, germany/bund/acts/grundgesetz/artikel/016a.md or united-kingdom/uk/legislation/uksi/2014/1530/regulation/13.md. Use find_provision to look one up."
},
"date_a": {
"type": "string",
"description": "An in-force date, YYYY-MM-DD, or \"today\". Defaults to today."
},
"date_b": {
"type": "string",
"description": "An in-force date, YYYY-MM-DD, or \"today\". Defaults to today."
},
"offset": {
"type": "integer",
"description": "Where the part starts, in characters: the offset the previous part gave for the next one (default 0)."
},
"max_chars": {
"type": "integer",
"description": "Longest part of the text in one answer (default 40000, at least 1000, at most 100000). A longer text comes in parts."
}
},
"additionalProperties": false
}Find the file path of a provision by its number ("1182", "Art. 16a", "reg 13") or words from its heading ("debtor", "Asylrecht").
| Argument | Type | Description |
|---|---|---|
| query* | string | A section, article or regulation number, or heading words. |
| max_results | integer | At most this many (default 15). |
| jurisdiction | string | Optional jurisdiction prefix, for example "germany", "united-states/federal" or "united-kingdom/uk/legislation/uksi". |
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "A section, article or regulation number, or heading words."
},
"max_results": {
"type": "integer",
"description": "At most this many (default 15)."
},
"jurisdiction": {
"type": "string",
"description": "Optional jurisdiction prefix, for example \"germany\", \"united-states/federal\" or \"united-kingdom/uk/legislation/uksi\"."
}
},
"additionalProperties": false
}The full record of a law's change: its commit message with every trailer (enacted, in force, published, sources, scope), the provisions it changed, and what it did to each one's words (a word diff, or "layout only", or "text moved between provisions"). One call answers "what did this law change"; no need to compare each provision.
| Argument | Type | Description |
|---|---|---|
| law | string | The law as it appears as author, for example "Pub. L. 117-151", "36. Änderung", "S.I. 2020/471". |
| commit | string | Or a corpus commit hash, for example from provision_history. |
| corpus | string | Optional jurisdiction prefix, for example "germany", "united-states/federal" or "united-kingdom/uk/legislation/uksi". |
| include_diffs | boolean | What the change did to each provision (default true; up to 60 provisions). |
| max_message_chars | integer | Cut each commit message at this many characters (default 3000). |
{
"type": "object",
"required": [],
"properties": {
"law": {
"type": "string",
"description": "The law as it appears as author, for example \"Pub. L. 117-151\", \"36. Änderung\", \"S.I. 2020/471\"."
},
"commit": {
"type": "string",
"description": "Or a corpus commit hash, for example from provision_history."
},
"corpus": {
"type": "string",
"description": "Optional jurisdiction prefix, for example \"germany\", \"united-states/federal\" or \"united-kingdom/uk/legislation/uksi\"."
},
"include_diffs": {
"type": "boolean",
"description": "What the change did to each provision (default true; up to 60 provisions)."
},
"max_message_chars": {
"type": "integer",
"description": "Cut each commit message at this many characters (default 3000)."
}
},
"additionalProperties": false
}Every law that took effect between two dates, across all jurisdictions or one, in the order they took effect.
| Argument | Type | Description |
|---|---|---|
| end* | string | An in-force date, YYYY-MM-DD, or "today". Defaults to today. |
| kind | string | law (default): bodies of law only. judgments: court decisions (case law) only. Case law is also read when the jurisdiction names it (a path ending in /caselaw). |
| start* | string | An in-force date, YYYY-MM-DD, or "today". Defaults to today. |
| max_results | integer | At most this many (default 200, at most 500). |
| jurisdiction | string | Optional jurisdiction prefix, for example "germany", "united-states/federal" or "united-kingdom/uk/legislation/uksi". |
{
"type": "object",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"description": "An in-force date, YYYY-MM-DD, or \"today\". Defaults to today."
},
"kind": {
"enum": [
"law",
"judgments"
],
"type": "string",
"description": "law (default): bodies of law only. judgments: court decisions (case law) only. Case law is also read when the jurisdiction names it (a path ending in /caselaw)."
},
"start": {
"type": "string",
"description": "An in-force date, YYYY-MM-DD, or \"today\". Defaults to today."
},
"max_results": {
"type": "integer",
"description": "At most this many (default 200, at most 500)."
},
"jurisdiction": {
"type": "string",
"description": "Optional jurisdiction prefix, for example \"germany\", \"united-states/federal\" or \"united-kingdom/uk/legislation/uksi\"."
}
},
"additionalProperties": false
}List every jurisdiction and body of law in the tree, with how far each record reaches and an example path. Start here.
| Argument | Type | Description |
|---|---|---|
| jurisdiction | string | Optional jurisdiction prefix, for example "germany", "united-states/federal" or "united-kingdom/uk/legislation/uksi". |
{
"type": "object",
"required": [],
"properties": {
"jurisdiction": {
"type": "string",
"description": "Optional jurisdiction prefix, for example \"germany\", \"united-states/federal\" or \"united-kingdom/uk/legislation/uksi\"."
}
},
"additionalProperties": false
}Browse a corpus: the provision files under a corpus or folder (for example united-states/federal/usc/title-11), with headings, as in force on a date. For a folder of acts or instruments, by_folder gives one row each with its title and last change; a partial name lists the folders that start with it (malta/national/acts/sl/586. for every instrument made under Cap. 586).
| Argument | Type | Description |
|---|---|---|
| date | string | An in-force date, YYYY-MM-DD, or "today". Defaults to today. |
| path* | string | A corpus, a folder inside one, or the start of a folder name. |
| by_folder | boolean | One row per sub-folder (an act or instrument) with its title and last change. |
| max_results | integer | At most this many (default 200). |
{
"type": "object",
"required": [
"path"
],
"properties": {
"date": {
"type": "string",
"description": "An in-force date, YYYY-MM-DD, or \"today\". Defaults to today."
},
"path": {
"type": "string",
"description": "A corpus, a folder inside one, or the start of a folder name."
},
"by_folder": {
"type": "boolean",
"description": "One row per sub-folder (an act or instrument) with its title and last change."
},
"max_results": {
"type": "integer",
"description": "At most this many (default 200)."
}
},
"additionalProperties": false
}When words came into the law and when they left it, at any date and in every jurisdiction: each change whose added or removed text contains them. Use it for things no longer in force (for example "COVID" in the Grundgesetz).
| Argument | Type | Description |
|---|---|---|
| kind | string | law (default): bodies of law only. judgments: court decisions (case law) only. Case law is also read when the jurisdiction names it (a path ending in /caselaw). |
| query* | string | |
| regex | boolean | |
| max_results | integer | At most this many (default 40). |
| jurisdiction | string | Optional jurisdiction prefix, for example "germany", "united-states/federal" or "united-kingdom/uk/legislation/uksi". |
{
"type": "object",
"required": [
"query"
],
"properties": {
"kind": {
"enum": [
"law",
"judgments"
],
"type": "string",
"description": "law (default): bodies of law only. judgments: court decisions (case law) only. Case law is also read when the jurisdiction names it (a path ending in /caselaw)."
},
"query": {
"type": "string"
},
"regex": {
"type": "boolean"
},
"max_results": {
"type": "integer",
"description": "At most this many (default 40)."
},
"jurisdiction": {
"type": "string",
"description": "Optional jurisdiction prefix, for example \"germany\", \"united-states/federal\" or \"united-kingdom/uk/legislation/uksi\"."
}
},
"additionalProperties": false
}Every law that changed a provision, oldest first, with its in-force, enacted or made, and published dates.
| Argument | Type | Description |
|---|---|---|
| path* | string | A provision file, for example united-states/federal/usc/title-11/1182.md, germany/bund/acts/grundgesetz/artikel/016a.md or united-kingdom/uk/legislation/uksi/2014/1530/regulation/13.md. Use find_provision to look one up. |
{
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"type": "string",
"description": "A provision file, for example united-states/federal/usc/title-11/1182.md, germany/bund/acts/grundgesetz/artikel/016a.md or united-kingdom/uk/legislation/uksi/2014/1530/regulation/13.md. Use find_provision to look one up."
}
},
"additionalProperties": false
}The text of a provision as it was in force on a date, with the law that last changed it, the next change, and any limit of the record that applies.
| Argument | Type | Description |
|---|---|---|
| date | string | An in-force date, YYYY-MM-DD, or "today". Defaults to today. |
| path* | string | A provision file, for example united-states/federal/usc/title-11/1182.md, germany/bund/acts/grundgesetz/artikel/016a.md or united-kingdom/uk/legislation/uksi/2014/1530/regulation/13.md. Use find_provision to look one up. |
| offset | integer | Where the part starts, in characters: the offset the previous part gave for the next one (default 0). |
| max_chars | integer | Longest part of the text in one answer (default 40000, at least 1000, at most 100000). A longer text comes in parts. |
| include_text | boolean | false for dates, laws, sources and notes only (default true). |
{
"type": "object",
"required": [
"path"
],
"properties": {
"date": {
"type": "string",
"description": "An in-force date, YYYY-MM-DD, or \"today\". Defaults to today."
},
"path": {
"type": "string",
"description": "A provision file, for example united-states/federal/usc/title-11/1182.md, germany/bund/acts/grundgesetz/artikel/016a.md or united-kingdom/uk/legislation/uksi/2014/1530/regulation/13.md. Use find_provision to look one up."
},
"offset": {
"type": "integer",
"description": "Where the part starts, in characters: the offset the previous part gave for the next one (default 0)."
},
"max_chars": {
"type": "integer",
"description": "Longest part of the text in one answer (default 40000, at least 1000, at most 100000). A longer text comes in parts."
},
"include_text": {
"type": "boolean",
"description": "false for dates, laws, sources and notes only (default true)."
}
},
"additionalProperties": false
}Read every citation in a piece of text (a brief, a judgment, an email) and resolve each to its provision, with its state on a date: in force or not, the law that last changed it, and the next change.
| Argument | Type | Description |
|---|---|---|
| date | string | An in-force date, YYYY-MM-DD, or "today". Defaults to today. |
| text* | string | Up to 50000 characters. |
| max_results | integer | At most this many distinct provisions are looked up (default 50, most 100). |
{
"type": "object",
"required": [
"text"
],
"properties": {
"date": {
"type": "string",
"description": "An in-force date, YYYY-MM-DD, or \"today\". Defaults to today."
},
"text": {
"type": "string",
"description": "Up to 50000 characters."
},
"max_results": {
"type": "integer",
"description": "At most this many distinct provisions are looked up (default 50, most 100)."
}
},
"additionalProperties": false
}Search the record of changes (each commit message: the law, its dates, what it did) rather than the text of the law. For example "temporary", "COVID", "Bundesrat".
| Argument | Type | Description |
|---|---|---|
| end | string | An in-force date, YYYY-MM-DD, or "today". Defaults to today. |
| kind | string | law (default): bodies of law only. judgments: court decisions (case law) only. Case law is also read when the jurisdiction names it (a path ending in /caselaw). |
| query* | string | |
| start | string | An in-force date, YYYY-MM-DD, or "today". Defaults to today. |
| max_results | integer | At most this many (default 30). |
| jurisdiction | string | Optional jurisdiction prefix, for example "germany", "united-states/federal" or "united-kingdom/uk/legislation/uksi". |
{
"type": "object",
"required": [
"query"
],
"properties": {
"end": {
"type": "string",
"description": "An in-force date, YYYY-MM-DD, or \"today\". Defaults to today."
},
"kind": {
"enum": [
"law",
"judgments"
],
"type": "string",
"description": "law (default): bodies of law only. judgments: court decisions (case law) only. Case law is also read when the jurisdiction names it (a path ending in /caselaw)."
},
"query": {
"type": "string"
},
"start": {
"type": "string",
"description": "An in-force date, YYYY-MM-DD, or \"today\". Defaults to today."
},
"max_results": {
"type": "integer",
"description": "At most this many (default 30)."
},
"jurisdiction": {
"type": "string",
"description": "Optional jurisdiction prefix, for example \"germany\", \"united-states/federal\" or \"united-kingdom/uk/legislation/uksi\"."
}
},
"additionalProperties": false
}Search the text of all the law in force on a date, across every jurisdiction or one. Plain text by default.
| Argument | Type | Description |
|---|---|---|
| date | string | An in-force date, YYYY-MM-DD, or "today". Defaults to today. |
| kind | string | law (default): bodies of law only. judgments: court decisions (case law) only. Case law is also read when the jurisdiction names it (a path ending in /caselaw). |
| query* | string | Words or a phrase; a regular expression if regex is true. |
| regex | boolean | |
| max_results | integer | Lines to return (default 30). |
| jurisdiction | string | Optional jurisdiction prefix, for example "germany", "united-states/federal" or "united-kingdom/uk/legislation/uksi". |
| case_sensitive | boolean |
{
"type": "object",
"required": [
"query"
],
"properties": {
"date": {
"type": "string",
"description": "An in-force date, YYYY-MM-DD, or \"today\". Defaults to today."
},
"kind": {
"enum": [
"law",
"judgments"
],
"type": "string",
"description": "law (default): bodies of law only. judgments: court decisions (case law) only. Case law is also read when the jurisdiction names it (a path ending in /caselaw)."
},
"query": {
"type": "string",
"description": "Words or a phrase; a regular expression if regex is true."
},
"regex": {
"type": "boolean"
},
"max_results": {
"type": "integer",
"description": "Lines to return (default 30)."
},
"jurisdiction": {
"type": "string",
"description": "Optional jurisdiction prefix, for example \"germany\", \"united-states/federal\" or \"united-kingdom/uk/legislation/uksi\"."
},
"case_sensitive": {
"type": "boolean"
}
},
"additionalProperties": false
}Which provisions rely on, cite or use the definitions of this one, on a date: those that cite it, and those that use a term it defines (for example the provisions that use "debtor in possession"), with the definition's scope ("In this subchapter"). Use it before a text search when asked what depends on a provision or its definitions; a change to this provision can change what they mean.
| Argument | Type | Description |
|---|---|---|
| date | string | An in-force date, YYYY-MM-DD, or "today". Defaults to today. |
| path* | string | A provision file, for example united-states/federal/usc/title-11/1182.md, germany/bund/acts/grundgesetz/artikel/016a.md or united-kingdom/uk/legislation/uksi/2014/1530/regulation/13.md. Use find_provision to look one up. |
| max_results | integer | Provisions per group (default 40). |
{
"type": "object",
"required": [
"path"
],
"properties": {
"date": {
"type": "string",
"description": "An in-force date, YYYY-MM-DD, or \"today\". Defaults to today."
},
"path": {
"type": "string",
"description": "A provision file, for example united-states/federal/usc/title-11/1182.md, germany/bund/acts/grundgesetz/artikel/016a.md or united-kingdom/uk/legislation/uksi/2014/1530/regulation/13.md. Use find_provision to look one up."
},
"max_results": {
"type": "integer",
"description": "Provisions per group (default 40)."
}
},
"additionalProperties": false
}Which law wrote each word (or each line) of a provision as it stood on a date, with a count of words per law.
| Argument | Type | Description |
|---|---|---|
| date | string | An in-force date, YYYY-MM-DD, or "today". Defaults to today. |
| path* | string | A provision file, for example united-states/federal/usc/title-11/1182.md, germany/bund/acts/grundgesetz/artikel/016a.md or united-kingdom/uk/legislation/uksi/2014/1530/regulation/13.md. Use find_provision to look one up. |
| offset | integer | Where the part starts, in characters: the offset the previous part gave for the next one (default 0). |
| max_chars | integer | Longest part of the text in one answer (default 40000, at least 1000, at most 100000). A longer text comes in parts. |
| granularity | string | word (default) or line. |
| include_runs | boolean | Also give each run of words with its law as a list (the marked text in the answer has the same). |
{
"type": "object",
"required": [
"path"
],
"properties": {
"date": {
"type": "string",
"description": "An in-force date, YYYY-MM-DD, or \"today\". Defaults to today."
},
"path": {
"type": "string",
"description": "A provision file, for example united-states/federal/usc/title-11/1182.md, germany/bund/acts/grundgesetz/artikel/016a.md or united-kingdom/uk/legislation/uksi/2014/1530/regulation/13.md. Use find_provision to look one up."
},
"offset": {
"type": "integer",
"description": "Where the part starts, in characters: the offset the previous part gave for the next one (default 0)."
},
"max_chars": {
"type": "integer",
"description": "Longest part of the text in one answer (default 40000, at least 1000, at most 100000). A longer text comes in parts."
},
"granularity": {
"enum": [
"word",
"line"
],
"type": "string",
"description": "word (default) or line."
},
"include_runs": {
"type": "boolean",
"description": "Also give each run of words with its law as a list (the marked text in the answer has the same)."
}
},
"additionalProperties": false
}What every jurisdiction in the tree looked like on one date: the last change in force in each, and the next.
| Argument | Type | Description |
|---|---|---|
| date | string | An in-force date, YYYY-MM-DD, or "today". Defaults to today. |
| kind | string | laws, judgments (case law) or all (the default). |
| jurisdiction | string | Optional jurisdiction prefix, for example "germany", "united-states/federal" or "united-kingdom/uk/legislation/uksi". |
{
"type": "object",
"required": [],
"properties": {
"date": {
"type": "string",
"description": "An in-force date, YYYY-MM-DD, or \"today\". Defaults to today."
},
"kind": {
"enum": [
"all",
"laws",
"judgments"
],
"type": "string",
"description": "laws, judgments (case law) or all (the default)."
},
"jurisdiction": {
"type": "string",
"description": "Optional jurisdiction prefix, for example \"germany\", \"united-states/federal\" or \"united-kingdom/uk/legislation/uksi\"."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 10, 2026.