malinoto avatar

TracePass DPP Compliance Assistant

malinoto/tracepass-mcp-server

If you're building anything that touches EU product compliance, this is the one to look at. It wraps TracePass, an EU Digital Product Passport platform covering the ESPR and the Battery Regulation, and exposes it as eight grouped tools: products, passports, passport fields, economic-operator parties, GS1 EPCIS 2.0 events, DPP field templates, scope checks, and lifecycle actions. Battery passports get 91 fields and electronics get 166, and the assistant can build, audit, and check compliance on them directly. Connect via the hosted endpoint with OAuth, or drop a tp_ API key into a local npx setup. Note that the lifecycle tool covers irreversible, public-facing actions like placing a passport on market or archiving, so review what your client is allowed to auto-approve there.

GitHub stars
1
tools
9
auth
Secret needed
transport
HTTP
last updated
Nov 9, 2026

Install

From registry metadata
$ npx add-mcp https://ai.tracepass.eu/compliance/mcp --name tracepass --header 'Authorization: Bearer ${API_TOKEN}'

Run in your terminal. add-mcp asks which agents to add it to, then asks for each value it needs. Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http tracepass https://ai.tracepass.eu/compliance/mcp --header 'Authorization: YOUR_AUTHORIZATION'

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 9 tools

Verified live against the running server on Nov 6, 2026.

scope_checkChecks whether EU law requires a Digital Product Passport for a type of product, from when, and what the law requires of each role. Use it for "do I need a passport", "from when", "who is responsible", whether that responsibility can be handed to another company, who keeps and...5 params

Checks whether EU law requires a Digital Product Passport for a type of product, from when, and what the law requires of each role. Use it for "do I need a passport", "from when", "who is responsible", whether that responsibility can be handed to another company, who keeps and...

Parameters* required
categorystring
Product category key, one of the listed values. Map the user's product to the closest key (paint → paints-coatings, an e-bike battery → battery); use "other" when no key fits. Never pass the user's...one of battery · construction · detergents · electronics · fmcg · furniture
factsobject
Product facts the scope rules declare, e.g. {"battery.capacityKWh": 10}. Any other key is rejected, so pass only a fact you know the rules use (such as one a needs_input result asked for), and neve...
localestring
Language for the answer text. Defaults to en.one of en · bg · de · it
placedOnMarketobject
When the product was or will be placed on the market.
rolestring
The user's role in plain words, e.g. "maker", "importer", "reseller". The platform maps this to the act's term.
required_fieldsLists the data a passport must contain for a product category, with the article requiring each field, who may see it, how often it changes, and whether it usually comes from the maker or a supplier. Call it without `group` for a summary (counts by group), then with a `group` f...4 params

Lists the data a passport must contain for a product category, with the article requiring each field, who may see it, how often it changes, and whether it usually comes from the maker or a supplier. Call it without `group` for a summary (counts by group), then with a `group` f...

Parameters* required
category*string
Product category key, one of the listed values. Map the user's product to the closest key (paint → paints-coatings, an e-bike battery → battery). Never pass the user's own words. If none fits, ther...one of battery · construction · detergents · electronics · fmcg · furniture
groupstring
Template group name. Omit for a summary; provide to list the fields.
localestring
Language for field labels and descriptions. Defaults to en.one of en · bg · de · it
subTypestring
Battery only: EV, LMT or industrial_gt_2kwh (an industrial battery over 2 kWh). Narrows the required fields to that battery type; an unknown value is refused with the allowed list.
what_changedReports changes in EU passport law and standards for the user's categories since a date (default: since they last asked). Use it for "what's new" or "has X been adopted". Items marked "Planned, not law yet" are upcoming obligations, not yet in force. Use only what this tool re...3 params

Reports changes in EU passport law and standards for the user's categories since a date (default: since they last asked). Use it for "what's new" or "has X been adopted". Items marked "Planned, not law yet" are upcoming obligations, not yet in force. Use only what this tool re...

Parameters* required
categoriesarray
Product categories to filter by. Defaults to the saved profile categories.
localestring
Language for summaries. Defaults to en.one of en · bg · de · it
sincestring
ISO date to look back from. Defaults to the date this account last called what_changed (first time: 90 days ago).
registry_guidanceExplains the EU DPP Registry and the technical side: registration in the registry, identifiers, QR and data carriers, data formats (JSON, HTML, data models) and standards, and where passport data is kept. Each point carries the date of its source. For who owes, keeps or may ha...3 params

Explains the EU DPP Registry and the technical side: registration in the registry, identifiers, QR and data carriers, data formats (JSON, HTML, data models) and standards, and where passport data is kept. Each point carries the date of its source. For who owes, keeps or may ha...

Parameters* required
categorystring
Optional category filter (e.g. battery) for category-specific guidance.
localestring
Language for the answer. Defaults to en.one of en · bg · de · it
topic*string
The topic to answer.one of registration · identifiers · data_carrier · data_format · standards · where_created
create_draft_passportCreates a **draft** passport in the user's own TracePass account from facts they stated. Use it whenever the user asks to create a passport, including "create and publish": create the draft, then say that publishing is done by the user in TracePass. It never publishes. If the...5 params

Creates a **draft** passport in the user's own TracePass account from facts they stated. Use it whenever the user asks to create a passport, including "create and publish": create the draft, then say that publishing is done by the user in TracePass. It never publishes. If the...

Parameters* required
category*string
Product category key, one of the listed values. Map the user's product to the closest key (paint → paints-coatings, an e-bike battery → battery). Never pass the user's own words. If none fits, ther...one of battery · construction · detergents · electronics · fmcg · furniture
gtinstring
The product's GTIN (barcode number, 8–14 digits). Required for most passport types. If missing, the tool will ask the user for it.
productName*string
The product's name.
serialNumberstring
The specific unit's serial number, if the passport is per-unit.
subTypestring
Battery only: EV, LMT or industrial_gt_2kwh. Used to count the required fields for that battery type; ask the user rather than guess.
report_answerUse it when the user says an answer was wrong or unclear. Pass their words and the `ruleIds` of the answer. The report goes to a review queue. Use only what this tool returns: add no facts, dates or articles of your own, not even today's date. Keep every citation and the discl...2 params

Use it when the user says an answer was wrong or unclear. Pass their words and the `ruleIds` of the answer. The report goes to a review queue. Use only what this tool returns: add no facts, dates or articles of your own, not even today's date. Keep every citation and the discl...

Parameters* required
ruleIdsarray
The ruleIds from the answer that was reported. Pass them from the result unchanged.
what*string
The user's own words describing what was wrong or unclear.
get_profileShows the company facts the assistant has stored (categories, markets, role, own-brand flag, etc.) and when they were last updated. Use only what this tool returns: add no facts, dates or articles of your own, not even today's date. Keep every citation and the disclaimer line,...

Shows the company facts the assistant has stored (categories, markets, role, own-brand flag, etc.) and when they were last updated. Use only what this tool returns: add no facts, dates or articles of your own, not even today's date. Keep every citation and the disclaimer line,...

No parameters. Call it with no arguments.

update_profileSaves or corrects company facts. Use it when the user states a lasting fact about their company (role, categories, markets, own-brand), or to save a `learnable` fact from a result. The update merges the given facts into the existing profile; it does not replace the whole profi...8 params

Saves or corrects company facts. Use it when the user states a lasting fact about their company (role, categories, markets, own-brand), or to save a `learnable` fact from a result. The update merges the given facts into the existing profile; it does not replace the whole profi...

Parameters* required
categoriesarray
Product categories the company handles, e.g. ["battery", "textile"].
dataSystemsstring
Short description of the data systems the company uses (e.g. SAP, custom ERP).
marketsarray
ISO country codes where the company sells, or ["EU"].
ownBrandboolean
True if the company sells under its own brand or trademark.
productsarray
Up to 50 representative products, used as defaults for passport creation.
rolestring
The company's role in the supply chain per EU DPP regulations.one of manufacturer · importer · distributor · authorised_representative · fulfilment_service_provider
salesChannelsarray
Sales channels the company uses.
sizeBandstring
Whether the company is an SME or a large enterprise.one of sme · large
delete_profileDeletes every stored company fact. Use it only when the user explicitly asks to delete their profile. This is a separate tool so the assistant asks for confirmation before running it. Use only what this tool returns: add no facts, dates or articles of your own, not even today'...

Deletes every stored company fact. Use it only when the user explicitly asks to delete their profile. This is a separate tool so the assistant asks for confirmation before running it. Use only what this tool returns: add no facts, dates or articles of your own, not even today'...

No parameters. Call it with no arguments.

Sponsors

Readme

TracePass MCP Server

Listed on Glama smithery badge

A Model Context Protocol server for TracePass — the EU Digital Product Passport platform. It lets AI assistants (Claude, Cursor, IDE agents) manage products, Digital Product Passports, economic-operator parties, and GS1 EPCIS 2.0 supply-chain events.

It speaks the full MCP protocol — tools, resources, resource templates, and prompts.

Two ways to use it

The same server core ships two ways:

  1. Hosted — point your MCP client at https://ai.tracepass.eu/mcp. Nothing to install; always current.
  2. Local (npm) — run tracepass-mcp-server via npx. The MCP client launches it as a subprocess and speaks MCP over stdio.

Authentication


View the full README on GitHub

Details

Repository
github.com/malinoto/tracepass-mcp-server
Website
www.tracepass.eu
Transport
HTTP
Auth
Required
Registry
MCP registry, active
Tools verified
Nov 6, 2026

More from malinoto