PBS API
Accede a datos del Esquema de Beneficios Farmacéuticos de Australia para obtener información sobre medicamentos, precios y disponibilidad. Construido con Python y FastAPI.
Documentación
Servidor MCP AI habilitado para el Esquema de Beneficios Farmacéuticos (PBS) 
Un servidor independiente de Protocolo de Contexto de Modelo (MCP) para acceder a la API del Esquema de Beneficios Farmacéuticos (PBS) de Australia.
Sobre el Autor
Este servidor MCP de PBS fue desarrollado por [Matthew Cage], Fundador de https://ai-advantage.au,, especialista en Automatización, Ingeniería de IA, integración de IA y sistemas de datos de salud.
Colabora conmigo: https://www.linkedin.com/in/digitalmarketingstrategyexpert/
Descripción General
Este proyecto proporciona un servidor MCP independiente que permite a los modelos de IA acceder a la API del Esquema de Beneficios Farmacéuticos (PBS) de Australia, que contiene información sobre medicamentos, precios y disponibilidad en Australia.
El proyecto está construido para la API pública, pero puede adaptarse fácilmente a la API privada si se le ha otorgado acceso de desarrollador.
La API de PBS proporciona acceso programático a los datos de PBS, incluyendo listados de medicamentos, precios y disponibilidad. Este servidor MCP facilita la integración de los datos de PBS en flujos de trabajo de IA.
El MCP está disponible a través de HTTP y CLI.
Tenga en cuenta los límites de tasa de la PBS y ajuste su frecuencia de solicitudes. Recomiendo una llamada periódica para almacenar la información que necesite de la API y actualizarla semanalmente.
Características del Servidor MCP 
Este servidor MCP implementa las siguientes características del Protocolo de Contexto de Modelo:
- Herramientas: Proporciona herramientas para consultar los endpoints de la API de PBS, permitiendo a los modelos de IA acceder a datos farmacéuticos
- Capas de Transporte: Soporta capas de transporte stdio y HTTP/SSE
- Manejo de Errores: Manejo integral de errores para límites de tasa de API y problemas de autenticación
- Integración con LLM: Recibe llamadas de herramientas y prompts directamente de componentes LLM, permitiendo una interacción fluida de IA con los datos de PBS
Cómo Funciona
El Cliente MCP :
- Recibe Llamadas de Herramientas: Cuando un LLM (como Claude) necesita datos farmacéuticos, envía una llamada de herramienta a este servidor
- Procesa Prompts: Interpreta prompts de lenguaje natural sobre información de medicamentos
- Ejecuta Consultas de API: Traduce las solicitudes en llamadas apropiadas a la API de PBS
- Devuelve Datos Estructurados: Envía de vuelta datos farmacéuticos formateados que el LLM puede usar en sus respuestas
Esto permite que los asistentes de IA accedan a información actualizada de PBS sin necesidad de tener estos datos en su entrenamiento.
Instalación
-
Clone este repositorio:
git clone <repository-url> cd pbs-mcp-standalone -
Instale las dependencias:
npm install -
Construya el proyecto:
npm run build
Uso
Iniciando el Servidor 
El servidor MCP de PBS puede ejecutarse en diferentes modos:
Modo Stdio (Predeterminado)
Este modo es compatible con el protocolo MCP y se comunica a través de flujos estándar de entrada/salida:
npm start
O use el script de inicio proporcionado:
./start.sh
Modo HTTP con Soporte SSE
Este modo inicia un servidor HTTP con soporte de Eventos Enviados por el Servidor (SSE):
npm run start:http
O use el script de inicio proporcionado:
./start.sh http 3000
Donde 3000 es el número de puerto en el que escuchar.
Interfaz de Línea de Comandos
El servidor MCP de PBS también puede usarse como herramienta de línea de comandos:
npm run cli -- <command>
O use el script de inicio proporcionado:
./start.sh cli <command>
Por ejemplo:
./start.sh cli info
Uso como Herramienta de Línea de Comandos
Para usar este servidor MCP como herramienta de línea de comandos:
-
Construya el proyecto:
npm run build -
Ejecute la CLI con el comando deseado:
npm run cli -- <command>O use el script de inicio:
./start.sh cli <command>
Integración con Clientes MCP 
Este servidor puede integrarse con cualquier cliente compatible con MCP, como:
- Editores de IA locales y Servidores de IA/LLM
- Otros asistentes de IA que soporten el Protocolo de Contexto de Modelo
- Aplicaciones personalizadas que usen las bibliotecas de cliente MCP
Ejemplo de Configuración de Cliente
Aquí hay un ejemplo de cómo configurar este servidor con un cliente MCP:
{
"mcpServers": {
"pbs-api": {
"command": "node",
"args": ["path/to/pbs-mcp-standalone/build/index.js"],
"env": {
"PBS_API_SUBSCRIPTION_KEY": "your-subscription-key-here"
}
}
}
}
Acceso al Servidor desde un Cliente
Para acceder a este servidor MCP desde un cliente:
-
Para Claude Desktop u otros asistentes de IA compatibles con MCP:
- Configure el asistente para usar este servidor como proveedor de herramientas MCP
- El asistente descubrirá y usará automáticamente las herramientas proporcionadas por este servidor
- El LLM puede enviar prompts de lenguaje natural sobre medicamentos que serán procesados por el servidor
-
Para aplicaciones personalizadas:
- Use los endpoints de API HTTP descritos a continuación
- Conéctese al endpoint SSE para eventos de herramientas en tiempo real
- O inicie el proceso del servidor y comuníquese a través de stdin/stdout
Ejemplos de Prompts de LLM
El servidor puede interpretar varios prompts de LLMs, como:
"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"
Estos prompts de lenguaje natural se traducen en llamadas apropiadas a la API de PBS.
Parámetros de la Herramienta de API
La herramienta de API de PBS puede usarse con los siguientes parámetros:
{
"endpoint": "prescribers",
"method": "GET",
"params": {
"get_latest_schedule_only": "true",
"limit": "20"
}
}
Parámetros
endpoint(cadena, requerido): El endpoint específico de la API de PBS a acceder (por ejemplo, "prescribers", "item-overview")method(cadena, opcional): Método HTTP a usar (GET es recomendado para la mayoría de las operaciones de la API de PBS). Predeterminado: "GET"params(objeto, opcional): Parámetros de consulta a incluir en la solicitudsubscriptionKey(cadena, opcional): Clave de suscripción personalizada. Si no se proporciona, se usará la clave pública predeterminadatimeout(número, opcional): Tiempo de espera de solicitud en milisegundos. Predeterminado: 30000
API HTTP 
Cuando se ejecuta en modo HTTP, los siguientes endpoints están disponibles:
Verificación de Salud
GET /health
Devuelve el estado del servidor.
Listar Herramientas
GET /tools
Devuelve una lista de las herramientas disponibles.
Endpoint SSE
GET /sse
Establece una conexión SSE y envía eventos de herramientas.
Invocación de Herramientas (SSE)
POST /sse/:toolName
Invoca una herramienta y envía el resultado a través de SSE.
Invocación de Herramientas (REST)
POST /api/:toolName
Invoca una herramienta y devuelve el resultado como JSON.
Interfaz de Línea de Comandos 
El servidor MCP de PBS puede usarse como herramienta de línea de comandos con los siguientes comandos:
Listar Endpoints
./start.sh cli list-endpoints
Lista todos los endpoints disponibles de la API de PBS.
Obtener Información de la API
./start.sh cli info
Devuelve información sobre la API de PBS.
Consultar Prescriptores
./start.sh cli prescribers [options]
Opciones:
-l, --limit <number>: Número de resultados por página (predeterminado: 10)-p, --page <number>: Número de página (predeterminado: 1)-c, --pbs-code <code>: Filtrar por código PBS-s, --schedule-code <code>: Filtrar por código de programa-t, --prescriber-type <type>: Filtrar por tipo de prescriptor-f, --fields <fields>: Campos específicos a devolver--latest: Obtener solo el programa más reciente
Consultar Resumen de Artículos
./start.sh cli item-overview [options]
Opciones:
-l, --limit <number>: Número de resultados por página (predeterminado: 10)-p, --page <number>: Número de página (predeterminado: 1)-s, --schedule-code <code>: Filtrar por código de programa-f, --fields <fields>: Campos específicos a devolver--latest: Obtener solo el programa más reciente
Consultar Cualquier Endpoint
./start.sh cli query <endpoint> [options]
Opciones:
-m, --method <method>: Método HTTP (predeterminado: GET)-p, --params <json>: Parámetros de consulta como cadena JSON-k, --subscription-key <key>: Clave de suscripción personalizada-t, --timeout <milliseconds>: Tiempo de espera de solicitud en milisegundos
Iniciar Servidor HTTP
./start.sh cli serve [options]
Opciones:
-p, --port <number>: Puerto para escuchar (predeterminado: 3000)
Endpoints Disponibles
La API de PBS proporciona varios endpoints para acceder a diferentes tipos de datos:
/- Endpoint raíz, proporciona información de la API y registro de cambios/prescribers- Información sobre prescriptores/item-overview- Información detallada sobre artículos de PBS/items- Información básica sobre artículos de PBS/schedules- Información sobre programas de PBS/atc-codes- Códigos de clasificación Anatómica Terapéutica Química (ATC)/organisations- Información sobre organizaciones/restrictions- Información sobre restricciones/parameters- Información sobre parámetros/criteria- Información sobre criterios/copayments- Información sobre copagos/fees- Información sobre tarifas/markup-bands- Información sobre bandas de margen/programs- Información sobre programas/summary-of-changes- Resumen de cambios
Para una lista completa de endpoints, consulte la documentación de la API de PBS.
Ejemplos de Uso
Obtener Información de la API
{
"endpoint": ""
}
Obtener Prescriptores
{
"endpoint": "prescribers",
"params": {
"get_latest_schedule_only": "true",
"limit": "10"
}
}
Obtener Resumen de Artículos con el Programa Más Reciente
{
"endpoint": "item-overview",
"params": {
"get_latest_schedule_only": "true",
"limit": "5"
}
}
Obtener Prescriptores con un Código PBS Específico
{
"endpoint": "prescribers",
"params": {
"pbs_code": "10001J",
"get_latest_schedule_only": "true"
}
}
Autenticación
La herramienta usa una clave de suscripción para acceder a la API de PBS. Puede obtener su propia clave registrándose en el Portal de Desarrolladores de PBS.
Para fines de desarrollo, consulte el archivo .env.example para detalles de configuración.
Obtención de una Clave de Suscripción de la API de PBS
Para obtener su propia clave de suscripción de la API de PBS, siga estos pasos:
-
Visite el Portal de la API de Datos de PBS:
-
Cree una Cuenta:
- Haga clic en "Registrarse" para crear una nueva cuenta
- Complete sus datos y verifique su dirección de correo electrónico
-
Suscríbase a la API de PBS:
- Una vez que haya iniciado sesión, navegue a la sección "Productos"
- Seleccione el producto "PBS Public API v3"
- Haga clic en "Suscribirse" para solicitar acceso a la API
-
Recupere su Clave de Suscripción:
- Después de que su suscripción sea aprobada, vaya a su perfil
- Navegue a la sección "Suscripciones" o "Claves de API"
- Copie su clave primaria o secundaria
-
Configure su Entorno:
- Cree un archivo
.envbasado en la plantilla.env.example - Reemplace
your-subscription-key-herecon su clave de suscripción real:PBS_API_SUBSCRIPTION_KEY=your-actual-subscription-key
- Cree un archivo
Nota: La API pública de PBS tiene un límite de tasa de una solicitud cada 20 segundos. Este límite se comparte entre todos los usuarios de la API pública. Para límites de tasa más altos o acceso a datos de embargo (programas futuros), puede necesitar solicitar acceso especial a través del Programa de Desarrolladores de PBS.
Limitaciones
- La API pública de PBS tiene un límite de tasa de una solicitud cada 20 segundos (compartido entre todos los usuarios)
- Solo el programa actual y los publicados en los últimos 12 meses están disponibles a través de la API pública
- Algunos endpoints requieren que se proporcionen parámetros específicos
- La estructura de la API y los endpoints pueden cambiar con el tiempo
Recursos Adicionales
- Sitio Web de PBS
- Sitio Web de Datos de PBS
- Documentación de la API de PBS
- Documentación del Protocolo de Contexto de Modelo
Licencia
Este proyecto está licenciado bajo la Licencia MIT - consulte el archivo LICENSE para más detalles.
❤️