Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Beschreibung vom Entwickler (englisches Original)
Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
OPENFDA_API_KEY, CANVAS_PROVIDER_TYPE, OPENFDA_DATAFRAME_DROP_ENABLED, OPENFDA_MIRROR_ENABLED, OPENFDA_MIRROR_PATH, OPENFDA_MIRROR_REFRESH_CRON, OPENFDA_MIRROR_FALLBACK_LIVE, OPENFDA_MIRROR_REFRESH_TIMEOUT_MS, OPENFDA_MIRROR_BASE_URL, MCP_LOG_LEVELDu brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Funktioniert in Claude im Web, auf dem Desktop und auf dem Handy:
https://openfda.caseyjhand.com/mcpÖffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"openfda": {
"command": "npx",
"args": [
"-y",
"@cyanheads/openfda-mcp-server"
],
"env": {
"OPENFDA_API_KEY": "your-value",
"CANVAS_PROVIDER_TYPE": "your-value",
"OPENFDA_DATAFRAME_DROP_ENABLED": "your-value",
"OPENFDA_MIRROR_ENABLED": "your-value",
"OPENFDA_MIRROR_PATH": "your-value",
"OPENFDA_MIRROR_REFRESH_CRON": "your-value",
"OPENFDA_MIRROR_FALLBACK_LIVE": "your-value",
"OPENFDA_MIRROR_REFRESH_TIMEOUT_MS": "your-value",
"OPENFDA_MIRROR_BASE_URL": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}Führe das in deinem Terminal aus
claude mcp add --transport http openfda https://openfda.caseyjhand.com/mcpclaude mcp add openfda --env OPENFDA_API_KEY=your-value --env CANVAS_PROVIDER_TYPE=your-value --env OPENFDA_DATAFRAME_DROP_ENABLED=your-value --env OPENFDA_MIRROR_ENABLED=your-value --env OPENFDA_MIRROR_PATH=your-value --env OPENFDA_MIRROR_REFRESH_CRON=your-value --env OPENFDA_MIRROR_FALLBACK_LIVE=your-value --env OPENFDA_MIRROR_REFRESH_TIMEOUT_MS=your-value --env OPENFDA_MIRROR_BASE_URL=your-value --env MCP_LOG_LEVEL=your-value -- npx -y @cyanheads/openfda-mcp-serverTrag die leeren Werte ein, bevor du ihn startest.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"openfda": {
"url": "https://openfda.caseyjhand.com/mcp"
}
}
}In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"openfda": {
"command": "npx",
"args": [
"-y",
"@cyanheads/openfda-mcp-server"
],
"env": {
"OPENFDA_API_KEY": "your-value",
"CANVAS_PROVIDER_TYPE": "your-value",
"OPENFDA_DATAFRAME_DROP_ENABLED": "your-value",
"OPENFDA_MIRROR_ENABLED": "your-value",
"OPENFDA_MIRROR_PATH": "your-value",
"OPENFDA_MIRROR_REFRESH_CRON": "your-value",
"OPENFDA_MIRROR_FALLBACK_LIVE": "your-value",
"OPENFDA_MIRROR_REFRESH_TIMEOUT_MS": "your-value",
"OPENFDA_MIRROR_BASE_URL": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"openfda": {
"type": "http",
"url": "https://openfda.caseyjhand.com/mcp"
}
}
}In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"openfda": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@cyanheads/openfda-mcp-server"
],
"env": {
"OPENFDA_API_KEY": "your-value",
"CANVAS_PROVIDER_TYPE": "your-value",
"OPENFDA_DATAFRAME_DROP_ENABLED": "your-value",
"OPENFDA_MIRROR_ENABLED": "your-value",
"OPENFDA_MIRROR_PATH": "your-value",
"OPENFDA_MIRROR_REFRESH_CRON": "your-value",
"OPENFDA_MIRROR_FALLBACK_LIVE": "your-value",
"OPENFDA_MIRROR_REFRESH_TIMEOUT_MS": "your-value",
"OPENFDA_MIRROR_BASE_URL": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
ChatGPT verbindet sich nur mit Servern im Internet:
https://openfda.caseyjhand.com/mcpMenünamen können sich je nach Tarif und mit der Zeit leicht unterscheiden.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
OPENFDA_API_KEY envCANVAS_PROVIDER_TYPE envOPENFDA_DATAFRAME_DROP_ENABLED envOPENFDA_MIRROR_ENABLED envOPENFDA_MIRROR_PATH envOPENFDA_MIRROR_REFRESH_CRON envOPENFDA_MIRROR_FALLBACK_LIVE envOPENFDA_MIRROR_REFRESH_TIMEOUT_MS envOPENFDA_MIRROR_BASE_URL envMCP_LOG_LEVEL envDiese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Die Tool-Liste dieses Servers haben wir noch nicht gelesen; wir prüfen die Endpunkte reihum.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto cyanheads bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Noch nicht geprüft; wir prüfen die Endpunkte reihum
Noch nicht geprüft; wir prüfen die Endpunkte reihum
Noch nicht geprüft; wir lesen die Tool-Liste, wenn wir den Endpunkt prüfen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Beides geht: Installiere ihn auf deinem Computer oder verbinde dich mit der Cloud-Version.
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.9.1) kam vor 11 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Er verbindet sich per URL, also funktionieren auch Apps, die Remote-MCP-Server akzeptieren, zum Beispiel ChatGPT im Entwicklermodus.
In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, AvaHR
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Read hiring data and create inactive assessment and questionnaire drafts for human review.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
@cyanheads/openfda-mcp-server Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP. 15 Tools
Public Hosted Server: https://openfda.caseyjhand.com/mcp
FDA data on drugs, food, devices, and recalls from the openFDA public API. Search adverse events, recalls, drug approvals, and device clearances; look up NDC codes and drug labels; aggregate field counts across any endpoint.
| Tool | Description |
|---|---|
openfda_drug_profile | One drug name → consolidated FDA profile: identity, label, adverse events, recalls, approval, shortage |
openfda_search_adverse_events | Search adverse event reports across drugs, food, and devices |
openfda_search_animal_events | Search adverse event reports for veterinary drugs and devices |
openfda_search_drug_shortages | Search FDA drug shortage records by status, availability, therapeutic category, manufacturer |
openfda_search_tobacco_reports | Search problem reports for tobacco products, e-cigarettes, and vaping devices |
openfda_search_recalls | Search enforcement reports and recall actions across drugs, food, and devices |
openfda_count_values | Aggregate and tally unique values for any field across any openFDA endpoint |
openfda_describe_fields | Return searchable field paths for an openFDA endpoint, grouped by category |
openfda_get_drug_label | Look up FDA drug labeling (package inserts / SPL documents) |
openfda_search_drug_approvals | Search the Drugs@FDA database for NDA/ANDA application approvals |
openfda_search_device_clearances | Search FDA device premarket notifications: 510(k) clearances and PMA approvals |
openfda_lookup_ndc | Look up drugs in the NDC (National Drug Code) Directory |
openfda_dataframe_describe | List tables and column schemas staged on a DataCanvas |
openfda_dataframe_query | Run read-only SQL over a result set staged on a DataCanvas |
openfda_dataframe_drop | Delete one table staged on a DataCanvas (opt-in, off by default) |
openfda_drug_profile tooldrug name, brand or generic, resolved once to an identity (generic name, NDC, RxCUI, SPL set ID); recalls, approval, and shortage key on meta.fanOutKey — the typed name when it is an ingredient of the resolved generic, else that generic; meta.resolvedVia (label, ndc, none) names the source, and a single-ingredient product is preferred over combinationsproduct_description, products.active_ingredients.name); recalls_total gives the match count beside the newest 5 recallslabel, adverse_events, recalls, approval, and shortage are best-effort and come back null (or an empty recalls) on a miss; degraded[] names each section whose sub-query failed upstream, so a listed section is unknown rather than absentopenfda_search_adverse_events toolcategory (drug, food, device) selects the endpoint and its record schema; up to 1000 records per pagereceivedate (drug), date_created (food), date_received (device); another category's field fails as query_errorvia oral (048), fatal (5), elderly (6)); structured output keeps the codesopenfda_search_animal_events toolsearch over veterinary reports, e.g. animal.species, drug.active_ingredients.name, reaction.veddra_term_name, serious_ae; up to 1000 records per pageMSK on every record, so search by active ingredient; drug.manufacturer.registration_number narrows to one approvalopenfda_search_drug_shortages toolsearch over status (Current / To Be Discontinued / Resolved), therapeutic_category, generic_name, or company_name; up to 1000 records per pageopenfda block carries brand_name, product_ndc, and rxcui for chaining into openfda_get_drug_label or openfda_lookup_ndcopenfda_search_tobacco_reports toolsearch over tobacco_products, reported_health_problems, reported_product_problems, or nonuser_affected; up to 1000 records per pagenumber_tobacco_products, number_health_problems, and number_product_problems countsopenfda_search_recalls toolcategory (drug, food, device) plus endpoint: enforcement (default, every category) or recall (devices only; other categories fail as recall_endpoint_non_device); up to 1000 records per pagerecall_number, classification (Class I/II/III), and status; device recall records carry product_res_number and recall_status instead, with no hazard classificationopenfda_count_values toolendpoint (any of the 20 openFDA endpoints), a count field expression, and an optional search; returns up to 1000 top terms (default 100), ranked by count; a date field returns one term per distinct YYYYMMDD date, ranked the same waytruncated flags more distinct terms past limit, except at the 1000-term maximum, where a notice says completeness can't be known (a date count is exact at any limit, since openFDA sends every date); an expression openFDA can't aggregate fails as not_aggregatable (take the countAs form from openfda_describe_fields)openfda_describe_fields toolendpoint: the same 20 endpoints openfda_count_values acceptstype, a description, and countAs (the verified count expression, or null when the field can't be aggregated), plus queryTips on quoting, AND/OR, .exact, and date rangesopenfda_get_drug_label toolsearch on label fields (openfda.brand_name, openfda.generic_name, openfda.manufacturer_name, set_id); limit defaults to 5, max 1000kind: "outline" (section names and sizes, largest first) instead of label text; re-call with sections: [...] to get those sections plus identity metadata (openfda, set_id, id, effective_time, version), returned whole even when over budget*_table sections render as Markdown tables in the text output; structured results keep the raw SPL markupopenfda_search_drug_approvals toolsearch over openfda.brand_name, sponsor_name (stored uppercase, so a lowercase quoted value matches nothing), submissions.submission_type, or submissions.review_priority; up to 1000 records per pageapplication_number, sponsor_name, products[], and the application's full submissions[] historyopenfda_search_device_clearances toolpathway (510k or pma, one per call) plus an optional search over applicant, product_code, advisory_committee_description, or openfda.device_name; up to 1000 records per pagek_number, device_name, and decision_date; PMA records carry pma_number, trade_name, and supplement_numberopenfda_lookup_ndc toolsearch over product_ndc, brand_name, generic_name, openfda.manufacturer_name, or active_ingredients.name; up to 1000 records per pageproduct_ndc, labeler_name, dosage_form, route, marketing_category, active_ingredients[], and packaging[]openfda_dataframe_describe toolcanvas_id from a staged search; lists each table's name, kind, full staged row_count, and columns with DuckDB type and nullabilitycanvas_disabled when CANVAS_PROVIDER_TYPE=none, or canvas_not_found when the canvas_id has expired or never existedopenfda_dataframe_query toolcanvas_id plus one read-only SELECT; DDL, DML, COPY, and file-reading functions are rejected. Scalars are stored as text (CAST for math) and nested openFDA blocks as JSON columnstruncated: true means page on with ORDER BY plus LIMIT/OFFSET; failures are canvas_disabled, canvas_not_found, missing_table, or invalid_queryopenfda_dataframe_drop toolOPENFDA_DATAFRAME_DROP_ENABLED=true to make it callable; otherwise it is listed as disabled on the landing page and absent from tools/listcanvas_id plus the table name from openfda_dataframe_describe; deletes that one table or view and returns remaining_tables, leaving the canvas and its other tables in placecanvas_disabled, canvas_not_found, or missing_table (already dropped, expired, or mistyped)Built on @cyanheads/mcp-ts-core: stdio and Streamable HTTP transports, pluggable auth (none / jwt / oauth), swappable storage (in-memory, filesystem, Supabase, Cloudflare KV/R2/D1), structured logging with optional OpenTelemetry tracing.
openFDA-specific:
Nur der Anfang wird gezeigt; den Rest findest du im Repo