Provides comprehensive food hierarchy and nutrition data tools through MongoDB Atlas integration, enabling queries for food categories, subcategories, nutritional information, and dataset statistics.
Food MCP Server
Overview
The Food MCP Server is a Model Context Protocol (MCP) implementation that provides comprehensive food hierarchy and nutrition data through a structured API. Built with the MCP Python SDK and StreamableHTTP transport, the server delivers validated data responses using Pydantic schemas for enterprise-grade data consistency.
Architecture
The server architecture leverages the MCP Python SDK with StreamableHTTP transport to enable web-based access. All data responses are structured through Pydantic schemas, ensuring consistent validation and serialization across all endpoints.
Core Features
Structured Data Output: All tool responses utilize Pydantic schemas for data validation and serialization
StreamableHTTP Transport: Web-accessible MCP server implementation
MongoDB Atlas Integration: Cloud-based data storage solution for scalability
Container Support: Docker-based deployment with optimized build configurations
Comprehensive Tool Suite: Eleven distinct tools covering food hierarchy and nutrition data
Available Tools
Food Hierarchy Management
get_all_food_hierarchy - Retrieve complete food hierarchy dataset
get_categories - List all available food categories
get_subcategories - Retrieve subcategories for a specified category
get_food_items - List food items within category or subcategory
search_food - Search food items using keyword parameters
find_food_category - Locate category for specific food item
list_all_foods - Retrieve all unique food names in dataset
food_stats - Generate comprehensive dataset statistics
Food Nutrition Analysis
list_food_names - List foods with available nutrition data
get_food_nutrition - Retrieve complete nutrition information for specified food
search_food_nutrition - Search nutrition data using keyword parameters
Data Structure Schemas
All tools return structured data using Pydantic validation schemas:
Food Hierarchy Schemas (schemas/food_hierarchy.py)
FoodHierarchyResponse- Complete hierarchy data structureFoodCategoriesResponse- Category listing responsesFoodSearchResponse- Search results with contextual informationFoodStats- Comprehensive dataset statistics
Food Nutrition Schemas (schemas/food_item.py)
FoodNutritionResponse- Complete nutrition data structureFoodNutrition- Detailed nutrition information with serving sizesServingInfo- Structured serving size information
Installation and Setup
Local Development Environment
Environment Configuration:
pip install -r requirements.txt cp .env.example .env # Configure your MONGODB_URISchema Validation Testing:
python3 test_server.pyServer Initialization:
python3 run_server.py # Server will be available at http://localhost:8000MCP Inspector Integration:
npx @modelcontextprotocol/inspector http://localhost:8000/mcpEndpoint Access:
MCP StreamableHTTP endpoint:
http://localhost:8000/mcpCORS headers are enabled for browser access
Server logs provide startup information including listening address
Container Deployment
Image Build Process:
docker build -t food-mcp-server .Container Execution:
docker run -e MONGODB_URI="your_mongodb_uri" -p 8000:8000 food-mcp-serverDocker Compose Deployment:
docker-compose up --build
Configuration Management
Configure the following environment variables:
MONGODB_URI- MongoDB Atlas connection string (required)PYTHONPATH- Set to/appin container environmentPYTHONUNBUFFERED- Set to1for real-time logging output
Response Examples
Structured Categories Response
Structured Nutrition Response
Migration from FastMCP Implementation
This server implementation replaces the previous FastMCP implementation with several key advantages:
Enhanced Control: Low-level server implementation provides complete control over MCP protocol implementation
Structured Output: Pydantic schemas ensure consistent response format across all endpoints
Type Safety: Comprehensive type checking and validation throughout the application
Improved Debugging: Direct access to MCP internals for enhanced troubleshooting capabilities
Production Readiness: Architecture designed specifically for production deployment scenarios
Testing and Validation
Execute the comprehensive test suite to verify system functionality:
Test coverage includes:
Pydantic schema validation and serialization
JSON schema generation for tool definitions
Structured data serialization processes
Response format consistency verification
Development Guide
Project Structure
Adding New Tools
Define Pydantic schema in appropriate
schemas/moduleAdd tool definition in
handle_list_tools()methodImplement tool handler in
handle_call_tool()methodReturn
CallToolResultwith structured contentAdd corresponding tests in
test_server.py
Production Deployment
The server is designed for production environments with the following features:
Security: Non-root user execution in Docker container environment
Logging: Structured logging implementation with appropriate severity levels
Error Handling: Comprehensive error response mechanisms
Health Monitoring: Docker health check configuration for container orchestration
Resource Optimization: Multi-stage Docker builds for minimal image size
MCP Protocol Compliance
This server fully implements the Model Context Protocol specification:
stdio Transport: Standard input/output communication protocol
Tool Discovery: Dynamic tool listing with comprehensive schemas
Structured Responses: Consistent response format across all endpoints
Error Handling: Standardized error response structure
Lifecycle Management: Proper initialization and cleanup procedures
Contributing Guidelines
Follow established Pydantic schema patterns for data validation
Add comprehensive test coverage for new features and functionality
Ensure Docker build processes complete successfully
Update documentation to reflect new tools and capabilities
This server cannot be installed