Pharmaceutical Benefits Scheme (PBS) MCP AI Enabled API Server について
この独立型MCPサーバーは、オーストラリアのPharmaceutical Benefits Scheme(PBS)公開APIをAIモデルやアプリケーションから利用できるようにします。医薬品、価格、入手状況などを照会でき、stdioとHTTP/SSEに対応し、CLIも備えています。
主な機能
- 01PBS APIエンドポイントの照会
- 02stdioとHTTP/SSEに対応
- 03エンドポイント照会用CLI
- 04レート制限と認証エラーへの対応
活用シーン
- 01医薬品情報やPBSコードの検索
- 02医薬品の価格と入手状況の取得
- 03処方者やPBS項目の絞り込み
MCP 対応
MCPクライアントにPBS APIを照会するツールを提供し、構造化された医薬品データを返します。stdioとHTTP/SSEのトランスポートに対応しています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Pharmaceutical Benefits Scheme (PBS) MCP AI Enabled API Server 
オーストラリアの Pharmaceutical Benefits Scheme(PBS)API にアクセスするための、スタンドアロンの Model Context Protocol(MCP)サーバーです。
作者について
この PBS MCP サーバーは、https://ai-advantage.au の創設者であり、自動化、AI エンジニアリング、AI 統合、医療データシステムを専門とする [Matthew Cage] が開発しました。
ぜひご協力ください: https://www.linkedin.com/in/digitalmarketingstrategyexpert/
概要
このプロジェクトは、AI モデルがオーストラリアの Pharmaceutical Benefits Scheme(PBS)API にアクセスできるスタンドアロンの MCP サーバーを提供します。この API には、オーストラリアの医薬品、価格、入手可能性に関する情報が含まれています。
このプロジェクトは Public API 向けに構築されていますが、開発者アクセスが許可されている場合は、Private API にも簡単に適応できます。
PBS API は、医薬品の掲載情報、価格、入手可能性など、PBS データへのプログラムによるアクセスを提供します。この MCP サーバーを使用すると、PBS データを AI ワークフローに簡単に統合できます。
MCP は HTTP と CLI で利用できます。
PBS のレート制限に注意し、リクエスト頻度を調整してください。API から必要な情報を取得して保存するため、定期的に呼び出し、週単位で更新することをおすすめします。
MCP サーバーの機能 
この MCP サーバーは、以下の Model Context Protocol の機能を実装しています。
- ツール:PBS API エンドポイントにクエリを実行するツールを提供し、AI モデルが医薬品データにアクセスできるようにします
- トランスポート層:stdio と HTTP/SSE の両方のトランスポート層をサポートします
- エラー処理:API のレート制限や認証の問題に対応する包括的なエラー処理を備えています
- LLM 統合:LLM コンポーネントからツール呼び出しとプロンプトを直接受け取り、PBS データとのシームレスな AI 対話を可能にします
仕組み
MCP クライアント は、次のように動作します。
- ツール呼び出しを受信:LLM(Claude など)が医薬品データを必要とすると、このサーバーにツール呼び出しを送信します
- プロンプトを処理:医薬品情報に関する自然言語のプロンプトを解釈します
- API クエリを実行:リクエストを適切な PBS API 呼び出しに変換します
- 構造化データを返す:LLM が応答に利用できる、形式を整えた医薬品データを返します
これにより、AI アシスタントは、学習データにこの情報を含めておく必要なく、最新の PBS 情報にアクセスできます。
インストール
-
このリポジトリをクローンします。
git clone <repository-url> cd pbs-mcp-standalone -
依存関係をインストールします。
npm install -
プロジェクトをビルドします。
npm run build
使用方法
サーバーの起動 
PBS MCP サーバーは、さまざまなモードで実行できます。
Stdio モード(デフォルト)
このモードは MCP プロトコルに対応しており、標準入出力ストリームを介して通信します。
npm start
または、付属の起動スクリプトを使用します。
./start.sh
SSE 対応の HTTP モード
このモードでは、Server-Sent Events(SSE)に対応した HTTP サーバーを起動します。
npm run start:http
または、付属の起動スクリプトを使用します。
./start.sh http 3000
3000 は待ち受けるポート番号です。
コマンドラインインターフェイス
PBS MCP サーバーは、コマンドラインツールとしても使用できます。
npm run cli -- <command>
または、付属の起動スクリプトを使用します。
./start.sh cli <command>
例:
./start.sh cli info
コマンドラインツールとしての使用
この MCP サーバーをコマンドラインツールとして使用するには、次の手順に従います。
-
プロジェクトをビルドします。
npm run build -
使用するコマンドを指定して CLI を実行します。
npm run cli -- <command>または、起動スクリプトを使用します。
./start.sh cli <command>
MCP クライアントとの統合 
このサーバーは、次のような MCP 対応クライアントと統合できます。
- ローカル AI エディターおよび AI/LLM サーバー
- Model Context Protocol に対応したその他の AI アシスタント
- MCP クライアントライブラリを使用するカスタムアプリケーション
クライアント設定例
このサーバーを MCP クライアントと設定する方法の例を示します。
{
"mcpServers": {
"pbs-api": {
"command": "node",
"args": ["path/to/pbs-mcp-standalone/build/index.js"],
"env": {
"PBS_API_SUBSCRIPTION_KEY": "your-subscription-key-here"
}
}
}
}
クライアントからサーバーにアクセスする
クライアントからこの MCP サーバーにアクセスするには、次の手順に従います。
-
Claude Desktop またはその他の MCP 互換 AI アシスタントの場合:
- このサーバーを MCP ツールプロバイダーとして使用するよう、アシスタントを設定します
- アシスタントは、このサーバーが提供するツールを自動的に検出して使用します
- LLM は、薬剤に関する自然言語のプロンプトを送信でき、サーバーがそれを処理します
-
カスタムアプリケーションの場合:
- 以下で説明する HTTP API エンドポイントを使用します
- SSE エンドポイントに接続して、ツールイベントをリアルタイムで受信します
- または、サーバープロセスを起動して、標準入力/標準出力を介して通信します
LLM プロンプトの例
サーバーは、次のようなさまざまな LLM プロンプトを解釈できます。
"Find information about metformin in the PBS"
"What is the PBS code for insulin?"
"List all prescribers who can prescribe antibiotics"
"Get the latest pricing for asthma medications"
これらの自然言語のプロンプトは、適切な PBS API 呼び出しに変換されます。
API ツールのパラメーター
PBS API ツールは、次のパラメーターを指定して使用できます。
{
"endpoint": "prescribers",
"method": "GET",
"params": {
"get_latest_schedule_only": "true",
"limit": "20"
}
}
パラメーター
endpoint(文字列、必須):アクセスする特定の PBS API エンドポイント(例:「prescribers」、「item-overview」)method(文字列、任意):使用する HTTP メソッド(ほとんどの PBS API 操作では GET を推奨します)。デフォルト:「GET」params(オブジェクト、任意):リクエストに含めるクエリパラメーターsubscriptionKey(文字列、任意):カスタムサブスクリプションキー。指定しない場合は、デフォルトのパブリックキーが使用されますtimeout(数値、任意):リクエストのタイムアウト時間(ミリ秒)。デフォルト:30000
HTTP API 
HTTP モードで実行すると、次のエンドポイントを利用できます。
ヘルスチェック
GET /health
サーバーのステータスを返します。
ツール一覧
GET /tools
利用可能なツールの一覧を返します。
SSE エンドポイント
GET /sse
SSE 接続を確立し、ツールイベントを送信します。
ツールの呼び出し(SSE)
POST /sse/:toolName
ツールを呼び出し、結果を SSE で送信します。
ツールの呼び出し(REST)
POST /api/:toolName
ツールを呼び出し、結果を JSON で返します。
コマンドラインインターフェース 
PBS MCP サーバーは、次のコマンドを使用してコマンドラインツールとして利用できます。
エンドポイント一覧
./start.sh cli list-endpoints
利用可能な PBS API エンドポイントをすべて一覧表示します。
API 情報の取得
./start.sh cli info
PBS API に関する情報を返します。
処方者の検索
./start.sh cli prescribers [options]
オプション:
-l, --limit <number>:ページあたりの結果数(デフォルト:10)-p, --page <number>:ページ番号(デフォルト:1)-c, --pbs-code <code>:PBS コードで絞り込みます-s, --schedule-code <code>:スケジュールコードで絞り込みます-t, --prescriber-type <type>:処方者の種類で絞り込みます-f, --fields <fields>:返すフィールドを指定します--latest:最新のスケジュールのみを取得します
品目概要の検索
./start.sh cli item-overview [options]
オプション:
-l, --limit <number>:ページあたりの結果数(デフォルト:10)-p, --page <number>:ページ番号(デフォルト:1)-s, --schedule-code <code>:スケジュールコードで絞り込みます-f, --fields <fields>:返すフィールドを指定します--latest:最新のスケジュールのみを取得します
任意のエンドポイントを検索
./start.sh cli query <endpoint> [options]
オプション:
-m, --method <method>:HTTP メソッド(デフォルト:GET)-p, --params <json>:JSON 文字列形式のクエリパラメーター-k, --subscription-key <key>:カスタムサブスクリプションキー-t, --timeout <milliseconds>:リクエストのタイムアウト時間(ミリ秒)
HTTP サーバーの起動
./start.sh cli serve [options]
オプション:
-p, --port <number>:リッスンするポート(デフォルト:3000)
利用可能なエンドポイント
PBS API には、さまざまな種類のデータにアクセスするための複数のエンドポイントがあります。
/- API 情報と変更履歴を提供するルートエンドポイント/prescribers- 処方者に関する情報/item-overview- PBS 項目に関する詳細情報/items- PBS 項目に関する基本情報/schedules- PBS スケジュールに関する情報/atc-codes- 解剖治療化学(ATC)分類コード/organisations- 組織に関する情報/restrictions- 制限に関する情報/parameters- パラメーターに関する情報/criteria- 基準に関する情報/copayments- 自己負担額に関する情報/fees- 手数料に関する情報/markup-bands- マークアップ区分に関する情報/programs- プログラムに関する情報/summary-of-changes- 変更の概要
エンドポイントの完全な一覧については、PBS API ドキュメントを参照してください。
使用例
API 情報を取得する
{
"endpoint": ""
}
処方者を取得する
{
"endpoint": "prescribers",
"params": {
"get_latest_schedule_only": "true",
"limit": "10"
}
}
最新のスケジュールとともに項目の概要を取得する
{
"endpoint": "item-overview",
"params": {
"get_latest_schedule_only": "true",
"limit": "5"
}
}
特定の PBS コードを指定して処方者を取得する
{
"endpoint": "prescribers",
"params": {
"pbs_code": "10001J",
"get_latest_schedule_only": "true"
}
}
認証
このツールは、PBS API にアクセスするためにサブスクリプションキーを使用します。PBS Developer Portal に登録すると、独自のキーを取得できます。
開発目的の設定については、.env.example ファイルを参照してください。
PBS API サブスクリプションキーを取得する
独自の PBS API サブスクリプションキーを取得するには、次の手順に従ってください。
-
PBS Data API Portal にアクセスする:
-
アカウントを作成する:
- 「Sign Up」をクリックして、新しいアカウントを作成します
- 詳細を入力し、メールアドレスを確認します
-
PBS API をサブスクライブする:
- ログインしたら、「Products」セクションに移動します
- 「PBS Public API v3」製品を選択します
- 「Subscribe」をクリックして、API へのアクセスをリクエストします
-
サブスクリプションキーを取得する:
- サブスクリプションが承認されたら、プロフィールに移動します
- 「Subscriptions」または「API Keys」セクションに移動します
- プライマリーキーまたはセカンダリーキーをコピーします
-
環境を設定する:
.env.exampleテンプレートを基に.envファイルを作成しますyour-subscription-key-hereを実際のサブスクリプションキーに置き換えます:PBS_API_SUBSCRIPTION_KEY=your-actual-subscription-key
注:PBS Public API のリクエスト頻度は、20 秒あたり 1 回に制限されています。この制限は、Public API の全ユーザーで共有されます。より高いリクエスト頻度の上限や、公開前データ(今後のスケジュール)へのアクセスが必要な場合は、PBS Developer Program を通じて特別なアクセスを申請してください。
制限事項
- PBS Public API のリクエスト頻度は、20 秒あたり 1 回に制限されています(全ユーザーで共有)
- Public API で利用できるのは、現在のスケジュールと過去 12 か月以内に公開されたスケジュールのみです
- 一部のエンドポイントでは、特定のパラメーターを指定する必要があります
- API の構造やエンドポイントは、時間の経過とともに変更される場合があります
追加リソース
ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細については LICENSE ファイルを参照してください。
❤️
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。