Context7
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Description from the maker (original English)
Search public EUDAMED devices, verify actors and build traceable evidence checklists.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
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-eudamedPaste 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.
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.
Runs on your computer; the tool list appears in your AI app after you install it.
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
The registry name was verified with the GitHub account t4dhg, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
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.
The registry does not list a required key, though some servers ask you to sign in on first use.
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).
The GitHub repo last changed –, and the latest version (0.2.0) reached the registry 2 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Context7, Codebase Memory, Exa
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
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
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.
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
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.
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', });
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.
| Tool | Purpose | Main inputs |
|---|---|---|
eudamed_devices | Search and normalize UDI records; optionally include raw device fields | At least one of primaryDi, basicUdi, manufacturerSrn, tradeName, deviceName, reference; optional exact, limit, language, raw |
eudamed_actors | Verify one exact SRN with organizational fields only | actorId |
eudamed_discover_actors | Discover exact legal/abbreviated company-name candidates, with portal fallback | name, optional country, role, limit |
eudamed_references | Retrieve code translations, optionally narrowed locally | language, code, id, limit |
eudamed_investigate | Resolve candidate devices and operators, decode fields and expose evidence gaps | Device 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).
{
"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.
{
"manufacturerSrn": "YOUR_SUPPLIED_SRN", "tradeName": "YOUR_DEVICE_NAME", "maxDevices": 10, "maxManufacturers": 3, "maxRepresentatives": 3 }
The workflow:
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.
Each prompt takes a required query string containing known identifiers, names or the investigation question. Prompts supply procedures; they do not fetch data themselves.
| Prompt | Workflow |
|---|---|
investigate_device | Device identity, actual manufacturer, representatives and evidence gaps |
manufacturer_portfolio | Verify an operator and inspect its bounded returned portfolio |
conformity_evidence | Prepare a document checklist while preserving unverified claims |
Readable resources:
eudamed://guides/searcheudamed://guides/evidenceeudamed://prompts/investigate_deviceeudamed://prompts/manufacturer_portfolioeudamed://prompts/conformity_evidence| Output | Meaning |
|---|---|
sourceUrl, retrievedAt, apiVersion | Query and observation time; cached observations retain their original time |
returnedByApi | Records in this response, not a total registry count |
matched | Records left after local matching |
returned, truncated | Local 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