Skip to main content
Glama
drvvek
by drvvek

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
FAERS_MCP_HOSTNoSets the default host for HTTP transport. Example: '10.0.0.5'.127.0.0.1
FAERS_MCP_PORTNoSets the default port for HTTP transport. Example: '8010'.
FAERS_CACHE_DIRNoSet FAERS_CACHE_DIR to relocate the cache directory; it defaults to ~/.faers_mcp_cache.~/.faers_mcp_cache
OPENFDA_API_KEYNoopenFDA API key. Without a key: 1,000 requests/day and a count limit ceiling of 999. With a key: 120,000 requests/day and limit up to 1,000. Read from OPENFDA_API_KEY and sent as an HTTP Basic auth header, never in the query string.
FAERS_MCP_TRANSPORTNoSets the default transport. Example: 'http'.stdio

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
faers_search_casesA

Search FAERS for individual case safety reports (ICSRs).

Returns compact triage cards by default: report id, dates, seriousness flags, suspect drugs, reactions and outcomes. Pass full=true for complete records.

faers_case_countsA

Total, serious and fatal case counts for a drug, optionally by event.

All counts are issued concurrently as a single round trip.

faers_disproportionalityA

Build the 2x2 contingency table and compute ROR, PRR and chi-square.

Any date window or raw_filter is applied to all four marginals including the grand total N, so the table stays internally consistent. Screening criteria are reported individually by name rather than collapsed into a verdict.

faers_count_by_fieldB

Aggregate FAERS reports for a drug by any field (SQL GROUP BY equivalent).

faers_top_eventsA

Top MedDRA preferred terms reported with a drug.

Convenience form of faers_count_by_field with the reaction field preset.

faers_get_reportA

Retrieve one complete ICSR by Safety Report ID.

The only tool that returns an unprojected record; a single ICSR averages ~72 KB.

faers_demographic_profileA

Sex, age, reporter qualification and country breakdown for a drug.

Age is reported two ways: the coded patientagegroup (populated on ~18% of reports) and bands derived from patientonsetage in years (~55%), the same bands the stratifiers use. Each carries its own coverage against the total.

faers_outcome_breakdownB

Reaction outcomes and seriousness criteria for a drug, in one concurrent round trip.

faers_time_trendA

Yearly reporting trend for a drug, aggregated from receivedate.

count=receivedate returns a complete date histogram irrespective of limit, so the yearly rollup is exact. Date buckets arrive keyed "time", not "term".

faers_coreported_drugsA

Substances most often appearing on the same reports as an index drug.

Co-REPORTED at any role, not co-suspect: openFDA cannot restrict a count to substances carried as suspect, so the list is dominated by concomitant medication.

faers_signal_screenA

Screen a drug against all its reported events, or an event against all its drugs.

ROR, PRR and chi-square for every term with named criteria. The database-wide marginals come from a single cached count call rather than one call per term, so a 200-term screen costs ~13 calls cold and ~10 warm. Any date window or raw_filter is applied to every marginal.

faers_raw_searchA

Escape hatch: run an arbitrary Lucene query against the FAERS endpoint.

The query is checked for balanced quotes and parentheses and for the "+AND+" mistake before being sent; the same compact projection and ceilings apply.

faers_describe_fieldsA

Searchable FAERS field paths with coded values and traps, plus the available stratifiers.

Consult before writing a raw_filter or count_field rather than guessing a path.

faers_ebgmA

Empirical Bayes signal scores (EBGM with EB05/EB95) via the Gamma-Poisson Shrinker.

EBGM shrinks the observed-to-expected ratio toward 1 in proportion to how little evidence supports it. EB05 is the conventional screening statistic; EB05 > 2 is the usual threshold. The prior is fitted across a drug x event background table, so the FIRST call for a FAERS release builds and caches that table (~100 s, 3 + background_drugs calls). Call faers_warm_cache first, or raise the client timeout. Later calls take a few seconds.

faers_warm_cacheA

Build the EBGM background table and fit the prior ahead of time.

The first faers_ebgm call for a FAERS release takes ~100 s and 100+ API calls, which exceeds many MCP client timeouts. Calling this tool first moves that cost to a turn that expects it; subsequent faers_ebgm calls take a few seconds. Reports whether each cache was already warm.

Prompts

Interactive templates invoked by user choice

NameDescription
faers_signal_workupStructured signal work-up for one drug, or one drug-event pair.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 15 tools

Disambiguation4/5

Most tools have clearly distinct purposes, but there is notable overlap among counting/aggregation tools (faers_case_counts, faers_count_by_field, faers_top_events) and signal detection tools (faers_signal_screen vs faers_disproportionality). The detailed descriptions clarify scope (e.g., top_events is a convenience form, signal_screen screens all terms), so an agent can usually tell them apart, but a few could still be confused.

Naming Consistency4/5

All tools use a consistent faers_ prefix and snake_case, which is predictable. However, the naming pattern is not strictly verb_noun throughout; it mixes verb phrases (search_cases, get_report) with noun phrases (case_counts, demographic_profile) and acronyms (ebgm). This is a minor deviation from the ideal verb_noun consistency.

Tool Count5/5

15 tools is appropriate for a comprehensive FAERS analysis server, covering search, retrieval, aggregation, signal detection, and specialized metrics. Each tool appears to earn its place, with only minor redundancy (e.g., top_events as a convenience wrapper). The count is at the upper end of the ideal 3-15 range but well-scoped.

Completeness5/5

The tool set covers the full lifecycle of FAERS analysis: search (structured and raw), retrieval, counts, disproportionality, EBGM, demographics, outcomes, trends, and co-reported drugs. Field description and cache warming are also included. No obvious gaps for typical signal detection workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues