find-trials
MCP server that searches ClinicalTrials.gov and returns trials with contact info.
A free, privacy-first MCP server that lets AI assistants query ClinicalTrials.gov directly. Returns matching trials along with sponsor and contact phone numbers, so the assistant can do something useful with the result. Setup docs and one-line URL install on mcp.davidloor.com.
The problem
Patients searching for clinical trials at 11 PM for themselves or a family member face a wall of researcher-oriented language on ClinicalTrials.gov. Phase numbers, inclusion and exclusion criteria, NCT IDs, and recruitment status are not patient-friendly. AI assistants like ChatGPT and Claude can help, but only if they have a structured way to query the database.
The approach
A stateless Cloudflare Worker built on Cloudflare's agents SDK that wraps the ClinicalTrials.gov v2 API and exposes five MCP tools to any compatible AI client. The server caches upstream responses for five minutes via the Workers Cache API and rate-limits per IP at 60 requests per minute. Responses are structured JSON with eligibility criteria, site-level contact details, and timestamps so the agent can act on them.
Notable decisions
- Stateless, zero-PII architecture. No accounts, no search history, no persistent storage. Queries live in memory for one request and then disappear.
- Five focused tools instead of one mega-tool. search_trials, get_trial_details, list_conditions, compare_trials, and parse_eligibility_criteria each do one job well.
- Built-in disclaimer on every tool output. Reminds the agent (and the patient on the other end) that data may lag and that they must call sites and consult physicians before acting.
- ZIP-code radius search using U.S. ZCTA centroids, with optional latitude and longitude for precise geo filtering.
- Dual routing. Lives at mcp.davidloor.com/find-trials, the umbrella subdomain shared with future MCP servers, with a legacy Worker URL kept for back-compat.
Status
Live in production at mcp.davidloor.com/find-trials. v0.1.0. Hosted on Cloudflare Workers with observability enabled. Compatible with any MCP client that supports streamable HTTP (ChatGPT, Claude, others). Stateless design plus response caching keeps the running cost effectively zero on Cloudflare's Workers Paid plan.
Want similar work for your team?
AI-native senior engineering for AI, cloud, and web. Open to consulting engagements and full-time roles.