Case Study · MCP Servers / Data Engineering · 2026

Safety

MCPs

MCP servers that turn the regulators' safety databases
into tools an agent can call.

Scroll
{"jsonrpc": "2.0", "method": "tools/call"} heap_bytes / file_bytes < 5 for entity in all_6342: resolve(entity)
01

The Problem.

An agent is only as good as its tools, and public safety data has no clean API. EudraVigilance sits behind a BI portal, the MHRA publishes interactive dashboards, openFDA throttles bursts. The first version scraped the portal through a proxy: about 35 seconds per query, and roughly 40% of calls failed.

02

The Solution.

Three MCP servers built at Kirha, for EudraVigilance, MHRA Yellow Card and openFDA. The breakthrough was reading how the portal itself exports data: its own CSV endpoint answers in about a second, with no proxy. Resolution rules (which substance does this name mean?) are tested on exhaustive sweeps of all 6,342 entities instead of samples, because the sample had missed a whole class of errors. Tool descriptions stay minimal, since every token in the catalog costs the planner accuracy. Parsers are memory-profiled after a production incident traced to string building.

From a public portal to an agent tool.
01 Source Portals, dashboards and public APIs
02 Access Native exports instead of scraping
03 Resolve Names to entities, tested exhaustively
04 Expose Concise MCP tools and schemas
05 Serve Agents call them through search
~1s Per query Down from about 35 seconds
6,342 Entities swept Exhaustive, not sampled
3 Sources EudraVigilance / MHRA / openFDA
The Stack.
01 TypeScript MCP servers
02 MCP Model Context Protocol
03 Zod Input and output schemas
04 Meilisearch Entity catalogs
05 Kubernetes Deployment
← Back to works Next: Planner Benchmark →