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) 
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 
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 :
- Recebe Chamadas de Ferramentas: Quando um LLM (como o Claude) precisa de dados farmacêuticos, ele envia uma chamada de ferramenta para este servidor
- Processa Prompts: Interpreta prompts em linguagem natural sobre informações de medicamentos
- Executa Consultas à API: Traduz as solicitações em chamadas apropriadas à API do PBS
- 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
-
Clone este repositório:
git clone <repository-url> cd pbs-mcp-standalone -
Instale as dependências:
npm install -
Compile o projeto:
npm run build
Uso
Iniciando o Servidor 
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:
-
Compile o projeto:
npm run build -
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 
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:
-
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
-
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çãosubscriptionKey(string, opcional): Chave de assinatura personalizada. Se não for fornecida, a chave pública padrão será usadatimeout(número, opcional): Tempo limite da solicitação em milissegundos. Padrão: 30000
API HTTP 
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 
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:
-
Visite o Portal da API de Dados do PBS:
-
Crie uma Conta:
- Clique em "Sign Up" para criar uma nova conta
- Preencha seus dados e verifique seu endereço de e-mail
-
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
-
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
-
Configure Seu Ambiente:
- Crie um arquivo
.envcom base no modelo.env.example - Substitua
your-subscription-key-herepela sua chave de assinatura real:PBS_API_SUBSCRIPTION_KEY=your-actual-subscription-key
- Crie um arquivo
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.
❤️