这是一个独立的模型上下文协议(MCP)服务器,用于访问澳大利亚药品福利计划(PBS)API。
该PBS MCP服务器由[Matthew Cage]开发,他是https://ai-advantage.au的创始人,专长于自动化、AI工程和AI集成以及医疗数据系统。
与我合作: https://www.linkedin.com/in/digitalmarketingstrategyexpert/
该项目提供了一个独立的MCP服务器,允许AI模型访问包含澳大利亚药品信息、定价和可用性的PBS API。
该项目是为公共API构建的,但可以轻松适应私有API,如果你已获得开发者访问权限。
PBS API提供了对PBS数据的程序化访问,包括药品清单、定价和可用性。这个MCP服务器使得将PBS数据整合到AI工作流中变得容易。
MCP可以通过HTTP和CLI访问。
请注意PBS的速率限制,并调整你的请求频率。建议定期调用以存储你需要从API获取的信息,并每周更新一次。
此MCP服务器实现了以下模型上下文协议特性:
MCP客户端 :
这使得AI助手能够访问最新的PBS信息,而无需在训练中包含这些数据。
克隆此仓库:
git clone <repository-url>
cd pbs-mcp-standalone
安装依赖项:
npm install
构建项目:
npm run build
PBS MCP服务器可以在不同模式下运行:
此模式兼容MCP协议,通过标准输入/输出流进行通信:
npm start
或者使用提供的启动脚本:
./start.sh
此模式启动带有服务端发送事件(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客户端的例子:
{
"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助手:
对于自定义应用程序:
服务器可以解释来自LLM的各种提示,例如:
"查找PBS中的二甲双胍信息"
"胰岛素的PBS代码是什么?"
"列出所有可以开抗生素的处方医生"
"获取哮喘药物的最新价格"
这些自然语言提示被翻译成适当的PBS 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模式运行时,以下端点可用:
GET /health
返回服务器的状态。
GET /tools
返回可用工具的列表。
GET /sse
建立SSE连接并发送工具事件。
POST /sse/:toolName
调用工具并通过SSE发送结果。
POST /api/:toolName
调用工具并以JSON形式返回结果。
PBS MCP服务器可以作为命令行工具使用,具有以下命令:
./start.sh cli list-endpoints
列出所有可用的PBS API端点。
./start.sh cli info
返回关于PBS API的信息。
./start.sh cli prescribers [选项]
选项:
-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 [选项]
选项:
-l, --limit <number>:每页的结果数量(默认:10)-p, --page <number>:页码(默认:1)-s, --schedule-code <code>:按时间表代码过滤-f, --fields <fields>:要返回的具体字段--latest:仅获取最新时间表./start.sh cli query <endpoint> [选项]
选项:
-m, --method <method>:HTTP方法(默认:GET)-p, --params <json>:作为JSON字符串的查询参数-k, --subscription-key <key>:自定义订阅密钥-t, --timeout <milliseconds>:请求超时时间(毫秒)./start.sh cli serve [选项]
选项:
-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文档。
{
"endpoint": ""
}
{
"endpoint": "prescribers",
"params": {
"get_latest_schedule_only": "true",
"limit": "10"
}
}
{
"endpoint": "item-overview",
"params": {
"get_latest_schedule_only": "true",
"limit": "5"
}
}
{
"endpoint": "prescribers",
"params": {
"pbs_code": "10001J",
"get_latest_schedule_only": "true"
}
}
此工具使用订阅密钥来访问PBS API。你可以通过注册PBS开发者门户来获取自己的密钥。
为了开发目的,请参阅.env.example文件以了解配置详情。
要获取自己的PBS API订阅密钥,请按照以下步骤操作:
访问PBS数据API门户:
创建账户:
订阅PBS API:
获取你的订阅密钥:
配置你的环境:
.env.example模板创建一个.env文件your-subscription-key-here替换为你实际的订阅密钥:
PBS_API_SUBSCRIPTION_KEY=your-actual-subscription-key
注意:PBS公共API的速率限制为每20秒一次请求。此限制在所有公共API用户之间共享。若需更高的速率限制或访问未来时间表(受限制数据),你可能需要通过PBS开发者计划申请特殊访问。
本项目根据MIT许可发布 - 详情见LICENSE文件。
❤️