@pipeworx/epo-publication-server
Connect: https://pipeworx.io/mcp — every tool in the catalog, including @pipeworx/epo-publication-server’s. Install: one-click buttons
Connect to just the @pipeworx/epo-publication-server pack
https://gateway.pipeworx.io/epo-publication-server/mcp — only @pipeworx/epo-publication-server’s own tools, nothing else in the catalog.
No MCP client? Skip the connection: POST https://gateway.pipeworx.io/v1/tools/search_packs {"query":"..."} to find a tool below, GET /v1/tools/<name> for its schema, POST the same URL with arguments for the data — see For AI agents.
Tools: 3
As-published European patent documents — publication dates, per-date listings with titles and applicants, and full document text (biblio, abstract, claims, description) for granted patents and directly-filed applications. Keyless.
Tools
eps_publication_dates(year?, from?, to?, limit?)— EPO publication dates (weekly, almost always Thursdays, back to 1978) with a real per-date document count.eps_list_publications(date, kind?, limit?)— every EP publication issued on one date, with kind code, title and applicant(s); reports the true total before any filtering.eps_get_document(number, kind?, part?)— one publication’s bibliographic data, abstract, claims or description text, as published.
Auth
Keyless. No account, no registration.
EPO states a fair-use cap of 5 GB per rolling 7-day window per calling IP,
confirmed live via the x-quotaperweek-remaining/x-quotaperweek-used
response headers. General EPO site terms apply; no EPS-specific
redistribution restriction was found.
Data sources
- European Patent Office (EPO), European Publication Server — the as-published XML/HTML of every EP patent application and granted European patent.
Notes for the next person
- The list-by-date trap: asking for a date that is not a real EPO
publication date (wrong day of week, a future date, a typo) answers
HTTP 200 with a tiny HTML shell and zero entries — not a 404, not an
error. EPO has never actually had a genuinely empty publication date in
2,400+ weeks of history, so
eps_list_publicationstreats zero parsed entries as a loud failure rather than a silent empty list. Always get a real date fromeps_publication_datesfirst. - Most application (A-kind) publications carry NO claims/description text.
The large majority of EP applications enter via the PCT route, and EPO
republishes only the bibliographic (SDOBI) record for those — the full
specification was already published as the WIPO (WO) pamphlet, so EPO does
not retype it. Full claims/description/drawings text is reliably present
for granted (B-kind) patents and for directly-filed (non-PCT)
applications.
eps_get_documentreports which case it hit (and names the referenced WO publication when it’s a PCT case) rather than returning an empty part silently. - Document ids aren’t just the publication number + kind. The REST path
segment is a longer id like
EP4819826NWA1— the publication number, an internal marker (NWfor the overwhelming majority of documents,W1for a minority), and the kind code.eps_list_publicationsreturns these ids directly;eps_get_documentalso accepts a bare number + kind and tries the common id forms in order. - A made-up document id does not 404 — it 500s with a small JSON body
(
{"code":9000,"message":"Unhandled internal server error."}). This is actually easy to work with:eps_get_documenttries its candidate ids and reportsfound:falsewith the upstream status once all of them fail. - What this adds over
mcps/epo-ops(EPO Open Patent Services, OAuth2): the as-published document text itself, keyless.epo-opskeeps INPADOC worldwide legal status and CQL search across DOCDB (100+ patent offices); this pack only ever sees EP publications.
Tools
- eps_publication_dates — List EPO European Publication Server publication dates (almost always Thursdays, weekly since 1978) with a real document count per date. Filter by “year” (e.g. “2026”) or a “from”/“to” range (YYYYMMDD
- eps_list_publications — List every EP patent publication issued on one EPO publication date, with publication number, kind code, title and applicant(s). Returns the real total on that date before any filtering. “date” must b
- eps_get_document — Fetch one EP patent publication as published by the EPO — bibliographic data, or the full text of its abstract, claims or description. Give “number” as a full id from eps_list_publications (e.g. “EP48
Tools
eps_get_document— Fetch one EP patent publication as published by the EPO — bibliographic data, or the full text of its abstract, claims or description. Give number as a full id from eps_list_publications (e.g. EP48198eps_list_publications— List every EP patent publication issued on one EPO publication date, with publication number, kind code, title and applicant(s). Returns the real total on that date before any filtering. date must beeps_publication_dates— List EPO European Publication Server publication dates (almost always Thursdays, weekly since 1978) with a real document count per date. Filter by year (e.g. 2026 ) or a from / to range (YYYYMMDD or Y