Metadata-Version: 2.5
Name: europa-mcp
Version: 0.4.0
Summary: MCP server that lets AI assistants find and fetch official open data from EU institutions (Eurostat, European Commission, European Parliament, data.europa.eu) and European countries, with source and licence on every answer
Project-URL: Homepage, https://github.com/jadikar-arch/euro-data-mcp
Project-URL: Issues, https://github.com/jadikar-arch/euro-data-mcp/issues
Project-URL: Repository, https://github.com/jadikar-arch/euro-data-mcp
Project-URL: Changelog, https://github.com/jadikar-arch/euro-data-mcp/blob/main/CHANGELOG.md
Author: Munirdin Jadikar
License-Expression: EUPL-1.2
License-File: LICENSE
Keywords: data.europa.eu,european-parliament,eurostat,llm,mcp,open-data,statistics
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Requires-Python: >=3.12
Requires-Dist: fastmcp<5,>=4.1.0
Requires-Dist: httpx>=0.28.1
Requires-Dist: mcp>=2.3.0
Requires-Dist: platformdirs>=4.12.4
Description-Content-Type: text/markdown

# Europa: official European data for your AI assistant

Europa is an [MCP](https://modelcontextprotocol.io) server that lets Claude, ChatGPT, Copilot,
Cursor and other AI apps find and fetch **official open data** from Europe. You ask in plain
language; the assistant picks the right dataset, gets the latest figures and names the source.

| | Sources |
|---|---|
| 🇪🇺 **EU** | Eurostat, European Commission, European Parliament, data.europa.eu |
| 🇩🇪 **Germany** | Destatis, GovData |

Example questions: *"Compare unemployment in Germany, France and the Netherlands"*,
*"What was German inflation last month?"*, *"How did Parliament vote on 8 July?"*

> Independent open-source project (EUPL-1.2), not affiliated with the EU or any statistics office.
> Data is passed on unchanged, with a `source:` link and licence in every answer.

---

## Connect it

There are two ways to connect:

- **Desktop apps** (Claude Desktop, Claude Code, VS Code, Cursor) run Europa on your own computer.
- **Web apps** (claude.ai, ChatGPT) need Europa running on a server, reachable at a URL ending in `/mcp`.
  See [Host it online](https://github.com/jadikar-arch/euro-data-mcp#host-it-online).

### Desktop apps

Install [uv](https://docs.astral.sh/uv/getting-started/installation/) first:

```bash
# Mac / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
```

**Claude Desktop**: open **Settings → Developer → Edit Config**, add the following, then restart Claude completely:

```json
{
  "mcpServers": {
    "europa": {
      "command": "uvx",
      "args": ["europa-mcp"]
    }
  }
}
```

**Cursor**: put the same JSON in `~/.cursor/mcp.json`.

**VS Code (Copilot)**: create `.vscode/mcp.json`, then click **Start** and use Copilot Chat in **Agent** mode:

```json
{
  "servers": {
    "europa": { "type": "stdio", "command": "uvx", "args": ["europa-mcp"] }
  }
}
```

**Claude Code**:

```bash
claude mcp add europa -- uvx europa-mcp
```

**Any other MCP app**: run the command `uvx europa-mcp` (stdio).

### Web apps

**claude.ai**: **Customize → Connectors → Add custom connector**. Name it *Europa*, paste your
`https://<your-server>/mcp` URL and click **Add**. In a chat, enable it under **+ → Connectors**.

**ChatGPT**: **Settings → Apps → Advanced settings**, turn on **Developer mode**, then **Create**
a connector with your `https://<your-server>/mcp` URL and authentication **None**. Enable it in a chat.
(Custom connectors are not available on every ChatGPT plan.)

### Host it online

```bash
docker build -t europa-mcp .
docker run -p 8000:8000 europa-mcp   # endpoint: http://<host>:8000/mcp
```

Put it behind HTTPS (Cloud Run, Fly.io, Railway or a reverse proxy) and use `https://<host>/mcp`.
For a quick test, run `uvx europa-mcp --transport http`
and expose it with `cloudflared tunnel --url http://localhost:8000`.

---

## Tips

- The first question can take up to a minute while the dataset index downloads. After that it's fast.
- If the assistant doesn't use the tools, add *"use the europa tools"* to your question.
- Mac: if the app can't find `uvx`, replace `"uvx"` with the full path from `which uvx`.

## Developers

Architecture, tools, configuration and tests: see [DEVELOPMENT.md](https://github.com/jadikar-arch/euro-data-mcp/blob/main/DEVELOPMENT.md).
Changes: [CHANGELOG.md](https://github.com/jadikar-arch/euro-data-mcp/blob/main/CHANGELOG.md).

## Licence

Code: [EUPL-1.2](https://github.com/jadikar-arch/euro-data-mcp/blob/main/LICENSE). Data: [Eurostat](https://ec.europa.eu/eurostat), the European Commission,
the [European Parliament](https://data.europarl.europa.eu), [data.europa.eu](https://data.europa.eu)
(CC BY 4.0 / Commission reuse policy), [Destatis](https://www.destatis.de) and
[GovData](https://www.govdata.de) (Datenlizenz Deutschland or per-dataset licence).
