Certus

Fornece informações médicas e de medicamentos em tempo real usando a API openFDA.

Documentação

Certus

Um servidor Model Context Protocol (MCP) pronto para produção, para informações médicas e de medicamentos em tempo real e com autoridade. O Certus integra-se ao Claude Desktop e fornece acesso ao vivo a dados de medicamentos da FDA, incluindo escassez, recalls e rotulagem, por meio das APIs openFDA.


Versões do Projeto

Este projeto suporta implementações em Python e JavaScript dos servidores MCP. Você pode usar qualquer uma das versões, dependendo do seu ambiente e preferências.

  • Versão Python: em PY_version/ (completa em recursos)
  • Versão JavaScript: em JS_version/ (Node.js, paridade de recursos para informações aprimoradas de medicamentos)

Início Rápido

1. Clone o Repositório

# Clone and enter the project directory
$ git clone <your_repository_url>
$ cd med_info_mcp_project

Configuração da Versão Python (PY_version/)

Instalação

cd PY_version
pip install -r ../requirements.txt
touch __init__.py

Configuração do Ambiente (Opcional)

Crie um arquivo .env para sua chave de API OpenFDA (opcional, melhora os limites de taxa):

OPENFDA_API_KEY=your_api_key_here

Obtenha uma chave de API gratuita em: https://open.fda.gov/apis/authentication/

Testes

Teste o cliente RxNorm:

python3 drug_features.py

Teste o cliente OpenFDA:

python3 openfda_client.py

Integração com Claude Desktop (Python)

Edite o arquivo de configuração do Claude Desktop:

{
  "mcpServers": {
    "enhanced-medication-info": {
      "command": "python3",
      "args": ["/full/path/to/PY_version/enhanced_mcp_server.py"]
    },
    "drug-features": {
      "command": "python3",
      "args": ["/full/path/to/PY_version/drug_server.py"]
    }
  }
}

Configuração da Versão JavaScript (JS_version/)

Pré-requisitos

  • Node.js v18 ou superior

Instalação

cd JS_version
npm install

Configuração do Ambiente (Opcional)

Defina sua chave de API OpenFDA (opcional, melhora os limites de taxa):

export OPENFDA_API_KEY="your_api_key_here"

Obtenha uma chave de API gratuita em: https://open.fda.gov/apis/authentication/

Testes

Execute o cliente de teste:

npm test
# or
node test-client.js

Integração com Claude Desktop (JavaScript)

Edite o arquivo de configuração do Claude Desktop:

{
  "mcpServers": {
    "enhanced-medication-info": {
      "command": "node",
      "args": ["/full/path/to/JS_version/enhanced-mcp-server.js"],
      "env": {
        "OPENFDA_API_KEY": "your_openfda_api_key_here"
      }
    }
  }
}

Recursos (Ambas as Versões)

  • Perfis Abrangentes de Medicamentos: rotulagem da FDA, status de escassez, fabricante e mais
  • Busca de Escassez em Tempo Real: dados de escassez ao vivo da openFDA (mais de 1.900 registros)
  • Informações de Recall: recalls de medicamentos atuais e históricos do banco de dados de fiscalização da FDA
  • Consulta Apenas de Rótulo: recupere apenas a rotulagem de medicamentos aprovada pela FDA
  • Orientação para Busca de Escassez: dicas e estratégias para encontrar dados de escassez
  • Análise de Tendências de Mercado: analise padrões de escassez e risco para um medicamento
  • Análise em Lote: avalie escassez, recalls e risco para até 25 medicamentos de uma vez

Estrutura do Projeto

med_info_mcp_project/
├── JS_version/                # JavaScript/Node.js implementation
│   ├── enhanced-mcp-server.js
│   ├── openfda-client.js
│   ├── package.json
│   ├── test-client.js
│   └── ...
├── PY_version/                # Python implementation
│   ├── enhanced_mcp_server.py
│   ├── drug_server.py
│   ├── drug_features.py
│   ├── ...
├── data/                      # Data files (e.g., images for testing)
├── requirements.txt           # Python dependencies
├── README.md                  # This file
└── ...

Endpoints e Ferramentas da API

Todos os endpoints são expostos como ferramentas MCP e podem ser chamados via Claude Desktop ou programaticamente. Abaixo está um resumo de cada endpoint para as versões Python e JavaScript:

Servidor MCP de Informações Aprimoradas de Medicamentos

Nome da FerramentaDescriçãoParâmetrosExemplo de Solicitação/Resposta
get_medication_profilePerfil completo do medicamento (rótulo + escassez)drug_identifier (str, obrigatório), identifier_type (str, padrão: openfda.generic_name){ "drug_identifier_requested": "lisinopril", ... }
search_drug_shortagesBuscar escassez de medicamentossearch_term (str, obrigatório), limit (int, padrão: 10){ "search_term": "amoxicillin", "shortage_data": {...} }
search_drug_recallsBuscar recalls de medicamentossearch_term (str, obrigatório), limit (int, padrão: 10){ "search_term": "acetaminophen", "recall_data": {...} }
get_drug_label_onlyApenas informações de rótulo da FDAdrug_identifier (str, obrigatório), identifier_type (str, padrão: openfda.generic_name){ "drug_identifier": "lisinopril", "label_data": {...} }
get_shortage_search_guidanceOrientação para encontrar informações de escassezdrug_name (str, obrigatório){ "drug_name": "clindamycin", "additional_search_strategies": {...} }
analyze_drug_market_trendsAnalisar tendências de escassez/mercadodrug_name (str, obrigatório), months_back (int, padrão: 12){ "drug_analyzed": "amoxicillin", "trend_data": {...} }
batch_drug_analysisAnálise em lote para múltiplos medicamentosdrug_list (lista de str, máx. 25), include_trends (bool, padrão: False){ "batch_analysis": {...} }

Servidor MCP de Recursos de Medicamentos (somente Python)

Nome da FerramentaDescriçãoParâmetrosExemplo de Resposta
check_drug_interactionsVerificar possíveis interações medicamentosasdrug1 (str, obrigatório), drug2 (str, obrigatório), additional_drugs (lista, opcional){ "interaction_analysis": {...} }
convert_drug_namesConverter entre nomes genéricos e de marcadrug_name (str, obrigatório), conversion_type (str: "generic", "brand", "both", padrão: "both"){ "name_conversion": {...} }
get_adverse_eventsObter relatórios de eventos adversos da FDA (FAERS)drug_name (str, obrigatório), time_period (str, padrão "1year"), severity_filter (str, padrão "all"){ "adverse_event_analysis": {...} }

Fontes de Dados e Documentação da API


Solução de Problemas e Perguntas Frequentes

  • MCP não funciona no Claude Desktop?
    1. Verifique novamente os caminhos e comandos do arquivo de configuração
    2. Garanta que as dependências estejam instaladas (pip install -r requirements.txt ou npm install)
    3. Reinicie o Claude Desktop
  • Problemas com a chave de API? Adicione sua chave ao .env (Python) ou como variável de ambiente (JS) para limites de taxa mais altos
  • Versão errada do Claude? Use o Claude Desktop, não o claude.ai web
  • Permissões? Garanta que os arquivos do servidor sejam executáveis

Dependências

  • Python: Veja requirements.txt
  • JavaScript: Veja JS_version/package.json

Licença

Este projeto fornece acesso a dados públicos da FDA por meio das APIs openFDA. Sempre consulte profissionais de saúde para decisões médicas.


Contribuindo

Contribuições são bem-vindas! Abra issues ou pull requests para melhorias ou correções de bugs.