EU CTIS MCP — the Clinical Trials Information System, the EU's public register of clinical trials…
MCPpedia last refreshed this data
io.github.pipeworx-io/eu-ctis is an MCP server that EU CTIS MCP — the Clinical Trials Information System, the EU's public register of clinical trials…. Its tool list has not been published yet over http, requires no API key, and scores 89/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients - only the file and path differ.
{
"mcpServers": {
"eu-ctis": {
"url": "https://gateway.pipeworx.io/eu-ctis/mcp"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
EU CTIS MCP — the Clinical Trials Information System, the EU's public register of clinical trials…
This server supports HTTP transport. Be the first to test it - help the community know if it works.
Five weighted categories - click any category to see the underlying evidence.
No known CVEs.
Checked @pipeworx/mcp-eu-ctis against OSV.dev.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience - it helps other developers decide.
Sign in to write a review.
Others in health
MCP server for the ClinicalTrials.gov v2 API. Search trials, retrieve study details and results, and match patients to eligible trials.
Search ClinicalTrials.gov: find studies, retrieve results, match patients to candidate trials.
Control FL Studio with Claude: in-DAW mixing, diagnosis, routing, and composition.
MCP server providing seamless access to FHIR APIs for AI tools and healthcare applications
MCP Security Weekly
Get CVE alerts and security updates for io.github.pipeworx-io/eu-ctis and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Clinical trials authorised in the EU/EEA under Regulation 536/2014, from the EU Clinical Trials Information System (CTIS) — who is running what, in which member states, for which condition, and at what status.
Part of Pipeworx — an MCP gateway connecting AI agents to 1864+ live data sources. This is an independent, unofficial integration — not affiliated with, endorsed by, or published by the upstream provider.
ctis_search_trials(query?, medicine?, condition?, sponsor?, title?, endpoint?, exclude?, status?, phase?, country?, age_group?, region?, gender?, has_results?, rare_disease?, orphan_designation?, low_intervention?, start_from?, start_to?, sort_by?, sort_direction?, page?, limit?) — the full search surface. Answers "which European trials are recruiting for this drug".ctis_trial(ct_number) — the full published record for one trial: title, sponsor, products and active substances, conditions, objective, eligibility criteria, endpoints, planned enrolment, per-member-state status and decision dates, and the reported start/recruitment events.ctis_trials_for_medicine(medicine, recruiting_only?, country?, limit?) — every EU trial involving a named medicine or active substance, counted by status.ctis_recent_authorisations(since?, country?, condition?, sponsor?, phase?, limit?) — trials most recently authorised in the EEA, newest decision first.Keyless. No API key, no cookie, and no browser User-Agent is required.
POST https://euclinicaltrials.eu/ctis-public-api/search — the search endpoint, JSON body in and out.GET https://euclinicaltrials.eu/ctis-public-api/retrieve/{ctNumber} — one trial's full record./ctis-public-api/search answers 403. Searching is a POST. The 403 is a method mismatch, not an authorisation wall — which is exactly what it looks like from the outside, and is why this source was written off once already./ctis-public-api/search/{ctNumber}, /trial/{ctNumber} and /ct/{ctNumber} all return the Angular SPA's index page with a 200. Only /retrieve/{ctNumber} returns JSON. A parser that trusts the status code will parse an HTML shell as data.{} with a 200, not a 404. The absence of ctNumber in the body is the only "not found" signal there is.status, trialPhaseCode, ageGroupCode, msc (member states, as ISO 3166 numeric country codes) and trialRegion all take integers. The vocabularies are in src/index.ts, lifted from the portal's own option lists; the tools accept the human labels and map them.trialCountries in a search row is "Spain:2" — country name, colon, that country's status code.ctStatus means two different things. In a search row it is the numeric code; in a retrieve payload it is a coarser label string ("Authorised") and the numeric lives in ctPublicStatusCode. Both are normalised to a label on the way out.DD/MM/YYYY, detail is an ISO timestamp. Everything comes out as an ISO date.secondaryIdentifyingNumbers.nctNumber, exposed as nct_number. That is the join key to the clinicaltrials pack for the same study.