Verified changes to watched EU acts, read-only, with each fact's source.
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.
List recorded changes whose `basis` date is on or after `since`, newest first, with each row's event and provision pages: `updated_on` (the event or its latest repair), `detected_on` (when the run saw the event) or `in_force` (the change's in-force date; rows without one are left out). `omitted` counts rows past `limit`. An empty list means no recorded change in the window has that date. Every list is complete for the watch window the record covers, from the oldest version an act was watched from to its newest, and says nothing about anything outside it. `disputed` means one of three independent signals (the text comparison, the EU's own amendment metadata, the amending act's instructions) disagreed; `dispute_reason` says which and how, and a dispute is a reading of the sources, not a judgement about the law. `applies_from: unknown` means no application date could be read deterministically, never that no date applies. Units named by only one signal are listed by name on their event (`metadata_only_units`, `instruction_only_units`), never as changes. Not legal advice: this output is machine-computed from published texts, carries no lawyer's review, and is engineering assistance only.
The earliest date, YYYY-MM-DD.
Act keys; all when omitted.
Which stored date to compare.
At most this many rows, 1 to 500.
Keep disputed rows.
List recorded changes whose `basis` date is on or after `since`, newest first, with each row's event and provision pages: `updated_on` (the event or its latest repair), `detected_on` (when the run saw the event) or `in_force` (the change's in-force date; rows without one are left out). `omitted` counts rows past `limit`. An empty list means no recorded change in the window has that date. Every list is complete for the watch window the record covers, from the oldest version an act was watched from to its newest, and says nothing about anything outside it. `disputed` means one of three independent signals (the text comparison, the EU's own amendment metadata, the amending act's instructions) disagreed; `dispute_reason` says which and how, and a dispute is a reading of the sources, not a judgement about the law. `applies_from: unknown` means no application date could be read deterministically, never that no date applies. Units named by only one signal are listed by name on their event (`metadata_only_units`, `instruction_only_units`), never as changes. Not legal advice: this output is machine-computed from published texts, carries no lawyer's review, and is engineering assistance only.
| Argument | Type | Description |
|---|---|---|
| acts | any | Act keys; all when omitted. |
| basis | string | Which stored date to compare. |
| limit | integer | At most this many rows, 1 to 500. |
| since* | string | The earliest date, YYYY-MM-DD. |
| include_disputed | boolean | Keep disputed rows. |
{
"type": "object",
"title": "changes_since_toolArguments",
"required": [
"since"
],
"properties": {
"acts": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Acts",
"default": null,
"description": "Act keys; all when omitted."
},
"basis": {
"enum": [
"updated_on",
"detected_on",
"in_force"
],
"type": "string",
"title": "Basis",
"default": "updated_on",
"description": "Which stored date to compare."
},
"limit": {
"type": "integer",
"title": "Limit",
"default": 50,
"description": "At most this many rows, 1 to 500."
},
"since": {
"type": "string",
"title": "Since",
"format": "date",
"description": "The earliest date, YYYY-MM-DD."
},
"include_disputed": {
"type": "boolean",
"title": "Include Disputed",
"default": true,
"description": "Keep disputed rows."
}
}
}Find touched provisions of one act whose canonical location string or stored heading contains `query`, each with its newest row. It never reads law text; an empty list means no touched provision of the act has that name in the window. Every list is complete for the watch window the record covers, from the oldest version an act was watched from to its newest, and says nothing about anything outside it. `disputed` means one of three independent signals (the text comparison, the EU's own amendment metadata, the amending act's instructions) disagreed; `dispute_reason` says which and how, and a dispute is a reading of the sources, not a judgement about the law. `applies_from: unknown` means no application date could be read deterministically, never that no date applies. Units named by only one signal are listed by name on their event (`metadata_only_units`, `instruction_only_units`), never as changes. Not legal advice: this output is machine-computed from published texts, carries no lawyer's review, and is engineering assistance only.
| Argument | Type | Description |
|---|---|---|
| act* | string | The act's key, or `corpus/key`, as `list_acts` gives it. |
| query* | string | Part of a location (`AR 5`) or a heading. |
{
"type": "object",
"title": "find_provisions_toolArguments",
"required": [
"act",
"query"
],
"properties": {
"act": {
"type": "string",
"title": "Act",
"description": "The act's key, or `corpus/key`, as `list_acts` gives it."
},
"query": {
"type": "string",
"title": "Query",
"description": "Part of a location (`AR 5`) or a heading."
}
}
}Find the entries that print a CAS or EC number, given with or without hyphens, in the newest version of each act the record holds, and every recorded change to them, each with its date, the amending act the change names and the file it was read from. It reports where a number appears and decides nothing about legal status; many entries name a group and print no number. Every list is complete for the watch window the record covers, from the oldest version an act was watched from to its newest, and says nothing about anything outside it. `disputed` means one of three independent signals (the text comparison, the EU's own amendment metadata, the amending act's instructions) disagreed; `dispute_reason` says which and how, and a dispute is a reading of the sources, not a judgement about the law. `applies_from: unknown` means no application date could be read deterministically, never that no date applies. Units named by only one signal are listed by name on their event (`metadata_only_units`, `instruction_only_units`), never as changes. Not legal advice: this output is machine-computed from published texts, carries no lawyer's review, and is engineering assistance only.
| Argument | Type | Description |
|---|---|---|
| identifier* | string | A CAS, EC or CLP Index number, hyphens optional. |
{
"type": "object",
"title": "find_substance_toolArguments",
"required": [
"identifier"
],
"properties": {
"identifier": {
"type": "string",
"title": "Identifier",
"description": "A CAS, EC or CLP Index number, hyphens optional."
}
}
}One change in full: the verbatim text before and after, each side cut at `max_chars` (1 to 50000) with a marker '[… N characters omitted, continue with offset=M]' and paged by `offset`; the cited sentences with their URLs; `changed_within`; the three signals with their detail; `dispute_reason` and its sentence; `in_force`; `applies_from` with its reason; amending acts; the gate outcome or why it is unexplained. `occurrence` counts repeats of one location in one event from 1. Every list is complete for the watch window the record covers, from the oldest version an act was watched from to its newest, and says nothing about anything outside it. `disputed` means one of three independent signals (the text comparison, the EU's own amendment metadata, the amending act's instructions) disagreed; `dispute_reason` says which and how, and a dispute is a reading of the sources, not a judgement about the law. `applies_from: unknown` means no application date could be read deterministically, never that no date applies. Units named by only one signal are listed by name on their event (`metadata_only_units`, `instruction_only_units`), never as changes. Not legal advice: this output is machine-computed from published texts, carries no lawyer's review, and is engineering assistance only.
| Argument | Type | Description |
|---|---|---|
| act* | string | The act's key, or `corpus/key`, as `list_acts` gives it. |
| offset | integer | Where each side's page starts. |
| version* | string | The version an event produced, or its entry key, as stored. |
| location* | string |
One event of one act: its counts, repairs and stored corroboration (each signal's units, the pairwise agreements and disagreements), the units only the metadata or only the instruction parse names, and every row of the event. Every list is complete for the watch window the record covers, from the oldest version an act was watched from to its newest, and says nothing about anything outside it. `disputed` means one of three independent signals (the text comparison, the EU's own amendment metadata, the amending act's instructions) disagreed; `dispute_reason` says which and how, and a dispute is a reading of the sources, not a judgement about the law. `applies_from: unknown` means no application date could be read deterministically, never that no date applies. Units named by only one signal are listed by name on their event (`metadata_only_units`, `instruction_only_units`), never as changes. Not legal advice: this output is machine-computed from published texts, carries no lawyer's review, and is engineering assistance only.
| Argument | Type | Description |
|---|---|---|
| act* | string | The act's key, or `corpus/key`, as `list_acts` gives it. |
| version* | string | The version an event produced, or its entry key, as stored. |
{
"type": "object",
"title": "get_event_toolArguments",
"required": [
"act",
"version"
],
"properties": {
"act": {
"type": "string",
"title": "Act",
"description": "The act's key, or `corpus/key`, as `list_acts` gives it."
},
"version": {
"type": "string",
"title": "Version",
"description": "The version an event produced, or its entry key, as stored."
}
}
}List the acts the record holds, with each act's label, aliases and sector from the site catalogue, its newest version, `updated_on` and the counts its index carries. `query` matches names case-insensitively; `domain` matches the catalogue's sector. An empty list means no held act matches. Every list is complete for the watch window the record covers, from the oldest version an act was watched from to its newest, and says nothing about anything outside it. `disputed` means one of three independent signals (the text comparison, the EU's own amendment metadata, the amending act's instructions) disagreed; `dispute_reason` says which and how, and a dispute is a reading of the sources, not a judgement about the law. `applies_from: unknown` means no application date could be read deterministically, never that no date applies. Units named by only one signal are listed by name on their event (`metadata_only_units`, `instruction_only_units`), never as changes. Not legal advice: this output is machine-computed from published texts, carries no lawyer's review, and is engineering assistance only.
| Argument | Type | Description |
|---|---|---|
| query | any | Part of a key, title or alias. |
| domain | any | A catalogue sector. |
{
"type": "object",
"title": "list_acts_toolArguments",
"properties": {
"query": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Query",
"default": null,
"description": "Part of a key, title or alias."
},
"domain": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Domain",
"default": null,
"description": "A catalogue sector."
}
}
}Disputed rows grouped by their stored `dispute_reason`, each group with the sentence the site prints for that code. `omitted` counts rows past `limit`. An empty list means no recorded change in the window is disputed for that filter. Every list is complete for the watch window the record covers, from the oldest version an act was watched from to its newest, and says nothing about anything outside it. `disputed` means one of three independent signals (the text comparison, the EU's own amendment metadata, the amending act's instructions) disagreed; `dispute_reason` says which and how, and a dispute is a reading of the sources, not a judgement about the law. `applies_from: unknown` means no application date could be read deterministically, never that no date applies. Units named by only one signal are listed by name on their event (`metadata_only_units`, `instruction_only_units`), never as changes. Not legal advice: this output is machine-computed from published texts, carries no lawyer's review, and is engineering assistance only.
| Argument | Type | Description |
|---|---|---|
| act | any | One act's key; all when omitted. |
| limit | integer | At most this many rows, 1 to 2000. |
| reason | any | One `dispute_reason` code. |
{
"type": "object",
"title": "list_disputed_toolArguments",
"properties": {
"act": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Act",
"default": null,
"description": "One act's key; all when omitted."
},
"limit": {
"type": "integer",
"title": "Limit",
"default": 200,
"description": "At most this many rows, 1 to 2000."
},
"reason": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Reason",
"default": null,
"description": "One `dispute_reason` code."
}
}
}Every recorded change to one top-level provision, newest first, with the window the record covers for the act. An empty list means no recorded change to that provision in the window, and the result says so in words. Every list is complete for the watch window the record covers, from the oldest version an act was watched from to its newest, and says nothing about anything outside it. `disputed` means one of three independent signals (the text comparison, the EU's own amendment metadata, the amending act's instructions) disagreed; `dispute_reason` says which and how, and a dispute is a reading of the sources, not a judgement about the law. `applies_from: unknown` means no application date could be read deterministically, never that no date applies. Units named by only one signal are listed by name on their event (`metadata_only_units`, `instruction_only_units`), never as changes. Not legal advice: this output is machine-computed from published texts, carries no lawyer's review, and is engineering assistance only.
| Argument | Type | Description |
|---|---|---|
| act* | string | The act's key, or `corpus/key`, as `list_acts` gives it. |
| location* | string | A canonical location string such as `AR 50`, as the record stores it. |
{
"type": "object",
"title": "provision_history_toolArguments",
"required": [
"act",
"location"
],
"properties": {
"act": {
"type": "string",
"title": "Act",
"description": "The act's key, or `corpus/key`, as `list_acts` gives it."
},
"location": {
"type": "string",
"title": "Location",
"description": "A canonical location string such as `AR 50`, as the record stores it."
}
}
}| A canonical location string such as `AR 50`, as the record stores it. |
| max_chars | integer | Characters per side, 1 to 50000. |
| occurrence | integer | Which repeat, from 1. |
{
"type": "object",
"title": "get_change_toolArguments",
"required": [
"act",
"version",
"location"
],
"properties": {
"act": {
"type": "string",
"title": "Act",
"description": "The act's key, or `corpus/key`, as `list_acts` gives it."
},
"offset": {
"type": "integer",
"title": "Offset",
"default": 0,
"description": "Where each side's page starts."
},
"version": {
"type": "string",
"title": "Version",
"description": "The version an event produced, or its entry key, as stored."
},
"location": {
"type": "string",
"title": "Location",
"description": "A canonical location string such as `AR 50`, as the record stores it."
},
"max_chars": {
"type": "integer",
"title": "Max Chars",
"default": 8000,
"description": "Characters per side, 1 to 50000."
},
"occurrence": {
"type": "integer",
"title": "Occurrence",
"default": 1,
"description": "Which repeat, from 1."
}
}
}