USDA Nutrition MCP Server
Acesse informações nutricionais de mais de 600.000 alimentos do banco de dados USDA FoodData Central.
Documentação
🥗 Servidor USDA Nutrition MCP Habilitado
Servidor profissional habilitado para Model Context Protocol (MCP) para USDA FoodData Central
Transforma mais de 600 mil alimentos em ferramentas inteligentes de nutrição para Claude Desktop e outros clientes MCP
🌟 O Que Isto Demonstra
Este projeto apresenta habilidades profissionais de implementação MCP:
✅ Arquitetura Dupla - Servidor de protocolo MCP E API HTTP
✅ Ponte de Produção - mcp_bridge.py inteligente com suporte a servidores hospedados/locais/personalizados
✅ Três Opções de Implantação - Serviço hospedado, desenvolvimento local, servidor personalizado
✅ Modelos Type-Safe - Esquemas Pydantic com validação adequada
✅ Docker + Cloud Run - Pipeline completo de implantação
🚀 Início Rápido para Claude Desktop
Opção 1: Instalação Mínima (Recomendado)
Baixe apenas o arquivo de ponte - não é necessário clonar o repositório inteiro:
# Download the bridge
wget https://raw.githubusercontent.com/zen-apps/mcp-nutrition-tools/main/src/mcp_bridge.py
# Install dependencies
pip install mcp httpx
Em seguida, adicione à sua configuração do Claude Desktop:
{
"mcpServers": {
"usda-nutrition": {
"command": "python3",
"args": ["/path/to/downloaded/mcp_bridge.py"]
}
}
}
Usuários de Mac com Ambiente Virtual
# Navigate to your project
cd /Users/yourusername/your-project-folder
# Create new venv in the project folder
python3 -m venv venv
# Activate it
source venv/bin/activate
# Install dependencies
pip install mcp httpx
# Test it works
python src/mcp_bridge.py --server-url https://usda-nutrition-mcp-356272800218.us-central1.run.app
Opção 2: Repositório Completo (Para Desenvolvimento)
{
"mcpServers": {
"usda-nutrition": {
"command": "python3",
"args": ["/path/to/mcp-nutrition-tools/src/mcp_bridge.py"],
"cwd": "/path/to/mcp-nutrition-tools"
}
}
}
Opção 2: Desenvolvimento Local
{
"mcpServers": {
"usda-nutrition": {
"command": "python3",
"args": [
"/path/to/mcp-nutrition-tools/src/mcp_bridge.py",
"--server-url",
"http://localhost:8080"
],
"cwd": "/path/to/mcp-nutrition-tools"
}
}
}
Opção 3: Servidor Personalizado
{
"mcpServers": {
"usda-nutrition": {
"command": "python3",
"args": [
"/path/to/mcp-nutrition-tools/src/mcp_bridge.py",
"--server-url",
"https://your-server.com"
],
"cwd": "/path/to/mcp-nutrition-tools"
}
}
}
Consulte examples/configs/claude_desktop_config_examples.json para exemplos detalhados de configuração.
🔧 Para Usuários que Não Usam Claude Desktop
API HTTP Direta
API ao Vivo: https://usda-nutrition-mcp-oc46l7ob5a-uc.a.run.app
Documentação: https://usda-nutrition-mcp-oc46l7ob5a-uc.a.run.app/docs
# Search foods
curl -X POST "https://usda-nutrition-mcp-oc46l7ob5a-uc.a.run.app/tools/search_foods" \
-H "Content-Type: application/json" \
-d '{"query": "chicken breast", "page_size": 5}'
# Get nutrition details
curl -X POST "https://usda-nutrition-mcp-oc46l7ob5a-uc.a.run.app/tools/get_food_nutrition" \
-H "Content-Type: application/json" \
-d '{"fdc_id": 171688}'
Consulte API_USAGE.md para exemplos completos de integração com Python, JavaScript, LangChain e OpenAI.
🛠 Ferramentas MCP Disponíveis
Uma vez configurado, o Claude Desktop recebe estas ferramentas de nutrição:
search_foods- Pesquisar banco de dados USDA por textoget_food_nutrition- Obter nutrição detalhada para alimentos específicoscompare_foods- Comparar nutrição entre múltiplos alimentos
Exemplo de Interação com Claude
Você: "Compare o teor de proteína do peito de frango com o salmão"
Claude: Usa ferramentas MCP automaticamente:
search_foods("chicken breast")→ Encontra FDC ID 171077search_foods("salmon")→ Encontra FDC ID 175167compare_foods([171077, 175167])→ Obtém dados de comparação- Fornece análise detalhada com recomendações
🏗 Análise Profunda da Arquitetura
Design de Servidor Duplo
Claude Desktop ←→ mcp_bridge.py ←→ HTTP API ←→ USDA FoodData Central
(MCP) ↑ ↑ ↑
Smart Bridge FastAPI Rate Limited
Client
Detalhes Chave de Implementação:
src/mcp_server.py- Servidor de protocolo FastMCPsrc/mcp_http_server.py- Servidor HTTP FastAPIsrc/mcp_bridge.py- Ponte inteligente com detecção automática de servidorsrc/usda_client.py- Cliente de API com lógica de repetiçãosrc/models/- Esquemas Pydantic type-safe
Lógica da Ponte Inteligente
A ponte detecta automaticamente o tipo de servidor e fornece feedback apropriado ao usuário:
# Hosted service detection
if "usda-nutrition-mcp-oc46l7ob5a-uc.a.run.app" in args.server_url:
print("🌐 Using hosted service (1,000 requests/hour shared)")
# Local development
elif "localhost" in args.server_url:
print("🏠 Using local server (requires your USDA API key)")
📦 Instalação e Desenvolvimento
# Clone and setup
git clone https://github.com/zen-apps/mcp-nutrition-tools
cd mcp-nutrition-tools
pip install -r requirements.txt
# Get USDA API key (for local development)
# Visit: https://fdc.nal.usda.gov/api-guide.html
echo "FDC_API_KEY=your_key_here" > .env
# Test MCP server
python -m src.mcp_server
# Test HTTP server
python -m src.mcp_http_server
# Run tests
python -m pytest tests/ -v
# Code quality
ruff check src/
ruff format src/
mypy src/
🐳 Opções de Implantação
Desenvolvimento Local
# Run HTTP server locally
python -m src.mcp_http_server
# Run with Docker
make up
Implantação em Produção
# Deploy to Google Cloud Run
export FDC_API_KEY="your_usda_key"
./scripts/deploy-gcp.sh
A implantação em produção inclui:
- SSL/HTTPS automático
- Verificações de saúde e monitoramento
- Escalonamento automático baseado na demanda
- Registro estruturado
🔑 Configuração
Variáveis de Ambiente
FDC_API_KEY- Chave de API USDA FoodData Central (necessária para local)ENVIRONMENT- "development" ou "production"LOG_LEVEL- Nível de registro (DEBUG, INFO, etc.)
Limites de Taxa
- Serviço Hospedado: 1.000 solicitações/hora (compartilhado)
- Implantação Local: 1.000 solicitações/hora (sua chave)
- Empresarial: Contate para limites maiores
🧪 Estratégia de Testes
# Quick connectivity test
python test_quick.py
# Full test suite with mocking
python -m pytest tests/ -v
# Test specific MCP tools
python examples/live_demo.py
A suíte de testes inclui:
- Simulação da API USDA com httpx-mock
- Testes assíncronos do servidor MCP
- Exemplos de testes de integração
- Benchmarking de desempenho
🤝 Contribuindo
- Faça um fork do repositório
- Crie uma branch de funcionalidade:
git checkout -b feature/amazing-feature - Execute os testes:
python -m pytest tests/ - Execute o linting:
ruff check src/ - Envie um pull request
📄 Licença
Licença MIT - consulte o arquivo LICENSE para detalhes.
🎯 Pronto para usar? Consulte examples/configs/claude_desktop_config_examples.json para instruções de configuração!
🔗 API ao Vivo: https://usda-nutrition-mcp-oc46l7ob5a-uc.a.run.app/docs