| .. | ||
| .claude-plugin | ||
| agents | ||
| hooks | ||
| db.py | ||
| drug_category.md | ||
| mcp_common.py | ||
| os_client.py | ||
| pmda_server.py | ||
| pmda_tools.json | ||
| queries.py | ||
| README.md | ||
| requirements.txt | ||
| taxonomy.py | ||
pmda-drug-info — Claude Code MCP plugin
PMDA 添付文書ベース医薬指導 Q&A の MCP plugin(hu-sandbox/pmda v2e 98/100 baseline)。
アーキテクチャ
Claude Code (agent) → MCP stdio → pmda_server.py
├─ PG queries (drug_master / interaction / restriction / dosing)
└─ OS search (pmda_sections, sudachi C-mode)
10 tools: search_drugs, list_categories, list_drugs_in_category,
get_drug_master, get_drug_interactions, get_drug_restrictions,
get_drug_dosing, search_section_text, list_drug_chapters,
read_drug_chapter.
4 sub-agents(agents/*.md): single_drug, interaction,
patient_specific, adverse_event.
Plugin は独立配布
mygpt.* への依存なし。PG/OS への接続情報を環境変数で渡すだけで動く。
queries.py / db.py / os_client.py / taxonomy.py / drug_category.md
は hu-sandbox/pmda からコピーした自己完結セット。
環境変数
PMDA_PG_HOST Postgres ホスト (例: tunnel / pg.example.com)
PMDA_PG_PORT Postgres ポート (default 5432)
PMDA_PG_DB Postgres DB (例: gptbase)
PMDA_PG_USER Postgres ユーザ
PMDA_PG_PASSWORD Postgres パスワード
PMDA_OPENSEARCH_URL OpenSearch URL (例: http://admin:admin@tunnel:9200)
PMDA_OS_INDEX OS index 名(default: pmda_sections)
インストール
pip install -r requirements.txt
Claude Code:
# Plugin ディレクトリを Claude Code に登録(PROJECT 単位で)
/plugin install path/to/pmda-drug-info
.claude-plugin/plugin.json の mcpServers.pmda_drug_info が
python ./pmda_server.py を stdio MCP サーバとして起動する。
データ準備
Plugin は読み取り専用。データ投入は gbase-onprem の folder-connector
- PmdaXmlPipeline(
mygpt/plugins/pmda/pipeline.py)が一括管理する。
- PG: aerich migration
migrations/models/263_*_add_pmda_tables.pyで 4 表作成 - OS:
pmda_sectionsindex はmygpt/plugins/pmda/os_index.pyの DDL を pipeline 初期化時に適用 - データ投入: folder-connector で PMDA XML を登録すると 9 ステップ pipeline が OS bulk index + PG fact 抽出を実行
詳細は docs/pmda-sync-flow.md を参照。
動作確認
# stdio MCP リクエストを手動で投げる
echo '{"jsonrpc":"2.0","id":1,"method":"initialize"}' | python pmda_server.py
echo '{"jsonrpc":"2.0","id":2,"method":"tools/list"}' | python pmda_server.py
echo '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"search_drugs","arguments":{"query":"ロサルタン"}}}' | python pmda_server.py