MCP set-up
EuroPlaybook runs a Model Context Protocol server. AI assistants use it to read your catalogue and obligations and to propose packaging, with the same API key and rules as the REST API.
| Endpoint | https://mcp.europlaybook.com/mcp |
| Transport | Streamable HTTP |
| Auth | Authorization: Bearer ep_... (create a key) |
Give the key only the scopes the assistant needs. catalogue:read + compliance:read is a good start.
Configuration
Section titled “Configuration”claude mcp add --transport http europlaybook https://mcp.europlaybook.com/mcp \ --header "Authorization: Bearer $EUROPLAYBOOK_API_KEY"Claude Desktop’s custom connectors need OAuth, which is planned. Until then, bridge with
mcp-remote in claude_desktop_config.json
(Settings › Developer › Edit config):
{ "mcpServers": { "europlaybook": { "command": "npx", "args": [ "-y", "mcp-remote@0.14.3", "https://mcp.europlaybook.com/mcp", "--header", "Authorization:${EUROPLAYBOOK_AUTH}" ], "env": { "EUROPLAYBOOK_AUTH": "Bearer ep_1a2b3c4d_..." } } }}Restart Claude Desktop after saving.
In ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project; do not commit the key):
{ "mcpServers": { "europlaybook": { "url": "https://mcp.europlaybook.com/mcp", "headers": { "Authorization": "Bearer ep_1a2b3c4d_..." } } }}ChatGPT connects to remote MCP servers through connectors, which sign in with OAuth. EuroPlaybook’s OAuth
support is planned. When it is live you add a connector with the endpoint
https://mcp.europlaybook.com/mcp and sign in with your EuroPlaybook account; no key to copy.
Any MCP client that supports streamable HTTP and custom headers works: point it at https://mcp.europlaybook.com/mcp and send
Authorization: Bearer <key>. Clients that only speak stdio can use mcp-remote as above.
| Tool | Does | Scope |
|---|---|---|
find_products |
Search products by SKU, title, GTIN or identifier; with group_id and confirmation |
catalogue:read |
get_product_packaging |
Effective packaging tree of a product: own and inherited lines with source, inherited, group_id |
catalogue:read |
list_product_groups |
Product groups; with group_id one group, its members and its packaging tree |
catalogue:read |
propose_packaging |
Create a packaging proposal (a person confirms it) | catalogue:write |
list_findings |
Packaging checks that need attention | catalogue:read |
list_obligations |
Obligations per country and regime | compliance:read |
explain_obligation |
Why an obligation applies, with its sources | compliance:read |
get_period_totals |
Totals of a reporting period | compliance:read |
explain_total |
Trace a total (period_id, pack line key) back to entries, products, packaging lines and sales |
compliance:read |
push_sales |
Send sales lines | sales:write |
Resources
Section titled “Resources”europlaybook://reference/materialseuroplaybook://reference/layerseuroplaybook://reference/regimeseuroplaybook://reference/data-model(a short version of the data model; assistants read it first)
Safety
Section titled “Safety”- The assistant can only do what the key allows, and never more than the person who created it.
- Packaging from an assistant is always a proposal with
source: api; it counts only after a person confirms it. Sales lines sent withpush_salesare stored directly, so give a keysales:writeonly when you want that. - Revoke the key in the app to disconnect the assistant at once.