{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T19:27:53.080Z","url":"https://verifymcp.io/servers/pipeworx-io-euipo/pipeworx-mcp-euipo","markdownUrl":"https://verifymcp.io/servers/pipeworx-io-euipo/pipeworx-mcp-euipo.md","server":{"slug":"pipeworx-io-euipo","name":"Euipo","registryName":"io.github.pipeworx-io/euipo","description":"EUIPO MCP — EU trademarks, registered Community designs, and the shared reference registers the…","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"pipeworx-mcp-euipo","type":"npm","identifier":"@pipeworx/mcp-euipo","withdrawn":false,"url":"https://verifymcp.io/servers/pipeworx-io-euipo/pipeworx-mcp-euipo","version":"0.2.1","transport":"stdio","scoredAt":"2026-11-05T08:16:23.777Z"},"score":{"total":81,"tier":"high trust","status":"scored","weekDelta":null,"history":[{"date":"2026-11-05","total":81},{"date":"2026-11-04","total":81},{"date":"2026-11-03","total":80},{"date":"2026-11-02","total":80},{"date":"2026-11-01","total":79},{"date":"2026-10-31","total":78},{"date":"2026-10-30","total":78}]},"categories":[{"name":"Supply Chain Security","score":100,"verdict":"pass","reasons":["No malware found by supply-chain analysis.","No known CVEs affecting this package version or its production dependencies.","No install/post-install scripts declared.","No production dependencies, so there is no dependency health to assess."],"codes":[{"code":"supplychain.malware_clean","args":{}},{"code":"cve.none","args":{}},{"code":"installscript.none","args":{}},{"code":"dephealth.no_dependencies","args":{"deps":"0","unhealthy":"0"}}]},{"name":"Provenance & Transparency","score":97,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Cryptographically verified build provenance (signed, bound to pipeworx-io/mcp-euipo).","Clear OSI-approved license (MIT).","Actively maintained (last published 3 days ago).","Disclosure check failed: no security disclosure policy was found in the source repository."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.verified","args":{"repo":"pipeworx-io/mcp-euipo"}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"3"}},{"code":"disclosure.absent","args":{}}]},{"name":"Schema Quality & AI Usability","score":60,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 2034 tokens (~290/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_heavy","args":{"avg":"290","items":"7","tools":"7","tokens":"2034","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":20,"verdict":"partial","reasons":["Stability observed for 6 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"6"}}]},{"name":"Tool Coverage","score":100,"verdict":"pass","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","100% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"100"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 7 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"7"}},{"code":"toolsafety.manipulation_clean","args":{"units":"8","judged":"8"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28."],"codes":[{"code":"protocol.supported","args":{"latest":"2026-07-28","version":"2025-11-25"}}]}],"inconclusive":[],"malware":[],"components":[{"slug":"euipo-mcp","type":"remote","identifier":"https://gateway.pipeworx.io/euipo/mcp","withdrawn":false,"score":81,"current":false,"url":"https://verifymcp.io/servers/pipeworx-io-euipo/euipo-mcp","markdownUrl":"https://verifymcp.io/servers/pipeworx-io-euipo/euipo-mcp.md"},{"slug":"pipeworx-mcp-euipo","type":"npm","identifier":"@pipeworx/mcp-euipo","withdrawn":false,"score":81,"current":true,"url":"https://verifymcp.io/servers/pipeworx-io-euipo/pipeworx-mcp-euipo","markdownUrl":"https://verifymcp.io/servers/pipeworx-io-euipo/pipeworx-mcp-euipo.md"}],"facts":[{"label":"Registry","value":"npm"},{"label":"Package","value":"@pipeworx/mcp-euipo"},{"label":"Version","value":"0.2.1"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"euipo_search_trademarks","title":null,"description":"Search EU trademarks (EUTM) at the EUIPO — \"find EU trademarks containing NIKE in Nice classes 9 and 25\". Use for EU brand clearance and competitor trademark portfolios. Returns matching marks (application number, mark text, status, owner, Nice classes, filing date) plus raw. Example: euipo_search_trademarks({ verbal_element: \"nike\", nice_classes: [9, 25], status: \"REGISTERED\", _apiKey: \"client_id:client_secret\" })","inputs":[{"name":"_apiKey","type":"string","required":true,"description":"EUIPO OAuth credentials as \"client_id:client_secret\" from dev.euipo.europa.eu."},{"name":"applicant","type":"string","required":false,"description":"Applicant / owner name to match, e.g. \"Nike Innovate\"."},{"name":"nice_classes","type":"array","required":false,"description":"Nice classification classes to filter by, e.g. [9, 25]."},{"name":"page","type":"integer","required":false,"description":"Zero-based page index for pagination (default 0)."},{"name":"query","type":"string","required":false,"description":"Advanced: raw RSQL filter passed through verbatim (e.g. verbalElement==\"*nike*\";niceClasses=in=(9,25)). Overrides the friendly params above."},{"name":"size","type":"integer","required":false,"description":"Max results per page (default 20, max 100)."},{"name":"status","type":"string","required":false,"description":"Trademark status filter, e.g. \"REGISTERED\", \"APPLICATION_FILED\", \"EXPIRED\". Comma-separate for multiple."},{"name":"verbal_element","type":"string","required":false,"description":"Text/word element of the mark to match (wildcards added automatically), e.g. \"nike\". Multi-word values are quoted safely."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":333},{"name":"euipo_trademark","title":null,"description":"Retrieve a single EU trademark by its application or registration number from the EUIPO — \"look up EUTM 018123456\". Returns the full record (mark text, status, owner/representative, Nice classes, goods & services, filing/registration/expiry dates) plus raw. Example: euipo_trademark({ number: \"018123456\", _apiKey: \"client_id:client_secret\" })","inputs":[{"name":"_apiKey","type":"string","required":true,"description":"EUIPO OAuth credentials as \"client_id:client_secret\" from dev.euipo.europa.eu."},{"name":"number","type":"string","required":true,"description":"EUTM application or registration number, e.g. \"018123456\"."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":145},{"name":"euipo_search_designs","title":null,"description":"Search registered Community designs (RCD) at the EUIPO — \"find registered EU designs owned by Adidas in Locarno class 02\". Use for design-filing landscape and competitor design portfolios. Returns matching designs (design number, indication of product, status, owner, Locarno classes, filing date) plus raw. Example: euipo_search_designs({ owner: \"adidas\", locarno_classes: [\"02\"], _apiKey: \"client_id:client_secret\" })","inputs":[{"name":"_apiKey","type":"string","required":true,"description":"EUIPO OAuth credentials as \"client_id:client_secret\" from dev.euipo.europa.eu."},{"name":"indication","type":"string","required":false,"description":"Indication of product / design keyword to match (wildcards added automatically), e.g. \"footwear\"."},{"name":"locarno_classes","type":"array","required":false,"description":"Locarno classification classes to filter by, e.g. [\"02\", \"09\"]."},{"name":"owner","type":"string","required":false,"description":"Design owner / applicant name to match, e.g. \"adidas\"."},{"name":"page","type":"integer","required":false,"description":"Zero-based page index for pagination (default 0)."},{"name":"query","type":"string","required":false,"description":"Advanced: raw RSQL filter passed through verbatim (e.g. indicationOfProduct==\"*footwear*\";locarnoClasses=in=(02)). Overrides the friendly params above."},{"name":"size","type":"integer","required":false,"description":"Max results per page (default 20, max 100)."},{"name":"status","type":"string","required":false,"description":"Design status filter, e.g. \"REGISTERED\", \"EXPIRED\". Comma-separate for multiple."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":323},{"name":"euipo_search_goods_services","title":null,"description":"Explore the EUIPO's harmonised Nice goods-and-services classification (TMClass) — \"find accepted goods-and-services terms for 'software' in Nice class 9\". Use when preparing a trademark filing or checking whether a term is already a recognised, pre-classified term. Returns matching terms with their Nice class and concept id, plus raw. Example: euipo_search_goods_services({ term: \"software\", nice_class: 9, language: \"en\", _apiKey: \"client_id:client_secret\" })","inputs":[{"name":"_apiKey","type":"string","required":true,"description":"EUIPO OAuth credentials as \"client_id:client_secret\" from dev.euipo.europa.eu."},{"name":"include_term_variants","type":"boolean","required":false,"description":"Include term variants in the results (default false)."},{"name":"language","type":"string","required":false,"description":"EU official language code for the search and results, e.g. \"en\", \"es\", \"de\", \"fr\". Required by the upstream API; defaults to \"en\"."},{"name":"nice_class","type":"array","required":false,"description":"Nice classification class number(s) to restrict the search to, e.g. [9] or [9, 42]. Also accepts a single integer."},{"name":"page","type":"integer","required":false,"description":"Zero-based page index for pagination (default 0)."},{"name":"parent_concept_id","type":"string","required":false,"description":"Restrict to children of this taxonomy concept id (for browsing the classification tree)."},{"name":"size","type":"integer","required":false,"description":"Max results per page (default 20)."},{"name":"term","type":"string","required":false,"description":"Text to search for within goods-and-services terms, e.g. \"software\"."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":322},{"name":"euipo_validate_goods_services","title":null,"description":"Validate a list of goods-and-services terms against the EUIPO's harmonised database (TMClass) — checks whether each term is a recognised (\"harmonized\") term, and flags invalid characters, duplicates, forbidden terms, and length problems. Use before filing to catch terms an examiner would object to. Returns per-term accepted/not-accepted status plus raw. Example: euipo_validate_goods_services({ terms: [\"computer software\", \"C@ts and dog$\"], nice_class: 9, language: \"en\", _apiKey: \"client_id:client_secret\" })","inputs":[{"name":"_apiKey","type":"string","required":true,"description":"EUIPO OAuth credentials as \"client_id:client_secret\" from dev.euipo.europa.eu."},{"name":"language","type":"string","required":false,"description":"Language the terms are written in, e.g. \"en\". Required by the upstream API; defaults to \"en\"."},{"name":"nice_class","type":"integer","required":false,"description":"Nice classification class the terms belong to, e.g. 9. The upstream validates terms per class."},{"name":"terms","type":"array","required":true,"description":"Goods-and-services terms to validate, e.g. [\"computer software\", \"downloadable mobile applications\"]."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":241},{"name":"euipo_search_product_indications","title":null,"description":"Search the EUIPO's harmonised Locarno product-indications classification (DSClass) used for registered Community design filings — \"find accepted design indications for 'chair'\". Returns matching indications with their Locarno class/subclass and concept id, plus raw. Example: euipo_search_product_indications({ term: \"chair\", locarno_class: 6, language: \"en\", _apiKey: \"client_id:client_secret\" })","inputs":[{"name":"_apiKey","type":"string","required":true,"description":"EUIPO OAuth credentials as \"client_id:client_secret\" from dev.euipo.europa.eu."},{"name":"language","type":"string","required":false,"description":"EU official language code for the search and results, e.g. \"en\". Required by the upstream API; defaults to \"en\"."},{"name":"locarno_class","type":"integer","required":false,"description":"Locarno classification class number to restrict the search to, e.g. 6."},{"name":"locarno_subclass","type":"integer","required":false,"description":"Locarno classification subclass number (requires locarno_class)."},{"name":"page","type":"integer","required":false,"description":"Zero-based page index for pagination (default 0)."},{"name":"parent_concept_id","type":"string","required":false,"description":"Restrict to children of this taxonomy concept id (for browsing the classification tree)."},{"name":"size","type":"integer","required":false,"description":"Max results per page (default 20)."},{"name":"term","type":"string","required":false,"description":"Text to search for within product-indication terms, e.g. \"chair\"."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":294},{"name":"euipo_search_persons","title":null,"description":"Search applicants or representatives on record with the EUIPO for trademark/design procedures — \"find the EUIPO representative record for a named law firm\". Each row carries its role (e.g. APPLICANT_BUSINESS, APPLICANT_INDIVIDUAL, REPRESENTATIVE_EUIPO_PROFESSIONAL) and its source. Privacy: street/city/postal-code address details are withheld for individual persons — only country-level location is kept; business/association entities keep their registered address. Example: euipo_search_persons({ name: \"adidas\", role: \"applicant\", country: \"DE\", _apiKey: \"client_id:client_secret\" })","inputs":[{"name":"_apiKey","type":"string","required":true,"description":"EUIPO OAuth credentials as \"client_id:client_secret\" from dev.euipo.europa.eu."},{"name":"city","type":"string","required":false,"description":"City to filter by, e.g. \"Alicante\". Only meaningful for business/association entities (withheld for individuals in the response)."},{"name":"country","type":"string","required":false,"description":"ISO 3166-1 alpha-2 country code to filter by, e.g. \"DE\", \"US\"."},{"name":"name","type":"string","required":false,"description":"Name to search for, e.g. \"adidas\" or a representative's firm/individual name."},{"name":"page","type":"integer","required":false,"description":"Zero-based page index for pagination (default 0)."},{"name":"role","type":"string","required":false,"description":"Which EUIPO person register to search: \"applicant\" (default) or \"representative\"."},{"name":"size","type":"integer","required":false,"description":"Max results per page (default 20)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":323}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T08:16:23.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"verified","label":"Verified","reason":"verified","reasonLabel":"Verified","discovery":"attestation_endpoint","discoveryLabel":"Registry attestation endpoint","sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":{"nodes":0,"partial":false,"deprecated":null,"stale":null,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-10-30","recent":[{"id":"chg_01a1a59e-6167-7ccc-89da-adb9b3c7e3ca","kind":"score.total_changed","summary":"Trust score (80 → 81)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/pipeworx-io-euipo/pipeworx-mcp-euipo#chg-chg_01a1a59e-6167-7ccc-89da-adb9b3c7e3ca"},{"id":"chg_01a19b52-dd52-7cdf-abb8-3798104d1cc2","kind":"score.total_changed","summary":"Trust score (79 → 80)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/pipeworx-io-euipo/pipeworx-mcp-euipo#chg-chg_01a19b52-dd52-7cdf-abb8-3798104d1cc2"},{"id":"chg_01a19924-44aa-7682-b345-a18b9116dab4","kind":"score.total_changed","summary":"Trust score (49 → 79)","materiality":"functional","direction":"improvement","scoreDelta":30,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/pipeworx-io-euipo/pipeworx-mcp-euipo#chg-chg_01a19924-44aa-7682-b345-a18b9116dab4"},{"id":"chg_01a19924-44a9-73bb-9699-dbdf6bc4e360","kind":"check.reverified","summary":"Stability (unverified → 0.07)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/pipeworx-io-euipo/pipeworx-mcp-euipo#chg-chg_01a19924-44a9-73bb-9699-dbdf6bc4e360"},{"id":"chg_01a19921-6725-7692-9de7-9493d451acc8","kind":"package.version_changed","summary":"Package version (0.2.0 → 0.2.1)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/pipeworx-io-euipo/pipeworx-mcp-euipo#chg-chg_01a19921-6725-7692-9de7-9493d451acc8"},{"id":"chg_01a19921-6726-7bc0-9972-90f6310f6d27","kind":"score.total_changed","summary":"Trust score (78 → 49)","materiality":"functional","direction":"regression","scoreDelta":-29,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/pipeworx-io-euipo/pipeworx-mcp-euipo#chg-chg_01a19921-6726-7bc0-9972-90f6310f6d27"},{"id":"chg_01a19921-6722-7131-982d-0cd6f7297437","kind":"check.unverifiable","summary":"Tool coverage (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/pipeworx-io-euipo/pipeworx-mcp-euipo#chg-chg_01a19921-6722-7131-982d-0cd6f7297437"},{"id":"chg_01a19921-6721-763c-bde6-4e08fff5404e","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/pipeworx-io-euipo/pipeworx-mcp-euipo#chg-chg_01a19921-6721-763c-bde6-4e08fff5404e"},{"id":"chg_01a19921-671f-7806-a6dd-5d513207b49f","kind":"check.unverifiable","summary":"Tool safety (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/pipeworx-io-euipo/pipeworx-mcp-euipo#chg-chg_01a19921-671f-7806-a6dd-5d513207b49f"},{"id":"chg_01a19921-6720-7de4-9ea9-15f716aff45a","kind":"check.reason","summary":"Stability (Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/pipeworx-io-euipo/pipeworx-mcp-euipo#chg-chg_01a19921-6720-7de4-9ea9-15f716aff45a"},{"id":"chg_01a19921-6724-7bef-b5e7-225b5862bcb3","kind":"check.appeared","summary":"First check of Schema quality (unverified)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/pipeworx-io-euipo/pipeworx-mcp-euipo#chg-chg_01a19921-6724-7bef-b5e7-225b5862bcb3"},{"id":"chg_01a19104-def1-74ce-b60c-a79ed1cb6d9d","kind":"check.reverified","summary":"Security disclosure (unverified → fail)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/pipeworx-io-euipo/pipeworx-mcp-euipo#chg-chg_01a19104-def1-74ce-b60c-a79ed1cb6d9d"},{"id":"chg_01a18c01-6967-7385-aaaa-d0843e1fc828","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/pipeworx-io-euipo/pipeworx-mcp-euipo#chg-chg_01a18c01-6967-7385-aaaa-d0843e1fc828"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/pipeworx-io-euipo/pipeworx-mcp-euipo/changelog.json"},"links":{"html":"https://verifymcp.io/servers/pipeworx-io-euipo/pipeworx-mcp-euipo","markdown":"https://verifymcp.io/servers/pipeworx-io-euipo/pipeworx-mcp-euipo.md","changelogJson":"https://verifymcp.io/servers/pipeworx-io-euipo/pipeworx-mcp-euipo/changelog.json","changelogRss":"https://verifymcp.io/servers/pipeworx-io-euipo/pipeworx-mcp-euipo.xml","external":[{"label":"npm package","href":"https://www.npmjs.com/package/@pipeworx/mcp-euipo"},{"label":"Socket report","href":"https://socket.dev/npm/package/@pipeworx/mcp-euipo"},{"label":"Repository","href":"https://github.com/pipeworx-io/mcp-euipo"},{"label":"Website","href":"https://pipeworx.io/packs/euipo"}]}}