返回市场
MCP服务器_Pods

MCP服务器_Pods

作者:matthewdcage2 星标更新:2025-03-12

项目介绍

澳大利亚药品福利计划(PBS)MCP AI启用API服务器 MCP Server

这是一个独立的模型上下文协议(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 Server

此MCP服务器实现了以下模型上下文协议特性:

  • 工具:提供查询PBS API端点的工具,使AI模型能够访问药品数据
  • 传输层:支持stdio和HTTP/SSE传输层
  • 错误处理:全面的错误处理,针对API速率限制和身份验证问题
  • LLM集成:接收来自LLM组件的工具调用和提示,实现AI与PBS数据的无缝交互

工作原理

MCP客户端 MCP Client

  1. 接收工具调用:当一个LLM(如Claude)需要药品数据时,它会向此服务器发送一个工具调用
  2. 处理提示:解释关于药品信息的自然语言提示
  3. 执行API查询:将请求转换为适当的PBS API调用
  4. 返回结构化数据:发送回格式化的药品数据,供LLM在其响应中使用

这使得AI助手能够访问最新的PBS信息,而无需在训练中包含这些数据。

安装

  1. 克隆此仓库:

    git clone <repository-url>
    cd pbs-mcp-standalone
    
  2. 安装依赖项:

    
    npm install
    
  3. 构建项目:

    npm run build
    

使用

启动服务器 MCP Server

PBS MCP服务器可以在不同模式下运行:

Stdio模式(默认)

此模式兼容MCP协议,通过标准输入/输出流进行通信:

npm start

或者使用提供的启动脚本:

./start.sh

HTTP模式带SSE支持

此模式启动带有服务端发送事件(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服务器作为命令行工具使用:

  1. 构建项目:

    npm run build
    
  2. 运行CLI并指定所需命令:

    npm run cli -- <command>
    

    或者使用启动脚本:

    ./start.sh cli <command>
    

与MCP客户端集成 MCP Client

此服务器可以与任何兼容MCP的客户端集成,例如:

  • 本地AI编辑器和AI/LLM服务器
  • 支持模型上下文协议的其他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服务器:

  1. 对于Claude Desktop或其他兼容MCP的AI助手

    • 配置助手以使用此服务器作为MCP工具提供者
    • 助手将自动发现并使用此服务器提供的工具
    • LLM可以发送关于药品的自然语言提示,这些提示将由服务器处理
  2. 对于自定义应用程序

    • 使用下面描述的HTTP API端点
    • 连接到SSE端点以实时接收工具事件
    • 或者启动服务器进程并通过stdin/stdout进行通信

示例LLM提示

服务器可以解释来自LLM的各种提示,例如:

"查找PBS中的二甲双胍信息"
"胰岛素的PBS代码是什么?"
"列出所有可以开抗生素的处方医生"
"获取哮喘药物的最新价格"

这些自然语言提示被翻译成适当的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 MCP Server

当以HTTP模式运行时,以下端点可用:

健康检查

GET /health

返回服务器的状态。

列出工具

GET /tools

返回可用工具的列表。

SSE端点

GET /sse

建立SSE连接并发送工具事件。

工具调用(SSE)

POST /sse/:toolName

调用工具并通过SSE发送结果。

工具调用(REST)

POST /api/:toolName

调用工具并以JSON形式返回结果。

命令行界面 MCP Dev

PBS MCP服务器可以作为命令行工具使用,具有以下命令:

列出端点

./start.sh cli list-endpoints

列出所有可用的PBS API端点。

获取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>:请求超时时间(毫秒)

启动HTTP服务器

./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文档

示例用法

获取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开发者门户来获取自己的密钥。

为了开发目的,请参阅.env.example文件以了解配置详情。

获取PBS API订阅密钥

要获取自己的PBS API订阅密钥,请按照以下步骤操作:

  1. 访问PBS数据API门户

  2. 创建账户

    • 单击“注册”以创建新账户
    • 填写你的详细信息并验证你的电子邮件地址
  3. 订阅PBS API

    • 登录后,导航至“产品”部分
    • 选择“PBS Public API v3”产品
    • 单击“订阅”以请求访问API
  4. 获取你的订阅密钥

    • 在你的订阅被批准后,前往你的个人资料
    • 导航至“订阅”或“API密钥”部分
    • 复制你的主密钥或备用密钥
  5. 配置你的环境

    • 根据.env.example模板创建一个.env文件
    • your-subscription-key-here替换为你实际的订阅密钥:
      PBS_API_SUBSCRIPTION_KEY=your-actual-subscription-key
      

注意:PBS公共API的速率限制为每20秒一次请求。此限制在所有公共API用户之间共享。若需更高的速率限制或访问未来时间表(受限制数据),你可能需要通过PBS开发者计划申请特殊访问。

限制

  • PBS公共API的速率限制为每20秒一次请求(在所有用户间共享)
  • 只能通过公共API访问当前时间表和过去12个月内发布的那些时间表
  • 某些端点需要提供特定参数
  • API结构和端点可能会随时间变化

额外资源

许可

本项目根据MIT许可发布 - 详情见LICENSE文件。


MCP Server MCP Client MCP Dev MCP Enabled ❤️