Provides nutritional analysis capabilities by sending food descriptions to OpenAI's API to generate estimated nutritional information including calories, macronutrients, and dietary insights
🥗 NutriAI
App experimental de análise nutricional com OpenAI Apps SDK---
🤖 Integração com ChatGPT Apps SDK
O NutriAI implementa o protocolo MCP (Model Context Protocol) e está pronto para ser usado como um conector personalizado no ChatGPT!
Como conectar ao ChatGPT:
Acesse: ChatGPT Settings → Connectors
Clique em: "New Connector"
Configure:
Name:
NutriAIDescription:
Analisa alimentos descritos em texto e retorna tabela nutricional completaMCP Server URL:
https://nutriai-mcp-server.onrender.comAuthentication:
No authentication
Marque: "I trust this application" ✓
Clique: "Create"
Como usar no ChatGPT:
Após conectar, você pode usar comandos como:
"Analise uma banana prata de 86g"
"Quantas calorias tem uma tapioca com queijo?"
"Me dê informações nutricionais de um pão francês com manteiga"
O ChatGPT automaticamente descobrirá e usará sua ferramenta NutriAI! 🎉
🧠 Como funciona
Fluxo de funcionamento:
ChatGPT Apps SDK → Detecta intenção nutricional do usuário
Protocolo MCP → Chama a tool
analyze_foodvia JSON-RPC 2.0NutriAI Server → Processa descrição do alimento
OpenAI API → Gera estimativa nutricional usando GPT-4o-mini
ChatGPT → Exibe resultado formatado com insights personalizados
Arquitetura técnica:
Frontend: React com Vite (para desenvolvimento local)
Backend: FastAPI com protocolo MCP + rate limiting + monitoramento de custos
IA: OpenAI GPT-4o-mini com JSON mode para consistência
Deploy: Render.com com HTTPS automático
Segurança: CORS restrito + API keys opcionais + rate limitingenAI Apps SDK](https://img.shields.io/badge/OpenAI-Apps%20SDK-412991)](https://developers.openai.com/apps-sdk)
🌱 Visão geral
O NutriAI é um aplicativo educacional que analisa descrições de alimentos e retorna estimativas nutricionais (calorias, macronutrientes e insights simples).
Ele segue as Design Guidelines do OpenAI Apps SDK e usa um MCP Server em Python para orquestrar chamadas à API da OpenAI.
⚠️ Este projeto é experimental e não substitui orientação médica ou nutricional.
🧩 Arquitetura
NutriAI/ ├── app-ui/ # Front-end React (Apps SDK) │ └── layout/ │ └── NutritionTable.tsx ├── mcp-server/ # Servidor MCP em Python/FastAPI │ └── analyze_food/ │ └── schema.json └── docs/ ├── Design-Guidelines.md └── privacy.md
⚙️ Instalação e execução local
1️⃣ Clonar o repositório
TypeError: Client.init() got an unexpected keyword argument 'proxies'
Se precisar atualizar dependências, sempre rode:
🧠 Como funciona
O usuário descreve um alimento (ex.: “tapioca com queijo”).
O MCP Server envia a descrição para a API da OpenAI.
O modelo gera uma tabela nutricional e insights.
O front-end exibe os dados no formato nativo do ChatGPT Apps SDK.
🎨 Design e UX
Interface leve e responsiva.
Tons neutros e leitura fácil.
Frases curtas e empáticas (“Aqui está a estimativa para sua tapioca.”).
Mensagens de erro claras e educativas.
Mais detalhes em docs/Design-Guidelines.md .
🔒 Privacidade
O NutriAI não coleta informações pessoais. Veja a política de privacidade completa .
�️ Proteções e Monitoramento
Segurança implementada:
✅ Rate Limiting: 5 req/min para MCP tools, 10 req/min para API REST
✅ CORS restrito: Apenas ChatGPT e origens autorizadas
✅ API Keys opcionais: Configure via variáveis de ambiente no Render
✅ Monitoramento de custos: Logs mostram gasto por requisição (~$0.0003 por análise)
✅ Health checks: Endpoint
/healthpara monitoramento
Configuração no Render.com:
�📚 Roadmap
✅ Design Guidelines
✅ Schema JSON (MCP Server)
✅ Protocolo MCP compatível com ChatGPT Apps SDK
✅ Integração OpenAI API
✅ Deploy em produção (Render.com)
✅ Rate limiting e proteções de segurança
🔄 Validação por imagem (versão futura)
🔄 Comparação entre alimentos
🔄 Histórico pessoal de análises
🔄 Integração com bases de dados nutricionais (USDA)
🤝 Contribuição
Contribuições são bem-vindas!
Faça um fork.
Crie um branch: git checkout -b feature/nova-funcionalidade.
Commit → Push → Pull Request.
🪪 Licença
Distribuído sob licença MIT. Veja o arquivo LICENSE para mais informações.
🧑💻 Autor
Adriano Frota – LinkedIn | GitHub
Como testar end-to-end
Backend cd mcp-server python -m venv venv venv\Scripts\activate.bat python.exe -m pip install --upgrade pip
pip install -r requirements.txt cp .env.example .env # coloque sua OPENAI_API_KEY uvicorn main:app --reload
Frontend cd app-ui cp .env.example .env # VITE_API_BASE=http://localhost:8000 npm i npm run dev
abra http://localhost:5173
This server cannot be installed