Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Unofficial Farma

БесплатноНе проверен

Ecossistema para gestão de medicamentos, laboratórios e avaliações de clientes, consultável por IA em uma interface de chat.

GitHubEmbed

Описание

Ecossistema para gestão de medicamentos, laboratórios e avaliações de clientes, consultável por IA em uma interface de chat.

README

Unofficial Farma é um conjunto de serviços para gestão de fármacos, empresas fornecedoras (laboratórios) e avaliações de clientes, servido por três serviços web REST e exposto a uma IA pelo protocolo MCP. O cliente é um chat LibreChat com suporte a Gemini, que conversa com os servidores MCP; são eles que intermediam o acesso aos serviços.

🧩 Módulos

A ordem abaixo é também a ordem de subida. Os servidores MCP dependem da rede e dos serviços criados pelo primeiro módulo, e o cliente depende dos servidores MCP.

⚙️ unofficial-farma-services/

Python FastAPI PostgreSQL Docker

São três aplicações FastAPI independentes, cada uma no seu container e na sua porta, todas ligadas à mesma instância do PostgreSQL 16. O init.sql cria as tabelas e popula o banco na primeira vez que o volume sobe.

Serviço Porta Responsabilidade
company/ 8001 Laboratórios farmacêuticos
product/ 8002 Medicamentos, cada um vinculado a um laboratório
comment/ 8003 Avaliações que os clientes escrevem sobre um medicamento

O product é o único que conversa com outro serviço. Ao criar um medicamento, ou ao trocar o company_id de um que já existe, ele consulta o company e devolve 400 se o laboratório não existir.

Por dentro, os três seguem o mesmo layout de arquivos.

Arquivo Responsabilidade
__main__.py Monta o app FastAPI e sobe o uvicorn na porta do serviço
database.py Cria a engine a partir de DATABASE_URL e fornece a sessão
schemas.py Modelos para entrada de dados
models.py Mapeamento das tabelas no banco em modelos (entidades)
controllers.py Rotas HTTP do recurso

As rotas também são as mesmas nos três, mudando só o nome do recurso (/companies, /products, /comments).

Rota Descrição
GET /health Retorna o estado do serviço
POST /{recurso} Cria um registro e devolve 201
GET /{recurso} Lista com limit (padrão 50) e offset (padrão 0)
GET /{recurso}/search Filtra por campo, com ILIKE parcial nos campos de texto
GET /{recurso}/{id} Busca por ID, ou 404
PATCH /{recurso}/{id} Atualiza os campos enviados e o updated_at
DELETE /{recurso}/{id} Remove o registro e devolve 204

🔌 unofficial-farma-mcp-servers/

Python MCP Docker

Cada servidor usa FastMCP com transporte streamable-http, escuta na sua própria porta e traduz chamadas de ferramenta em requisições HTTP para o serviço correspondente. Só as operações de leitura viraram ferramenta, então a IA consulta o catálogo sem poder alterá-lo.

Servidor Porta Ferramentas
company/ 9001 check_company_service_health, list_companies, search_companies
product/ 9002 check_product_service_health, list_products, search_products
comment/ 9003 check_comment_service_health, list_comments, search_comments

O layout interno se repete nos três.

Arquivo Responsabilidade
__main__.py Registra as ferramentas no FastMCP e sobe o transporte HTTP
client.py Chama o serviço com httpx e converte falha de rede ou erro HTTP em ToolError
models.py Modelo Pydantic do recurso devolvido
tools.py As ferramentas, cujas docstrings a IA lê como documentação

O compose deste módulo declara a rede unofficial-farma-network como externa, por isso os serviços precisam estar de pé antes.


💬 unofficial-farma-client/

Gemini MongoDB Docker

O LibreChat sobe com um MongoDB só dele. No librechat.yaml ficam registrados os três servidores MCP, em host.docker.internal, nas portas 9001, 9002 e 9003. A interface fica acessível em http://localhost:3080.

🛠️ Instalação e execução

1️⃣ Pré-requisitos

Sistema operacional Linux, macOS ou Windows com WSL, além de Docker com o plugin Compose. Os dois módulos de backend constroem a própria imagem a partir de python:3.12-slim e instalam o requirements.txt no build, então não é preciso ter Python no host.

As portas 3080, 5432, 8001-8003 e 9001-9003 precisam estar livres. Se alguma estiver ocupada, o compose falha na subida.

2️⃣ Subir os serviços

cd unofficial-farma-services
docker compose up -d --build

O comando cria a rede unofficial-farma-network e sobe o PostgreSQL junto com os serviços. O init.sql só roda quando o volume pgdata está vazio. Para repovoar o banco, apague o volume com docker compose down -v.

Antes de seguir, chame o /health de cada um.

curl http://localhost:8001/health
curl http://localhost:8002/health
curl http://localhost:8003/health

Todos devem responder {"status":"ok","service":"..."}.

3️⃣ Subir os servidores MCP

cd unofficial-farma-mcp-servers
docker compose up -d --build

4️⃣ Preencher o .env do cliente

O LibreChat lê as credenciais de unofficial-farma-client/.env. Copie o template .env.example e preencha o seu.

cd unofficial-farma-client
cp .env.example .env

São cinco campos.

Campo Descrição
GOOGLE_KEY Chave do Google AI Studio, que habilita o endpoint Google no chat
JWT_SECRET Segredo de assinatura do token de sessão
JWT_REFRESH_SECRET Segredo de assinatura do token de renovação
CREDS_KEY Chave de criptografia das credenciais salvas
CREDS_IV Vetor de inicialização dessa criptografia

A chave sai do Google AI Studio. Os demais valores podem ser gerados com openssl rand:

openssl rand -hex 32   # JWT_SECRET, JWT_REFRESH_SECRET e CREDS_KEY
openssl rand -hex 16   # CREDS_IV

5️⃣ Subir o cliente

docker compose up -d

Abra http://localhost:3080 e crie uma conta, já que o registro está aberto no compose. Escolha o endpoint Google e ative as ferramentas dos servidores company, product e comment na conversa. Feito isso, é só usar o chat e se divertir 😎👍.

from github.com/davidsantana06/unofficial-farma

Установка Unofficial Farma

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/davidsantana06/unofficial-farma

FAQ

Unofficial Farma MCP бесплатный?

Да, Unofficial Farma MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Unofficial Farma?

Нет, Unofficial Farma работает без API-ключей и переменных окружения.

Unofficial Farma — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить Unofficial Farma в Claude Desktop, Claude Code или Cursor?

Открой Unofficial Farma на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Unofficial Farma with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории communication