mcpbeat

Eu Legislation

lawve-ai/eu-legislation

Access EU law. Search and retrieve Directives, Regulations, Treaties and CJEU case law from EUR-Lex.

6k tokens
context cost
the whole folder, loaded on every use
2
files
instructions only
0
copies elsewhere
how many repositories repackaged it
616
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/lawve-ai/awesome-legal-skills --skill EU-Legislation

What comes with it

1 090 bytes besides the instruction
README.md

What it tells the agent to use

found in the instruction text
Bash runs shell commands — read the instruction before connecting
WebFetch fetches pages from the network
WebSearch reads your files

The instruction itself

49 sections, as written by the author

EU Legislation & Case Law

Access EU law directly. Search and retrieve Directives, Regulations, Decisions, Treaties and CJEU case law from EUR-Lex.

Capabilities

| Action | Method |

|-------------------------------------------|-----------------|

| Search legislation/case law | EUR-Lex Search |

| Document info, status, modifications | EUR-Lex /ALL/ |

| Procedure history | EUR-Lex /HIS/ |

| National transposition status | EUR-Lex /NIM/ |

| National transposition full text | Official National Databases (27 MS) |


Best for: Finding documents by concept, topic, or keyword.

URL Pattern

https://eur-lex.europa.eu/search.html?scope=EURLEX&text=QUERY&lang=LANG&type=quick&locale=LOCALE

Languages (All 24 Official EU Languages)

| Language | Code | Native Name |

|-------------|------|--------------------|

| Bulgarian | bg | Български |

| Czech | cs | Čeština |

| Danish | da | Dansk |

| Dutch | nl | Nederlands |

| English | en | English |

| Estonian | et | Eesti keel |

| Finnish | fi | Suomi |

| French | fr | Français |

| German | de | Deutsch |

| Greek | el | Ελληνικά |

| Croatian | hr | Hrvatski |

| Hungarian | hu | Magyar |

| Irish | ga | Gaeilge |

| Italian | it | Italiano |

| Latvian | lv | Latviešu valoda |

| Lithuanian | lt | Lietuvių kalba |

| Maltese | mt | Malti |

| Polish | pl | Polski |

| Portuguese | pt | Português |

| Romanian | ro | Română |

| Slovak | sk | Slovenčina |

| Slovenian | sl | Slovenščina |

| Spanish | es | Español |

| Swedish | sv | Svenska |

Use code for both lang= and locale= parameters.

Document Types (Form)

When reading search results, identify the document type from the "Form" field:

| Form | Type | Description |

|-----------------------------------|----------|--------------------------------|

| Judgment | JUDG | CJEU/General Court judgment |

| Opinion of the Advocate General | OPIN_AG | AG conclusions |

| Directive | DIR | EU Directive |

| Regulation | REG | EU Regulation |

| Decision | DEC | EU Decision |

| Treaty | TREATY | EU Treaty |

| Proposal | PROP | Commission proposal |

Note: Prefer broad searches WITHOUT FM_CODED filter to catch more results. Filter by reading the Form field in results instead.

Examples

# Broad search (recommended - catches all document types)
https://eur-lex.europa.eu/search.html?scope=EURLEX&text=cookies+consent&lang=en&type=quick&locale=en

# Search in French
https://eur-lex.europa.eu/search.html?scope=EURLEX&text=protection+donnees&lang=fr&type=quick&locale=fr

# Search CSRD
https://eur-lex.europa.eu/search.html?scope=EURLEX&text=CSRD&lang=en&type=quick&locale=en

Pagination

  • Page 1: No &page parameter
  • Page 2+: Add &page=2, &page=3, etc.

Method 2: EUR-Lex Document Pages (Advanced)

URL Patterns

Replace {CELEX} with the CELEX ID (e.g., 32016R0679).

| Page | URL Pattern | Content |

|-----------------|--------------------------------|--------------------------------------------|

| Full text | /TXT/?uri=CELEX:{CELEX} | Document text |

| All info | /ALL/?uri=CELEX:{CELEX} | Related docs, modifications, annexes |

| Procedure | /HIS/?uri=CELEX:{CELEX} | Legislative procedure history |

| Transposition | /NIM/?uri=CELEX:{CELEX} | National implementation (directives) |

Base URL

https://eur-lex.europa.eu/legal-content/{LANG}/{PAGE}/?uri=CELEX:{CELEX}

Examples

GDPR - All information:

https://eur-lex.europa.eu/legal-content/EN/ALL/?uri=CELEX:32016R0679

Whistleblower Directive - National transposition:

https://eur-lex.europa.eu/legal-content/EN/NIM/?uri=CELEX:32019L1937

CSRD - Procedure history:

https://eur-lex.europa.eu/legal-content/EN/HIS/?uri=CELEX:32022L2464

What You Can Find

/ALL/ Page (Document Information)

  • Legal status: In force, amended, repealed
  • Consolidated version date
  • ELI: European Legislation Identifier
  • Modifications: What acts modified this one
  • Modified by: List of amending acts with dates
  • Corrected by: Corrigenda
  • Related documents: Annexes, proposals, opinions

/NIM/ Page (National Implementation)

  • Transposition status by member state
  • National measures implementing the directive
  • Links to national legislation
  • Transposition deadlines

> IMPORTANT: EUR-Lex /NIM/ links to national texts often show "Texte non disponible". When this happens, use the Official National Legal Databases (see below) to retrieve the actual text.

/HIS/ Page (Procedure)

  • Legislative procedure (ordinary, special)
  • Commission proposal
  • Parliament readings
  • Council positions
  • Final adoption date

Cross-Reference Verification

EU law contains extensive cross-references. Always verify referenced texts to provide accurate answers.

Types of References

| Reference Type | Example | How to Verify |

|-------------------------------------|----------------------------------|------------------------------------------------------------------------------------|

| Internal article | "Article 21" | Re-read the full text |

| External act | "Regulation (EU) 2016/679" | GoodLegal API or EUR-Lex /TXT/ |

| Annex | "Annex I, Part B" | EUR-Lex /ALL/ page |

| Implementing act (Art. 291 TFEU) | "Commission Implementing Regulation" | EUR-Lex /ALL/ → "Internal procedures based on this legislative basic act" |

| Delegated act (Art. 290 TFEU) | "Commission Delegated Regulation" | EUR-Lex /ALL/ → "Internal procedures based on this legislative basic act" |

| CJEU case law | "Case C-xxx/xx" | EUR-Lex /ALL/ → "Affected by case" |

Verification Workflow

Reading EU text
    │
    ├─► Found "Article X" reference?
    │       └─► WebFetch same document, extract Article X
    │
    ├─► Found "Directive/Regulation XXXX/XXX" reference?
    │       └─► GoodLegal API with CELEX ID
    │           OR WebFetch EUR-Lex /TXT/ page
    │
    ├─► Found "Annex" reference?
    │       └─► WebFetch EUR-Lex /ALL/ page
    │           Look for "Annexes" section
    │
    └─► Need related/implementing acts?
            └─► WebFetch EUR-Lex /ALL/ page
                Look for:
                - "Implemented by"
                - "Delegated acts"
                - "Related documents"
                - "Based on"

The /ALL/ page shows the complete document ecosystem:

https://eur-lex.europa.eu/legal-content/EN/ALL/?uri=CELEX:{CELEX}

What to look for:

| EUR-Lex Label | Contains |

|-----------------------------------------------------------|-------------------------------------------------------------------|

| Legal basis | Treaties (Art. 290, 291 TFEU), parent legislation |

| Internal procedures based on this legislative basic act | Implementing acts (Art. 291 TFEU) and Delegated acts (Art. 290 TFEU) |

| Modified by | Amending acts with dates and affected subdivisions |

| Modifies | Acts that this document amends |

| Corrected by | Corrigenda (language-specific corrections) |

| Subsequent related instruments | Follow-up legislation, related acts |

| Affected by case | CJEU judgments interpreting this act |

| Consolidated text | Link to consolidated version with all amendments |

Note: Implementing acts (uniform application conditions) and Delegated acts (supplement/amend non-essential elements) are often grouped together under "Internal procedures".

User asks: "What are the penalties under Directive 20XX/XXX?"

Step 1: Get full text
        → GoodLegal API: "320XXLXXXX"

Step 2: Find sanctions article (e.g., Article 30)
        → WebFetch EUR-Lex /TXT/ page, extract Article 30
        → Found: "Member States shall lay down penalties..."
        → References Article 5 (obligations) and Article 10 (reporting)

Step 3: Verify internal references
        → WebFetch same page, extract Articles 5 and 10
        → Article 5: Main compliance obligations
        → Article 10: Notification requirements

Step 4: Check for external references
        → Article 30 references Regulation (EU) 20YY/YYY
        → GoodLegal API: "320YYRYYYY"
        → Extract relevant provisions

Step 5: Check /ALL/ for implementing acts
        → WebFetch EUR-Lex /ALL/?uri=CELEX:320XXLXXXX
        → Found: Commission Implementing Regulation 20ZZ/ZZZ
        → Retrieve and review implementing details

Reference Chain Documentation

When answering legal questions, document the reference chain:

**Question:** What are the reporting obligations under Directive 20XX/XXX?

**Answer:**
- Article 10: Notification within 72 hours
- Article 11: Content requirements (see Annex II)

**Internal references verified:**
- Article 5 → Scope of application
- Annex II → Notification template

**External references verified:**
- Regulation 20YY/YYY Article 15 → Definitions
- Commission Implementing Regulation 20ZZ/ZZZ → Technical standards

**Related acts from /ALL/ page:**
- 3 implementing regulations
- 1 delegated act
- 2 amending acts

Decision Flow

User request
    │
    ├─► Full text needed?
    │       └─► GoodLegal API (CELEX ID or reference)
    │
    ├─► Search by concept?
    │       └─► EUR-Lex Search via WebFetch
    │           Read Form field to identify document type
    │
    ├─► Legal status / modifications?
    │       └─► EUR-Lex /ALL/ page via WebFetch
    │
    ├─► Transposition status?
    │       └─► EUR-Lex /NIM/ page via WebFetch
    │
    └─► Legislative procedure?
            └─► EUR-Lex /HIS/ page via WebFetch

Parallel Search Strategy

For comprehensive research, launch multiple WebFetch calls in parallel:

# Search pages 1-5 simultaneously
Page 1: .../search.html?scope=EURLEX&text=QUERY&lang=en&type=quick&locale=en
Page 2: .../search.html?scope=EURLEX&text=QUERY&lang=en&type=quick&locale=en&page=2
Page 3: .../search.html?scope=EURLEX&text=QUERY&lang=en&type=quick&locale=en&page=3
Page 4: .../search.html?scope=EURLEX&text=QUERY&lang=en&type=quick&locale=en&page=4
Page 5: .../search.html?scope=EURLEX&text=QUERY&lang=en&type=quick&locale=en&page=5

Then filter results by Form field (Judgment, Directive, Regulation, etc.) based on user needs.


Common References

Legislation

| Name | CELEX ID |

|---------------|-------------|

| GDPR | 32016R0679 |

| AI Act | 32024R1689 |

| DSA | 32022R2065 |

| DMA | 32022R1925 |

| NIS2 | 32022L2555 |

| Whistleblower | 32019L1937 |

| ePrivacy | 32002L0058 |

| CSRD | 32022L2464 |

Key CJEU Cases

| Name | Case Number | Topic |

|-------------------|-------------|--------------------------|

| Costa v ENEL | C-6/64 | Primacy |

| Google Spain | C-131/12 | Right to be forgotten |

| Schrems II | C-311/18 | Data transfers |

| Planet49 | C-673/17 | Cookie consent |


Output Format

Legislation

**Directive (EU) 2019/1937 — Whistleblower Protection**
Status: In force (consolidated: 25/07/2024)
https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32019L1937

Modifications: 6 amending acts
Transposition: 27/27 Member States

Case Law

**Case C-311/18 — Schrems II**
Date: 16/07/2020
Topic: Data transfers, Privacy Shield invalidation
https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:62018CJ0311

Error Handling

No Results

  • Try different search terms
  • Try both EN and User's language
  • Use EUR-Lex Search as fallback
  • Check CELEX ID format

EUR-Lex National Text Unavailable

When EUR-Lex /NIM/ links show "Texte non disponible" or "Text not available", follow the National Transposition Text Retrieval workflow below.


Method 3: National Transposition Texts

Problem

EUR-Lex /NIM/ pages list national transposition measures but the links to actual text often fail ("Texte non disponible" / "Text not available"). The /NIM/ page provides:

  • Name of the national measure (e.g., "Decreto Legislativo 10 marzo 2023, n. 24")
  • Official Journal reference (e.g., "Gazzetta Ufficiale n. 63 del 15 marzo 2023")
  • Transposition deadline

Workflow

Step 1: EUR-Lex /NIM/ Page
        │
        └─► WebFetch https://eur-lex.europa.eu/legal-content/EN/NIM/?uri=CELEX:{CELEX}
            Extract: measure name, Official Journal reference, date
        │
        ▼
Step 2: Try EUR-Lex Link
        │
        └─► Click/fetch the link provided on the /NIM/ page
            (e.g., https://eur-lex.europa.eu/legal-content/FR/TXT/?uri=NIM:202302012)
        │
        ├─► Text available? → USE IT ✓
        │
        └─► "Texte non disponible" / "Text not available"?
                │
                ▼
Step 3: Official National Database (see table below)
        │
        └─► Use the measure reference from Step 1
            Search in the official national legal database
            (e.g., Normattiva for Italy, Légifrance for France)
        │
        ├─► Text found? → USE IT ✓
        │
        └─► Not found?
                │
                ▼
Step 4: Web Search (last resort)
        │
        └─► Search for official sources using:
            - Measure name + number + year
            - Official Journal reference
            - Filter by official government domains (.gov, .gv, .gouv, etc.)

Sources verified via N-Lex, European e-Justice Portal, and European Forum of Official Gazettes.

| Country | Code | Official Database | URL |

|---------|------|-------------------|-----|

| Austria | AT | RIS (Rechtsinformationssystem) | https://www.ris.bka.gv.at |

| Belgium | BE | Belgisch Staatsblad / Moniteur Belge | https://www.ejustice.just.fgov.be |

| Bulgaria | BG | Държавен вестник (State Gazette) | https://dv.parliament.bg |

| Croatia | HR | Narodne Novine | https://narodne-novine.nn.hr |

| Cyprus | CY | CyLaw + Official Gazette | http://www.cylaw.org |

| Czechia | CZ | Sbírka zákonů / Zákony pro lidi | https://www.zakonyprolidi.cz |

| Denmark | DK | Retsinformation | https://www.retsinformation.dk |

| Estonia | EE | Riigi Teataja | https://www.riigiteataja.ee |

| Finland | FI | Finlex | https://www.finlex.fi |

| France | FR | Légifrance | https://www.legifrance.gouv.fr |

| Germany | DE | Gesetze im Internet | https://www.gesetze-im-internet.de |

| Greece | EL | Εφημερίδα της Κυβερνήσεως (ΦΕΚ) | https://www.et.gr |

| Hungary | HU | Nemzeti Jogszabálytár | https://njt.hu |

| Ireland | IE | Irish Statute Book | https://www.irishstatutebook.ie |

| Italy | IT | Normattiva / Gazzetta Ufficiale | https://www.normattiva.it |

| Latvia | LV | Likumi.lv | https://likumi.lv |

| Lithuania | LT | e-TAR (Teisės aktų registras) | https://www.e-tar.lt |

| Luxembourg | LU | Legilux | https://legilux.public.lu |

| Malta | MT | Laws of Malta | https://legislation.mt |

| Netherlands | NL | Wetten.overheid.nl | https://wetten.overheid.nl |

| Poland | PL | ISAP (Sejm) | https://isap.sejm.gov.pl |

| Portugal | PT | DRE (Diário da República) | https://dre.pt |

| Romania | RO | Legislatie.just.ro | https://legislatie.just.ro |

| Slovakia | SK | Slov-Lex | https://www.slov-lex.sk |

| Slovenia | SI | PISRS | http://www.pisrs.si |

| Spain | ES | BOE (Boletín Oficial del Estado) | https://www.boe.es |

| Sweden | SE | Lagrummet / Svensk författningssamling | https://lagrummet.se |

Country-Specific URL Patterns

Italy (Normattiva)
# By URN (preferred)
https://www.normattiva.it/uri-res/N2Ls?urn:nir:stato:decreto.legislativo:YYYY-MM-DD;NUM

# Example: D.Lgs. 24/2023 (Whistleblower)
https://www.normattiva.it/uri-res/N2Ls?urn:nir:stato:decreto.legislativo:2023-03-10;24

# By Gazzetta Ufficiale
https://www.gazzettaufficiale.it/eli/id/YYYY/MM/DD/XXXXXXXX/sg
France (Légifrance)
# By JORF text number
https://www.legifrance.gouv.fr/jorf/id/JORFTEXT{NUMBER}

# By law number (search)
https://www.legifrance.gouv.fr/search/all?tab_selection=all&searchField=ALL&query=loi+{YEAR}-{NUMBER}

# Example: Loi Waserman 2022-401
https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000045388745
Germany (Gesetze im Internet)
# By law abbreviation
https://www.gesetze-im-internet.de/{abbrev}/

# Federal Law Gazette (BGBl)
https://www.bgbl.de/xaver/bgbl/start.xav
Spain (BOE)
# By BOE reference
https://www.boe.es/buscar/doc.php?id=BOE-A-YYYY-NNNNN

# By law reference
https://www.boe.es/buscar/act.php?id=BOE-A-YYYY-NNNNN
Netherlands (Overheid.nl)
# By BWBR number
https://wetten.overheid.nl/BWBR{NUMBER}

# By Staatsblad reference
https://zoek.officielebekendmakingen.nl/stb-{YEAR}-{NUMBER}
Poland (ISAP)
# By Dz.U. reference
https://isap.sejm.gov.pl/isap.nsf/DocDetails.xsp?id=WDU{YEAR}{NUMBER}

Example: Retrieving Italian Transposition Text

User asks: "Get the Italian transposition of the Whistleblower Directive"

Step 1: Check EUR-Lex /NIM/
        → WebFetch https://eur-lex.europa.eu/legal-content/EN/NIM/?uri=CELEX:32019L1937
        → Found: "Decreto Legislativo 10 marzo 2023, n. 24"
                 "Gazzetta Ufficiale n. 63 del 15 marzo 2023"

Step 2: Try EUR-Lex link
        → WebFetch the provided link
        → Result: "Texte non disponible"

Step 3: Go to Normattiva (official Italian database)
        → WebFetch https://www.normattiva.it/uri-res/N2Ls?urn:nir:stato:decreto.legislativo:2023-03-10;24
        → SUCCESS: Full text of D.Lgs. 24/2023 retrieved ✓

If Step 3 fails:
Step 4: Web search (last resort)
        → WebSearch "D.Lgs. 24/2023 whistleblowing site:normattiva.it OR site:gazzettaufficiale.it"

Regulatory Authority Websites

For implementation guidelines, interpretive guidance, and FAQs, also check the national regulatory authority responsible for the directive:

| Directive | Topic | Key National Authorities |

|-----------|-------|--------------------------|

| 2019/1937 (Whistleblower) | Anti-corruption | IT: ANAC, FR: Défenseur des droits, DE: BfJ |

| 2016/679 (GDPR) | Data protection | IT: Garante Privacy, FR: CNIL, DE: BfDI |

| 2022/2555 (NIS2) | Cybersecurity | IT: ACN, FR: ANSSI, DE: BSI |


CELEX Format Reference

Legislation: 3{YEAR}{TYPE}{NUMBER}

| Type | Code | Example |

|------------|------|-------------|

| Directive | L | 32019L1937 |

| Regulation | R | 32016R0679 |

| Decision | D | 32021D0914 |

Case Law: 6{YEAR}{COURT}{NUMBER}

| Court | Code | Example |

|------------------|------|-------------|

| Court of Justice | CJ | 62018CJ0311 |

| General Court | TJ | 62022TJ0354 |

| AG Opinion | CC | 62017CC0673 |

How to use it

Copy the folder

Take lawve-ai/eu-legislation from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.