프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

Openfda MCP Server

제작자: cyanheads버전 0.9.1i★ –i컴퓨터 또는 클라우드
레지스트리 이름io.github.cyanheads/openfda-mcp-server

설치

개요

제작자가 쓴 설명(영어 원문)

Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.

PopNx MCP의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 컴퓨터 또는 클라우드
  • 전송 방식: stdio, Streamable HTTP
  • 카테고리: 기타

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

설치하기 전에

  • 기본 점검: 1개 중 1개 통과
  • 제작자의 서버에서 실행돼요. 내가 요청한 내용은 제작자의 서버를 거쳐요.
  • 직접 입력할 값: 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_LEVEL

필요한 것

어떤 앱을 쓰세요?

위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.

웹, 데스크톱, 모바일의 Claude에서 쓸 수 있어요:

  1. Settings → Connectors 열기
  2. Add custom connector 누르기
  3. 아래 주소를 붙여 넣고 Add 누르기
  4. 로그인하라고 하면 제작자의 서비스에 로그인하기
SettingsConnectors1+ Add2https://…3
https://openfda.caseyjhand.com/mcp

또는 내 컴퓨터에서 실행하기

Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요

{
  "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"
      }
    }
  }
}

터미널에서 이 명령어를 실행하세요

claude mcp add --transport http openfda https://openfda.caseyjhand.com/mcp

또는 내 컴퓨터에서 실행하기

claude 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-server

실행하기 전에 빈 값을 채워 주세요.

Cursor에서 열기

또는 설정을 직접 복사하기

프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요

{
  "mcpServers": {
    "openfda": {
      "url": "https://openfda.caseyjhand.com/mcp"
    }
  }
}

또는 내 컴퓨터에서 실행하기

Cursor에서 열기

또는 설정을 직접 복사하기

프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요

{
  "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"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

VS Code에서 열기

또는 설정을 직접 복사하기

프로젝트의 .vscode/mcp.json에 붙여 넣으세요

{
  "servers": {
    "openfda": {
      "type": "http",
      "url": "https://openfda.caseyjhand.com/mcp"
    }
  }
}

또는 내 컴퓨터에서 실행하기

VS Code에서 열기

또는 설정을 직접 복사하기

프로젝트의 .vscode/mcp.json에 붙여 넣으세요

{
  "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"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요:

  1. 웹에서 ChatGPT 열기 → Settings → Connectors (Apps)
  2. Create 또는 Add 누르기(일부 요금제는 먼저 Advanced에서 Developer mode를 켜야 해요)
  3. 아래 주소를 붙여 넣고 이름을 정한 뒤 저장하기
  4. 로그인하라고 하면 제작자의 서비스에 로그인하기
SettingsConnectors1+ Create2https://…3
https://openfda.caseyjhand.com/mcp

메뉴 이름은 요금제나 시기에 따라 조금 다를 수 있어요.

선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.

직접 입력할 값

  • OPENFDA_API_KEY env
    Free API key from open.fda.gov — increases daily limit from 1K to 120K requests.
  • CANVAS_PROVIDER_TYPE env
    DataCanvas staging, on by default: stage=true or a canvas_id on an openfda_search_* tool or openfda_lookup_ndc stages the matched records as a SQL table for the openfda_dataframe_* tools. The DuckDB…
  • OPENFDA_DATAFRAME_DROP_ENABLED env
    Enable openfda_dataframe_drop, which deletes a table staged on a DataCanvas. Off by default; applies only when DataCanvas is enabled (CANVAS_PROVIDER_TYPE=duckdb).
  • OPENFDA_MIRROR_ENABLED env
    Serve exact-key lookups for drug/label, drug/ndc, drug/enforcement, and drug/drugsfda from a local bulk mirror instead of the API. Off by default; the initial harvest runs out-of-band via the mirror:…
  • OPENFDA_MIRROR_PATH env
    Directory holding one SQLite file per mirrored dataset.
  • OPENFDA_MIRROR_REFRESH_CRON env
    Cron expression for the in-process mirror refresh. HTTP transport only; stdio operators run mirror:refresh from the host. Requires the optional node-cron peer dependency.
  • OPENFDA_MIRROR_FALLBACK_LIVE env
    Fall back to the live API when the mirror is cold, missing the record, or failing. Disable to fail loudly instead.
  • OPENFDA_MIRROR_REFRESH_TIMEOUT_MS env
    Wall-clock budget for one scheduled refresh before it is aborted. Raise it for drug/label, the only multi-partition dataset.
  • OPENFDA_MIRROR_BASE_URL env
    Host serving the openFDA bulk download manifest. Override only to harvest from a private mirror of the dumps.
  • MCP_LOG_LEVEL env
    Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

할 수 있는 일

아직 이 서버의 도구 목록을 읽지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 GitHub 계정 cyanheads 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요

  • … 아직 점검 안 함

    계속 관리되고 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    엔드포인트 응답

    아직 점검하지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요

  • … 아직 점검 안 함

    OAuth로 로그인

    아직 점검하지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    아직 점검하지 않았어요. 엔드포인트를 점검할 때 도구 목록을 읽어요

기타 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 32620개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 32620개 중 75%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 32620개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

Openfda MCP Server, 안전한가요?

해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

둘 다 가능해요. 내 컴퓨터에 설치해도 되고, 클라우드 버전에 연결해도 돼요.

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.9.1)은 11일 전 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되기 때문에, 원격 MCP 서버를 지원하는 앱(예: 개발자 모드의 ChatGPT)에서도 쓸 수 있어요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Intervals MCP

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

Spec Driven Development

제작자: formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

내 컴퓨터에서 실행★ 440MIT14개월 전 업데이트
설치

Remote Desktop Commander

제작자: desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

클라우드에서 실행★ 211그저께 업데이트
설치

Intervals MCP

제작자: ljcl

Remote MCP server for intervals.icu run data and analysis

내 컴퓨터에서 실행오늘 업데이트
설치

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

@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


Overview

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.

Tools
ToolDescription
openfda_drug_profileOne drug name → consolidated FDA profile: identity, label, adverse events, recalls, approval, shortage
openfda_search_adverse_eventsSearch adverse event reports across drugs, food, and devices
openfda_search_animal_eventsSearch adverse event reports for veterinary drugs and devices
openfda_search_drug_shortagesSearch FDA drug shortage records by status, availability, therapeutic category, manufacturer
openfda_search_tobacco_reportsSearch problem reports for tobacco products, e-cigarettes, and vaping devices
openfda_search_recallsSearch enforcement reports and recall actions across drugs, food, and devices
openfda_count_valuesAggregate and tally unique values for any field across any openFDA endpoint
openfda_describe_fieldsReturn searchable field paths for an openFDA endpoint, grouped by category
openfda_get_drug_labelLook up FDA drug labeling (package inserts / SPL documents)
openfda_search_drug_approvalsSearch the Drugs@FDA database for NDA/ANDA application approvals
openfda_search_device_clearancesSearch FDA device premarket notifications: 510(k) clearances and PMA approvals
openfda_lookup_ndcLook up drugs in the NDC (National Drug Code) Directory
openfda_dataframe_describeList tables and column schemas staged on a DataCanvas
openfda_dataframe_queryRun read-only SQL over a result set staged on a DataCanvas
openfda_dataframe_dropDelete one table staged on a DataCanvas (opt-in, off by default)

Capability reference

openfda_drug_profile tool
  • One drug 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 combinations
  • Recalls and approval also search records openFDA never harmonized (product_description, products.active_ingredients.name); recalls_total gives the match count beside the newest 5 recalls
  • Sections label, 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 absent
  • Auth, configuration, and cancellation failures fail the whole call instead of degrading a section

openfda_search_adverse_events tool
  • category (drug, food, device) selects the endpoint and its record schema; up to 1000 records per page
  • Sortable date fields differ by category: receivedate (drug), date_created (food), date_received (device); another category's field fails as query_error
  • Text output decodes drug administration route, reaction outcome, and patient age group codes beside the raw value (via oral (048), fatal (5), elderly (6)); structured output keeps the codes

openfda_search_animal_events tool
  • Optional search over veterinary reports, e.g. animal.species, drug.active_ingredients.name, reaction.veddra_term_name, serious_ae; up to 1000 records per page
  • Brand and manufacturer names are masked as MSK on every record, so search by active ingredient; drug.manufacturer.registration_number narrows to one approval
  • Records carry animal species, breed, age, and weight, the drug and route, VeDDRA reaction terms, and outcome

openfda_search_drug_shortages tool
  • Optional search over status (Current / To Be Discontinued / Resolved), therapeutic_category, generic_name, or company_name; up to 1000 records per page
  • Each record's openfda block carries brand_name, product_ndc, and rxcui for chaining into openfda_get_drug_label or openfda_lookup_ndc

openfda_search_tobacco_reports tool
  • Optional search over tobacco_products, reported_health_problems, reported_product_problems, or nonuser_affected; up to 1000 records per page
  • Reports carry the problem arrays plus number_tobacco_products, number_health_problems, and number_product_problems counts

openfda_search_recalls tool
  • category (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 page
  • Enforcement records carry recall_number, classification (Class I/II/III), and status; device recall records carry product_res_number and recall_status instead, with no hazard classification

openfda_count_values tool
  • endpoint (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 way
  • truncated 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)
  • Always runs against the live API, even with the bulk mirror enabled

openfda_describe_fields tool
  • endpoint: the same 20 endpoints openfda_count_values accepts
  • Field paths grouped by category, each with type, 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 ranges

openfda_get_drug_label tool
  • Required search on label fields (openfda.brand_name, openfda.generic_name, openfda.manufacturer_name, set_id); limit defaults to 5, max 1000
  • A page over the 24,000-byte inline budget returns kind: "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 markup

openfda_search_drug_approvals tool
  • Optional search 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 page
  • Records carry application_number, sponsor_name, products[], and the application's full submissions[] history

openfda_search_device_clearances tool
  • pathway (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 page
  • 510(k) records carry k_number, device_name, and decision_date; PMA records carry pma_number, trade_name, and supplement_number

openfda_lookup_ndc tool
  • Required search over product_ndc, brand_name, generic_name, openfda.manufacturer_name, or active_ingredients.name; up to 1000 records per page
  • Records carry product_ndc, labeler_name, dosage_form, route, marketing_category, active_ingredients[], and packaging[]

openfda_dataframe_describe tool
  • canvas_id from a staged search; lists each table's name, kind, full staged row_count, and columns with DuckDB type and nullability
  • Fails as canvas_disabled when CANVAS_PROVIDER_TYPE=none, or canvas_not_found when the canvas_id has expired or never existed

openfda_dataframe_query tool
  • canvas_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 columns
  • Rows are capped at the canvas row limit, and truncated: true means page on with ORDER BY plus LIMIT/OFFSET; failures are canvas_disabled, canvas_not_found, missing_table, or invalid_query

openfda_dataframe_drop tool
  • Off by default: set OPENFDA_DATAFRAME_DROP_ENABLED=true to make it callable; otherwise it is listed as disabled on the landing page and absent from tools/list
  • canvas_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 place
  • Failures are canvas_disabled, canvas_not_found, or missing_table (already dropped, expired, or mistyped)

Features

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:

  • One client for all 20 openFDA endpoints, with retry on 429 and 5xx. No API key is needed (1K requests/day); a

앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요

PopNx에게 묻기