Farm OS MCP Server
A Model Context Protocol (MCP) server for Farm OS using FastMCP, built with Python and managed with uv.
Features
This MCP server provides tools for managing farm data including:
- Farm information and summaries
- Field management and crop tracking
- Livestock monitoring
- Equipment tracking
- Sensor readings
All data is currently static for testing purposes.
Setup
Prerequisites
- Python 3.10 or higher
uvpackage manager (install from https://docs.astral.sh/uv/)
Installation
-
Install
uv(if not already installed):Windows (PowerShell):
irm https://astral.sh/uv/install.ps1 | iexmacOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh -
Sync dependencies:
uv sync -
Install the project:
uv pip install -e .
Usage
Run the MCP Server
uv run python farmos_server.py
Test the Tools
Run the test script to see all available tools in action:
uv run python test_server.py
Available Tools
get_farm_info(farm_id)- Get detailed information about a specific farmlist_all_farms()- List all available farmsget_field_info(field_id)- Get information about a specific fieldlist_fields_by_farm(farm_id)- List all fields for a farmget_livestock_info(livestock_id)- Get information about livestocklist_livestock_by_farm(farm_id)- List all livestock for a farmget_equipment_info(equipment_id)- Get information about equipmentlist_equipment_by_farm(farm_id)- List all equipment for a farmget_sensor_readings(field_id)- Get sensor readings for a fieldsearch_by_crop_type(crop_type)- Search fields by crop typeget_farm_summary(farm_id)- Get comprehensive farm summary with statistics
Project Structure
fastmcp/
├── farmos_server.py # Main MCP server with all tools
├── static_data.py # Static test data
├── test_server.py # Test script
├── pyproject.toml # Project configuration
└── setup.py # Setup helper script
Static Test Data
The project includes static test data for:
- 3 farms
- 4 fields
- 3 livestock groups
- 3 equipment items
- 3 sensor devices
All data is defined in static_data.py and can be modified for testing purposes.