Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

EUDAMED MCP

by t4dhgversion 0.2.0i★ –iRuns on your computer
Registry nameio.github.t4dhg/mcp-eudamed

Install

Overview

Description from the maker (original English)

Search public EUDAMED devices, verify actors and build traceable evidence checklists.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Search & AI memory

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • The registry lists no key to fill in.

You need

  • npmNode.js installed (for the npx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "eudamed": {
      "command": "npx",
      "args": [
        "-y",
        "@t4dhg/mcp-eudamed"
      ]
    }
  }
}

Run this in your terminal

claude mcp add eudamed -- npx -y @t4dhg/mcp-eudamed

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "eudamed": {
      "command": "npx",
      "args": [
        "-y",
        "@t4dhg/mcp-eudamed"
      ]
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "eudamed": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@t4dhg/mcp-eudamed"
      ]
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account t4dhg, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Search & AI memoryi

  • More stars than 0% of the other 7270 servers in this category
  • Published to the registry more recently than 94% of the other 7270 servers in this category
  • Basic checks equal to or better than 100% of the other 7270 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is EUDAMED MCP safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.2.0) reached the registry 2 days ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.

What can I use instead?

In the same category: Context7, Codebase Memory, Exa

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Context7

by upstash

Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.

Computer or cloud★ 64,224MITUpdated yesterday
Install

Codebase Memory

by DeusData

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

Runs on your computer★ 48,148MITUpdated 21 days ago
Install

Exa

by exa-labs

Connect AI agents to Exa for web search, content fetching, and multi-step research.

Runs in the cloud★ 5,213MITUpdated last month
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

Independent, unofficial integration.

EUDAMED MCP

Search European medical-device records from your AI assistant.

Independent, unofficial integration · Read-only access · No API key required for the public endpoints tested

A read-only Model Context Protocol server for the European Commission's EUDAMED Public API. Search UDI records, verify economic operators, decode classification and status values, and investigate a device without losing the distinction between a public record and verified conformity evidence.

Start with a company name, device name or UDI. Find candidate records, identify the registered manufacturer and build an evidence checklist with source links and explicit gaps.

5 tools · 3 guided workflows · 5 readable resources

Get started · Example requests · How evidence works · Official EUDAMED portal

What makes it useful

  • Identity before interpretation. Preserve leading zeroes in UDIs, apply exact matching locally, and keep multiple candidates visible.
  • Find the actual manufacturer. A supplied SRN can belong to another company in the same group. Investigation searches device identity independently and follows the manufacturer SRN in the returned record.
  • Evidence you can trace. Results carry the exact source query, original retrieval timestamp, API version, cache status and local limits.
  • Honest gaps. Missing flags remain unknown. Failed requests remain failures. IFUs, declarations and certificates remain unverified until obtained separately.
  • Small tool surface. Five tools expose the three verified API endpoints and a bounded investigation workflow. Prompts are also resources, so clients can read the procedures without invoking a slash command.
  • Conservative by default. Serialized requests, bounded retries, timeouts, response-size limits, short-lived caching and organizational-only actor data.

This is an independent integration, not an official European Commission product. Public registration does not independently establish product conformity. The server does not retrieve IFUs or certificates and does not issue a compliant/non-compliant verdict.

Install and connect

Requires Node.js 22 or later. Add this entry to your MCP client's server configuration:

{

"mcpServers": { "eudamed": { "command": "npx", "args": ["-y", "@t4dhg/mcp-eudamed@0.1.1"] } } }

To build from source, run npm ci && npm run build in the checkout and configure node with the absolute path to dist/cli.js.

The server uses stdio. Standard output is reserved for MCP messages. No credentials or .env file are needed. Optional configuration is read from the process environment; .env files are not loaded automatically.

For programmatic use, import EudamedClient, investigate or createServer from the package. Importing the library does not start a transport:

import { EudamedClient, investigate } from '@t4dhg/mcp-eudamed';

const api = new EudamedClient(); const results = await api.devices({ primaryDi: 'YOUR_PRIMARY_UDI_DI', exact: true, });

const dossier = await investigate(api, { manufacturerSrn: 'US-MF-000000001', tradeName: 'YOUR_DEVICE_NAME', });

Try these requests

Find the public EUDAMED record for this Primary UDI-DI. Show the legal manufacturer, authorised representative, risk class and the exact source query.

I have a manufacturer SRN and a product name, but the manufacturer search is empty. Check whether the product is registered under a different legal entity.

Build an evidence checklist for this device. Separate what EUDAMED says from what still needs a controlled IFU, declaration or certificate.

Tools

ToolPurposeMain inputs
eudamed_devicesSearch and normalize UDI records; optionally include raw device fieldsAt least one of primaryDi, basicUdi, manufacturerSrn, tradeName, deviceName, reference; optional exact, limit, language, raw
eudamed_actorsVerify one exact SRN with organizational fields onlyactorId
eudamed_discover_actorsDiscover exact legal/abbreviated company-name candidates, with portal fallbackname, optional country, role, limit
eudamed_referencesRetrieve code translations, optionally narrowed locallylanguage, code, id, limit
eudamed_investigateResolve candidate devices and operators, decode fields and expose evidence gapsDevice search fields; language, maxDevices, maxManufacturers, maxRepresentatives, deadlineMs

All tools advertise read-only, non-destructive, idempotent, open-world annotations. Tool errors return isError: true. Search tools provide JSON text and equivalent structuredContent. Investigation provides a concise report in text content and complete evidence in structuredContent (also including the report).

Search a device
{

"primaryDi": "YOUR_PRIMARY_UDI_DI", "exact": true, "limit": 10, "language": "en", "raw": true }

exact defaults to false for discovery. When true, every supplied filter is compared locally using trimmed, case-insensitive equality. Do not assume upstream partial-name matching; use exact known identifiers and inspect the returned evidence. Multiple filters are sent together; the observed upstream behavior is AND, but it is not a published contractual guarantee.

The device tool returns normalized identity, operators, decoded values, tri-state flags, intended-purpose status and unverified document checklists. Set raw: true to retain additional upstream device fields. The library's devices() method always returns validated raw device records.

Investigate a manufacturer mismatch
{

"manufacturerSrn": "YOUR_SUPPLIED_SRN", "tradeName": "YOUR_DEVICE_NAME", "maxDevices": 10, "maxManufacturers": 3, "maxRepresentatives": 3 }

The workflow:

  1. Query Primary DI first, then Basic UDI, then each supplied name/reference independently with exact local matching. A stale name cannot suppress an exact UDI result.
  2. Look up the supplied actor and its returned device portfolio.
  3. Use the strongest nonempty route as target candidates, record conflicts with other supplied fields, and preserve alternative route candidates. Read manufacturer SRNs from target candidates and inspect their actors and bounded portfolios.
  4. Verify authorised representatives for the selected evidence records.
  5. Decode reference values and list the controlled documents still unverified.
  6. Return query provenance, failures, omitted counts and unknown upstream coverage.

targetEvidence contains only target candidates from the strongest nonempty identity route. portfolioEvidence contains other manufacturer records and must not be attributed to the target. evidence remains a compatibility alias for target evidence only. Manufacturer-only investigations have no target evidence.

searches retains each independent query. conflicts records supplied-versus-observed disagreements; alternativeCandidates retains other search-route matches. identityStatus distinguishes identifier matches, candidates, ambiguity, conflicts, not-found, unresolved and portfolio-only results. Multiple versions remain separate candidates; the server does not automatically choose the latest. Missing operator identities and unmatched actor lookups appear in unresolved.

status: "completed" means execution completed, not that identity, documents or conformity have been established. partial, timed-out and cancelled retain gathered evidence and its limits. The concise report lists target identity, decoded fields, evidence gaps, conflicts, failures, bounds and next documents needed. Detailed records remain available in structured output.

Prompts and resources

Each prompt takes a required query string containing known identifiers, names or the investigation question. Prompts supply procedures; they do not fetch data themselves.

PromptWorkflow
investigate_deviceDevice identity, actual manufacturer, representatives and evidence gaps
manufacturer_portfolioVerify an operator and inspect its bounded returned portfolio
conformity_evidencePrepare a document checklist while preserving unverified claims

Readable resources:

  • eudamed://guides/search
  • eudamed://guides/evidence
  • eudamed://prompts/investigate_device
  • eudamed://prompts/manufacturer_portfolio
  • eudamed://prompts/conformity_evidence

Understand the evidence

OutputMeaning
sourceUrl, retrievedAt, apiVersionQuery and observation time; cached observations retain their original time
returnedByApiRecords in this response, not a total registry count
matchedRecords left after local matching
returned, truncatedLocal output count and whether this response was locally capped

| coverage: "unknown" | Registry coverage and individual-record freshness are not established

Only the beginning is shown; read the rest in the repo

Ask PopNx