Vaers について
Vaersは、VAERSのワクチン報告件数をワクチン、メーカー、症状、年、重症度別に調べるMCPサーバーです。個別の報告文は扱わず、結果には因果関係を示さない旨が付記されます。データ更新は手動です。
主な機能
- 01ワクチン・メーカー別の件数
- 02症状の言及件数
- 03年・重症度別の内訳
- 04収録範囲と読み込み日の確認
- 05因果関係を示さない旨の注記
活用シーン
- 01ワクチンや年ごとの報告件数の比較
- 02特定ワクチンに関する症状報告の確認
- 03データの収録範囲と更新状況の確認
MCP 対応
Pipeworxのエンドポイントまたは単独のローカルstdioサーバーとして、MCPクライアントにVAERS検索ツールを提供します。ゲートウェイ経由ではPipeworx共通のメタツールも利用できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://gateway.pipeworx.io/vaers/mcpclaude mcp add --transport http pipeworx-io-vaers https://gateway.pipeworx.io/vaers/mcp{"mcpServers":{"pipeworx-io-vaers":{"type":"http","url":"https://gateway.pipeworx.io/vaers/mcp"}}}Cursor で開く{"servers":{"pipeworx-io-vaers":{"type":"http","url":"https://gateway.pipeworx.io/vaers/mcp"}}}VS Code で開く{"mcpServers":{"pipeworx-io-vaers":{"type":"http","url":"https://gateway.pipeworx.io/vaers/mcp"}}}{"mcpServers":{"pipeworx-io-vaers":{"serverUrl":"https://gateway.pipeworx.io/vaers/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
vaers
VAERS(ワクチン有害事象報告システム)の報告件数 — ワクチン、 製造元、症状、年、重症度別。Fleet #1294。
Pipeworx の一部 — AI エージェントを1684以上の稼働中のデータソースに接続するMCPゲートウェイです。
VAERS報告は、確認済みの有害事象ではありません — まずお読みください
VAERSには誰でも報告できます — 患者、保護者、臨床医、製造元などです — そしてVAERSは報告内容を検証しません。ワクチンの報告件数の増加は、実際の安全性シグナルと同じくらい、接種回数の増加、メディアの注目、報告要件の変更を反映している可能性があります。CDCとFDAは、自らのデータについて次のように述べています。
報告件数だけでは、ワクチンと有害事象との因果関係の証拠、またはワクチンに関連する問題の存在、重症度、頻度、発生率に関する証拠として解釈できません。報告には、不完全、不正確、偶発的、未検証の情報が含まれている可能性があります。 — https://wonder.cdc.gov/wonder/help/vaers.html
以下のすべてのツールの応答には、この免責事項に加えて、文字列どおりの
is_causal: false フィールドが含まれます。そのため、ペイロードを読むモデルが報告件数を因果関係の主張にすり替えることはありません。ここにあるツールは、個別報告の自由記述テキストを返しません(SYMPTOM_TEXT、HISTORY、LAB_DATA、OTHER_MEDS、CUR_ILL、
ALLERGIES は保存すらされていません — 移行時のコメントを参照してください)。すべて、意図的に件数のみを扱います。
ツール
| ツール | 回答内容 |
|---|---|
vaers_events_by_vaccine | 年の範囲を指定して、ワクチン別(任意で製造元別)の報告件数と重症度の内訳を返します。vaccine を省略すると、報告件数上位のワクチンを表示します — これにより、vax_typeコードの検索もできます。 |
vaers_events_by_symptom | 症状(MedDRA基本語)別の報告記載件数を返します。任意でワクチンや年の範囲を指定して絞り込めます。symptom を省略すると、最も多く報告された症状を表示します。 |
vaers_coverage | ユニークな報告の総数、対象年の範囲、ワクチンと製造元の種類数、シードの最終読み込み日時、報告件数上位5ワクチンを返します。 |
集計規則 — ツール間で数値を比較する前にお読みください
複数のワクチンが記載された報告は、ワクチンごとに1回ずつ数えます —
これはCDC WONDERがVAERSで採用している規則と同じです。そのため、ある年のすべてのワクチンについて
report_count を合計すると、その年のユニークな報告総数(vaers_coverage.total_unique_reports)を超える場合があります。症状の件数は記載数です。複数の症状やワクチンが記載された報告は、それぞれの組み合わせに加算されます。
認証
不要です — キーもアカウントも必要ありません。このパックは、以下に記載するシードから構築された事前集計済みの報告件数をもとに回答します。
データソースとデータの取り込み方法
VAERSはCDCとFDAが共同運営しています — 公開データファイルは https://vaers.hhs.gov/data/datasets.html にあります。米国連邦政府のパブリックドメインデータです。
CDCがVAERS向けに公開している自動アクセス手段は、いずれもスクリプトから利用できません。
- 一括ダウンロードページにはCAPTCHA(画像による文字認証)が設けられています。
- CDC WONDER自体のXML APIでは、VAERS(データベース
D8)は稼働中のデータセットとして文書化されていますが、試したすべてのリクエスト形式に対して、エラーメッセージなしでHTTP 500が返されます — 認識はされているものの有効化されておらず、文書化もされていません。 data.cdc.govにあるVAERS関連の2つのリストは、WONDERへのhrefポインターであり、クエリ可能なSocrataデータセットではありません。
詳細な調査結果:docs/vaers-access-finding.md。
そのため、Bruceの決定(タスク #1294、2026-09-07)はシードを使い、手動で更新するというものです。
彼が上記のデータセットページから、全年度(1990-2026)と国外の報告を網羅する単一のアーカイブ AllVAERSDataCSVS.zip を手動でダウンロードし、このパックのローダーが取り込みます。外部に働きかける案(APIを有効化するようCDCにメールで依頼すること)は明示的に承認していません — 今後その案を進める場合も、Bruce本人の承認が必要です。
ストレージ — 生の行ではなく集計データを使う理由
シードデータは、報告行が280万件、ワクチン行が340万件、症状行が377万件です(非圧縮CSVで2.75GB、zipで589MB)。
ここのPostgresは小規模で、バッチ処理なしのロードで以前クラッシュしたことがあります(docs/medical-data-ingest-plan.md §3)。また、このパックのツールが回答するのは件数に関する質問だけで、生の行をそのまま出力することはありません。そのため、ローダー(scripts/ingest-vaers.mjs)はすべてをメモリ上で集計し、コミット済みのバッチで集計データのみを書き込みます。
| テーブル | 粒度 | 実測行数(1990~2026年+米国外のシードデータ) |
|---|---|---|
vaers_yearly_totals | 年 | 37 |
vaers_severity_by_vaccine | 年 × vax_type × manufacturer | 4,975 |
vaers_symptom_counts | 年 × vax_type × symptom | 961,457 |
Postgresの使用容量は合計で数十MBであり、数GBではありません。3つのRPC(vaers_vaccine_stats、vaers_symptom_stats、vaers_coverage_stats。supabase/migrations/165_vaers_aggregates.sqlを参照)で、テーブルが小さく単純なGROUP BYが高速なため、SQLでフィルタリングと合計を行います。
圧縮に関する注意:この種のバグは以前、関連する別のデータ取り込み(NCHSの出生データはDeflate64形式で、Nodeのzlibでは読み取れません)で発生したため、事前に確認しました。AllVAERSDataCSVS.zip内のすべてのエントリは方式8(通常のDeflate)であり、node:zlib.inflateRawSyncでそのまま読み取れます。ここにDeflate64の問題はありません。
更新(設計上、手動)
VAERSは毎週更新されます。CAPTCHAを回避する自動化された手段はないため、更新手順は次のとおりです。
- 人がhttps://vaers.hhs.gov/data/datasets.htmlから最新の
AllVAERSDataCSVS.zipをダウンロードします。 node scripts/ingest-vaers.mjs /path/to/AllVAERSDataCSVS.zip
ローダーは冪等性があり(ON CONFLICT ... DO UPDATE)、再実行できます。同じファイルまたは新しいファイルで再実行すると、集計データがその場で更新されます。データが切り詰められているように見える場合(年数が20年未満、重症度キーが1,000未満、または症状キーが100,000未満)は、データセットを黙って縮小するのではなく、ロードを拒否します。
提案する更新頻度:毎週。VAERS自体の公開ペースに合わせて、毎週再ダウンロードして再実行すれば、vaers_coverage.data_last_loadedを最新データの1週間以内に保てます。これは設計上、Bruceの時間を定期的に使うことになります(彼の判断による)。自動化された手段が利用可能になった場合(CDCがD8向けにWONDER APIを有効化する、または将来スクレイピング可能なインターフェースができるなど)は、スキーマではなく、このローダーを置き換えてください。
2つの書き込み方法を自動選択
ingest-vaers.mjsは、まず.env内でプラットフォームのデータベース認証情報を探します(高速なRESTバッチアップサート)。実行環境に認証情報がない場合は、チャンク化した冪等なSQLファイルを/tmp/vaers-sql/に書き込み、適用するためのsupabase db query --file ... --linkedコマンドを出力します。これはsupabase/migrations/165_vaers_aggregates.sqlの適用にも使われたManagement API経由の方法です。どちらの方法でも同じテーブルが生成されます。
対象外
- 個別の報告内容(
SYMPTOM_TEXT、HISTORYなど)。設計上、保存も返却もしません(上記を参照)。 - ロード済みのシードデータより後のデータ。最新性を前提にする前に
vaers_coverageを確認してください。 - FAERS(医薬品の有害事象)。これは
openfdaが対象です。VAERSの対象はワクチンのみです。
クイックスタート
MCPクライアント(Claude Desktop、Cursor、Windsurfなど)に追加します。
{
"mcpServers": {
"vaers": {
"url": "https://gateway.pipeworx.io/vaers/mcp"
}
}
}
このエンドポイントが実際に提供するもの
https://gateway.pipeworx.io/vaers/mcp の tools/list は、上の表にあるツールに加えて、共有の Pipeworx メタツールである ask_pipeworx、
discover_tools、search_within、remember/recall など、ゲートウェイ全体で利用できるツール一式を返します。そのため、表示されるツール数はこの表より多くなります。現在、単一パックのエンドポイントには、パック固有のツールとあわせて約 30 個の共有ツールが表示されます。接続の initialize レスポンスに正確な対象範囲が記載されており、その日の状況を確認するうえで最も信頼できる情報です。
これは意図的な仕様であり、偶然の多重化ではありません。メタツールを使うことで、このパックが対応していない質問にも、カタログ全体を横断してルーティングする ask_pipeworx を通じて回答できます。そのため、2 つ目の MCP サーバーを追加する必要はありません。現時点では、メタツールなしでパックのエンドポイントを接続する方法はありません。追加のスキーマによるコンテキスト消費がルーティングの利便性を上回る場合は、複数のパックエンドポイントではなく、フルゲートウェイに一度接続してください。
または、Pipeworx のフルゲートウェイに接続すると、このパックだけでなく、すべてのパックのツールが直接表示されます。
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
どちらの URL も同じゲートウェイと同じ 1684 以上のデータソースにアクセスします。違いは、どのパックのツールが直接表示されるかだけです。どちらからでも、ask_pipeworx を使ってすべてのツールにアクセスできます。
MCP クライアントをお持ちでない場合:HTTP で呼び出す
curl -X POST https://gateway.pipeworx.io/v1/tools/vaers_events_by_vaccine \
-H 'Content-Type: application/json' \
-d '{"vaccine":"COVID19","year_from":2021,"year_to":2022}'
最初の呼び出しにアカウントは必要ありません。ツールの詳細を確認するには、GET https://gateway.pipeworx.io/v1/tools/vaers_events_by_vaccine を使います。ツールを探すには、{"query":"..."} を指定して POST https://gateway.pipeworx.io/v1/tools/search_packs を使います。
スタンドアロン(ゲートウェイアカウント不要)
このパッケージは、ローカルの stdio MCP サーバーとしても実行できます。Pipeworx アカウントも、ゲートウェイへの往復通信も必要ありません。
{
"mcpServers": {
"vaers": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-vaers"]
}
}
}
または、起動を確認するために直接実行できます。
npx -y @pipeworx/mcp-vaers
stdin/stdout 経由で MCP を使用し、このパック固有のツールのみを対象に initialize/tools/list/tools/call に応答します。上記のゲートウェイ接続で追加される共有メタツールは含まれません。同じソース、同じツールで、ask_pipeworx によるルーティングはありません。
ask_pipeworx の使用
ツールを直接呼び出す代わりに、自然な英語で質問できます。この方法は、上記のパックエンドポイントでもフルゲートウェイでも利用できます。
ask_pipeworx({ question: "your question about Vaers data" })
ゲートウェイが適切なツールを選び、引数を自動的に設定します。
詳細情報
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。