cellar-wrapper
A community-maintained MCP server that simplifies access to EU legal and legislative data from the CELLAR service, supporting lookups, metadata retrieval, relation checks, and monitoring.
README
cellar-wrapper
cellar-wrapper helps you get legal and legislative data from the EU Publications Office CELLAR service in a simpler, more practical way.
You can use it:
- as a Python library,
- from the command line,
- and, if needed, as an MCP server for AI/tool integrations.
This project is community-maintained and unofficial. It is not affiliated with, endorsed by, or operated by the European Union or the Publications Office of the European Union.
Important status
This is an early-stage project.
The Python API, CLI commands, MCP interface, and response shapes may change. Do not treat the current interface as final or stable.
What it is for
The project is meant for people who need to:
- look up an EU act by CELEX number,
- fetch basic metadata for an act,
- check relations such as amendments, repeals, citations, and related case law,
- monitor whether something new appeared after a given date,
- download text or legislative summaries,
- search acts by title, EuroVoc, or subject matter.
In short: it is a practical access layer over CELLAR for legal research, compliance work, and structured data collection.
Current state and limitations
This is a hobby project, not an official product.
Before using it seriously, keep in mind:
- the project is still evolving, so commands and outputs may change,
- some data comes directly from CELLAR and can be incomplete, sparse, or inconsistent,
- not every legal question maps neatly to one command,
- MCP support exists, but the main practical use today is still Python and the CLI,
Installation
Requires Python 3.11 or newer.
If you want the published package, install the library and CLI with:
pip install cellar-wrapper
If you want the current repository version instead, install directly from GitHub:
pip install "git+https://github.com/Kymylyy/cellar-wrapper.git"
For library, CLI, and MCP support:
pip install "cellar-wrapper[mcp]"
Or from GitHub with the MCP extra:
pip install "cellar-wrapper[mcp] @ git+https://github.com/Kymylyy/cellar-wrapper.git"
Quick use from the command line
For most people, the CLI is the easiest way to start.
Check that the CLI is installed:
cellar --version
Resolve a CELEX number:
cellar lookup resolve-celex --celex 32022R2554
Get metadata for one act:
cellar lookup get-act --celex 32022R2554
Check amendments:
cellar relations get-amendments --celex 32022R2554 --limit 50
Check what is new since a date:
cellar monitoring new-citations --celex 32022R2554 --since 2025-01-01
The CLI returns JSON. On success:
{"ok": true, "data": {...}}
On error:
{"ok": false, "error": {"type": "CellarValidationError", "message": "...", "details": {...}}}
Quick use from Python
from cellar_wrapper import CellarClient
with CellarClient() as client:
act = client.get_act("32022R2554")
print(act.celex, act.title)
Help, bugs, and security
If something does not work, or if you want to ask how to use the project:
- Support and usage questions: SUPPORT.md
- Bug reports and feature requests: https://github.com/Kymylyy/cellar-wrapper/issues
- Contributing: CONTRIBUTING.md
- Security reporting: SECURITY.md
Quick use as MCP
If you want to connect the project to an assistant or another tool through MCP, install the MCP extra:
pip install "cellar-wrapper[mcp]"
Run the server:
python -m cellar_wrapper.mcp_server
Check the version:
python -m cellar_wrapper.mcp_server --version
Environment variables supported by the MCP server:
CELLAR_MCP_BASE_URL_SPARQLCELLAR_MCP_BASE_URL_RESOURCECELLAR_MCP_USER_AGENTCELLAR_MCP_RETRIESCELLAR_MCP_TIMEOUT_CONNECTCELLAR_MCP_TIMEOUT_READCELLAR_MCP_TIMEOUT_WRITECELLAR_MCP_TIMEOUT_POOL
Where to look next
- Docs index: https://github.com/Kymylyy/cellar-wrapper/blob/main/docs/README.md
- Command guide: https://github.com/Kymylyy/cellar-wrapper/blob/main/docs/COMMAND_GUIDE.md
- Curated examples: https://github.com/Kymylyy/cellar-wrapper/blob/main/docs/CONTRACT_EXAMPLES.md
- Contract reference: https://github.com/Kymylyy/cellar-wrapper/blob/main/docs/CONTRACT_REFERENCE.md
For contributors
Main local checks:
ruff check
mypy
pytest -m "not live"
python -m build --sdist --wheel
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.