PBS API

Acesse dados do Australian Pharmaceutical Benefits Scheme para informações sobre medicamentos, preços e disponibilidade. Construído com Python e FastAPI.

Documentação

Servidor de API habilitado para IA do MCP do Pharmaceutical Benefits Scheme (PBS) MCP Server

Um servidor autônomo do Model Context Protocol (MCP) para acessar a API do Australian Pharmaceutical Benefits Scheme (PBS).

Sobre o Autor

Este servidor PBS MCP foi desenvolvido por [Matthew Cage], Fundador da https://ai-advantage.au,, especialista em Automação, Engenharia de IA e integração de IA e sistemas de dados de saúde.

Colabore comigo: https://www.linkedin.com/in/digitalmarketingstrategyexpert/

Visão Geral

Este projeto fornece um servidor MCP autônomo que permite que modelos de IA acessem a API do Australian Pharmaceutical Benefits Scheme (PBS), que contém informações sobre medicamentos, preços e disponibilidade na Austrália.

O projeto foi construído para a API Pública, mas pode ser facilmente adaptado para a API privada se você tiver acesso de desenvolvedor.

A API do PBS fornece acesso programático aos dados do PBS, incluindo listagens de medicamentos, preços e disponibilidade. Este servidor MCP facilita a integração dos dados do PBS em fluxos de trabalho de IA.

O MCP está disponível via HTTP e CLI.

Esteja ciente dos limites de taxa do PBS e ajuste a frequência das suas solicitações. Recomendo uma chamada periódica para armazenar as informações necessárias da API e atualizá-las semanalmente.

Recursos do Servidor MCP MCP Server

Este servidor MCP implementa os seguintes recursos do Model Context Protocol:

  • Ferramentas: Fornece ferramentas para consultar os endpoints da API do PBS, permitindo que modelos de IA acessem dados farmacêuticos
  • Camadas de Transporte: Suporta camadas de transporte stdio e HTTP/SSE
  • Tratamento de Erros: Tratamento abrangente de erros para limites de taxa da API e problemas de autenticação
  • Integração com LLM: Recebe chamadas de ferramentas e prompts diretamente de componentes LLM, permitindo interação contínua de IA com dados do PBS

Como Funciona

O Cliente MCP MCP Client:

  1. Recebe Chamadas de Ferramentas: Quando um LLM (como o Claude) precisa de dados farmacêuticos, ele envia uma chamada de ferramenta para este servidor
  2. Processa Prompts: Interpreta prompts em linguagem natural sobre informações de medicamentos
  3. Executa Consultas à API: Traduz as solicitações em chamadas apropriadas à API do PBS
  4. Retorna Dados Estruturados: Envia de volta dados farmacêuticos formatados que o LLM pode usar em suas respostas

Isso permite que assistentes de IA acessem informações atualizadas do PBS sem precisar ter esses dados em seu treinamento.

Instalação

  1. Clone este repositório:

    git clone <repository-url>
    cd pbs-mcp-standalone
    
  2. Instale as dependências:

    npm install
    
  3. Compile o projeto:

    npm run build
    

Uso

Iniciando o Servidor MCP Server

O servidor PBS MCP pode ser executado em diferentes modos:

Modo Stdio (Padrão)

Este modo é compatível com o protocolo MCP e se comunica via fluxos padrão de entrada/saída:

npm start

Ou use o script de inicialização fornecido:

./start.sh

Modo HTTP com Suporte a SSE

Este modo inicia um servidor HTTP com suporte a Server-Sent Events (SSE):

npm run start:http

Ou use o script de inicialização fornecido:

./start.sh http 3000

Onde 3000 é o número da porta para escutar.

Interface de Linha de Comando

O servidor PBS MCP também pode ser usado como uma ferramenta de linha de comando:

npm run cli -- <command>

Ou use o script de inicialização fornecido:

./start.sh cli <command>

Por exemplo:

./start.sh cli info

Usando como Ferramenta de Linha de Comando

Para usar este servidor MCP como uma ferramenta de linha de comando:

  1. Compile o projeto:

    npm run build
    
  2. Execute a CLI com o comando desejado:

    npm run cli -- <command>
    

    Ou use o script de inicialização:

    ./start.sh cli <command>
    

Integrando com Clientes MCP MCP Client

Este servidor pode ser integrado com qualquer cliente compatível com MCP, como:

  • Editores de IA locais e Servidores de IA/LLM
  • Outros assistentes de IA que suportam o Model Context Protocol
  • Aplicações personalizadas que usam as bibliotecas de cliente MCP

Exemplo de Configuração do Cliente

Aqui está um exemplo de como configurar este servidor com um 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"
      }
    }
  }
}

Acessando o Servidor a partir de um Cliente

Para acessar este servidor MCP a partir de um cliente:

  1. Para o Claude Desktop ou outros assistentes de IA compatíveis com MCP:

    • Configure o assistente para usar este servidor como provedor de ferramentas MCP
    • O assistente descobrirá e usará automaticamente as ferramentas fornecidas por este servidor
    • O LLM pode enviar prompts em linguagem natural sobre medicamentos que serão processados pelo servidor
  2. Para aplicações personalizadas:

    • Use os endpoints da API HTTP descritos abaixo
    • Conecte-se ao endpoint SSE para eventos de ferramentas em tempo real
    • Ou inicie o processo do servidor e comunique-se via stdin/stdout

Exemplos de Prompts para LLM

O servidor pode interpretar vários 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"

Esses prompts em linguagem natural são traduzidos em chamadas apropriadas à API do PBS.

Parâmetros da Ferramenta de API

A ferramenta da API do PBS pode ser usada com os seguintes parâmetros:

{
  "endpoint": "prescribers",
  "method": "GET",
  "params": {
    "get_latest_schedule_only": "true",
    "limit": "20"
  }
}

Parâmetros

  • endpoint (string, obrigatório): O endpoint específico da API do PBS a ser acessado (ex.: "prescribers", "item-overview")
  • method (string, opcional): Método HTTP a ser usado (GET é recomendado para a maioria das operações da API do PBS). Padrão: "GET"
  • params (objeto, opcional): Parâmetros de consulta a serem incluídos na solicitação
  • subscriptionKey (string, opcional): Chave de assinatura personalizada. Se não for fornecida, a chave pública padrão será usada
  • timeout (número, opcional): Tempo limite da solicitação em milissegundos. Padrão: 30000

API HTTP MCP Server

Quando executado em modo HTTP, os seguintes endpoints estão disponíveis:

Verificação de Saúde

GET /health

Retorna o status do servidor.

Listar Ferramentas

GET /tools

Retorna uma lista de ferramentas disponíveis.

Endpoint SSE

GET /sse

Estabelece uma conexão SSE e envia eventos de ferramentas.

Invocação de Ferramenta (SSE)

POST /sse/:toolName

Invoca uma ferramenta e envia o resultado via SSE.

Invocação de Ferramenta (REST)

POST /api/:toolName

Invoca uma ferramenta e retorna o resultado como JSON.

Interface de Linha de Comando MCP Dev

O servidor PBS MCP pode ser usado como uma ferramenta de linha de comando com os seguintes comandos:

Listar Endpoints

./start.sh cli list-endpoints

Lista todos os endpoints disponíveis da API do PBS.

Obter Informações da API

./start.sh cli info

Retorna informações sobre a API do PBS.

Consultar Prescritores

./start.sh cli prescribers [options]

Opções:

  • -l, --limit <number>: Número de resultados por página (padrão: 10)
  • -p, --page <number>: Número da página (padrão: 1)
  • -c, --pbs-code <code>: Filtrar por código PBS
  • -s, --schedule-code <code>: Filtrar por código de programação
  • -t, --prescriber-type <type>: Filtrar por tipo de prescritor
  • -f, --fields <fields>: Campos específicos a retornar
  • --latest: Obter apenas a programação mais recente

Consultar Visão Geral do Item

./start.sh cli item-overview [options]

Opções:

  • -l, --limit <number>: Número de resultados por página (padrão: 10)
  • -p, --page <number>: Número da página (padrão: 1)
  • -s, --schedule-code <code>: Filtrar por código de programação
  • -f, --fields <fields>: Campos específicos a retornar
  • --latest: Obter apenas a programação mais recente

Consultar Qualquer Endpoint

./start.sh cli query <endpoint> [options]

Opções:

  • -m, --method <method>: Método HTTP (padrão: GET)
  • -p, --params <json>: Parâmetros de consulta como string JSON
  • -k, --subscription-key <key>: Chave de assinatura personalizada
  • -t, --timeout <milliseconds>: Tempo limite da solicitação em milissegundos

Iniciar Servidor HTTP

./start.sh cli serve [options]

Opções:

  • -p, --port <number>: Porta para escutar (padrão: 3000)

Endpoints Disponíveis

A API do PBS fornece vários endpoints para acessar diferentes tipos de dados:

  • / - Endpoint raiz, fornece informações da API e changelog
  • /prescribers - Informações sobre prescritores
  • /item-overview - Informações detalhadas sobre itens do PBS
  • /items - Informações básicas sobre itens do PBS
  • /schedules - Informações sobre programações do PBS
  • /atc-codes - Códigos de classificação Anatomical Therapeutic Chemical (ATC)
  • /organisations - Informações sobre organizações
  • /restrictions - Informações sobre restrições
  • /parameters - Informações sobre parâmetros
  • /criteria - Informações sobre critérios
  • /copayments - Informações sobre copagamentos
  • /fees - Informações sobre taxas
  • /markup-bands - Informações sobre faixas de margem
  • /programs - Informações sobre programas
  • /summary-of-changes - Resumo de alterações

Para uma lista completa de endpoints, consulte a documentação da API do PBS.

Exemplos de Uso

Obter Informações da API

{
  "endpoint": ""
}

Obter Prescritores

{
  "endpoint": "prescribers",
  "params": {
    "get_latest_schedule_only": "true",
    "limit": "10"
  }
}

Obter Visão Geral do Item com Programação Mais Recente

{
  "endpoint": "item-overview",
  "params": {
    "get_latest_schedule_only": "true",
    "limit": "5"
  }
}

Obter Prescritores com Código PBS Específico

{
  "endpoint": "prescribers",
  "params": {
    "pbs_code": "10001J",
    "get_latest_schedule_only": "true"
  }
}

Autenticação

A ferramenta usa uma chave de assinatura para acessar a API do PBS. Você pode obter sua própria chave registrando-se no Portal do Desenvolvedor do PBS.

Para fins de desenvolvimento, consulte o arquivo .env.example para detalhes de configuração.

Obtendo uma Chave de Assinatura da API do PBS

Para obter sua própria chave de assinatura da API do PBS, siga estas etapas:

  1. Visite o Portal da API de Dados do PBS:

  2. Crie uma Conta:

    • Clique em "Sign Up" para criar uma nova conta
    • Preencha seus dados e verifique seu endereço de e-mail
  3. Assine a API do PBS:

    • Após fazer login, navegue até a seção "Products"
    • Selecione o produto "PBS Public API v3"
    • Clique em "Subscribe" para solicitar acesso à API
  4. Recupere Sua Chave de Assinatura:

    • Após a aprovação da sua assinatura, vá ao seu perfil
    • Navegue até a seção "Subscriptions" ou "API Keys"
    • Copie sua chave primária ou secundária
  5. Configure Seu Ambiente:

    • Crie um arquivo .env com base no modelo .env.example
    • Substitua your-subscription-key-here pela sua chave de assinatura real:
      PBS_API_SUBSCRIPTION_KEY=your-actual-subscription-key
      

Nota: A API Pública do PBS tem limite de uma solicitação por 20 segundos. Esse limite é compartilhado entre todos os usuários da API pública. Para limites de taxa mais altos ou acesso a dados em embargo (programações futuras), talvez seja necessário solicitar acesso especial por meio do Programa de Desenvolvedores do PBS.

Limitações

  • A API Pública do PBS tem limite de uma solicitação por 20 segundos (compartilhado entre todos os usuários)
  • Apenas a programação atual e as publicadas nos últimos 12 meses estão disponíveis via API Pública
  • Alguns endpoints exigem que parâmetros específicos sejam fornecidos
  • A estrutura da API e os endpoints podem mudar ao longo do tempo

Recursos Adicionais

Licença

Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.


MCP Server MCP Client MCP Dev MCP Enabled ❤️