LiteFarm MCP Server
Connects Claude Desktop to a local LiteFarm installation, enabling farm management, task operations, crop browsing, and direct SQL database operations through natural language commands.
README
LiteFarm MCP Server
MCP (Model Context Protocol) Server für LiteFarm - Verbindet Claude Desktop mit deiner lokalen LiteFarm-Installation.
🎯 Überblick
Dieser MCP-Server ermöglicht es Claude Desktop, direkt mit deiner LiteFarm-Installation zu kommunizieren. Du kannst:
- ✅ Farmen verwalten (auflisten, erstellen, aktualisieren)
- ✅ Aufgaben verwalten (auflisten, erstellen, abschließen)
- ✅ Pflanzen/Crops durchsuchen und Details abrufen
- ✅ Standorte/Felder verwalten
- ✅ Komplexe Datenbank-Operationen direkt mit SQL (SQL Logic Sandbox)
- ✅ Alle Operationen in natürlicher Sprache über Claude
SQL Logic Sandbox
Der Server bietet zwei Zugriffsmethoden:
- API-basiert: Sichere, validierte Operationen über die LiteFarm REST API
- SQL-basiert: Direkte Datenbank-Operationen für komplexe Multi-Step-Workflows
Die SQL Logic Sandbox löst das Dependency-Chain-Problem von LiteFarm (Location → Crop → Management Plan → Task) durch atomare SQL-Transaktionen statt sequentieller API-Calls.
📋 Voraussetzungen
- Node.js >= 18.0.0
- LiteFarm läuft lokal auf http://localhost:5000
- PostgreSQL Database läuft auf Port 5433 (für SQL Logic Sandbox)
- Claude Desktop mit MCP-Unterstützung
⚠️ WICHTIG: LiteFarm CORS-Konfiguration
Dieser MCP-Server benötigt eine leicht modifizierte LiteFarm-Installation!
Das offizielle LiteFarm-Repository blockiert lokale Anfragen für MCP-Server. Du musst die CORS-Konfiguration in packages/api/src/server.ts anpassen:
const getAllowedOrigin = () => {
const env = process.env.NODE_ENV || 'development';
switch (env) {
case 'development':
return '*';
case 'integration':
return 'https://beta.litefarm.org';
case 'production':
return 'https://app.litefarm.org';
default:
return '*'; // ← WICHTIG: Default zu '*' für lokale Entwicklung
}
};
Änderungen gegenüber Original:
- Runtime
process.env.NODE_ENVstatt Compile-Timeenvironment - Default-Fall:
'*'statt'https://app.litefarm.org'
Warum notwendig?
- ✅ Funktioniert mit und ohne
NODE_ENVgesetzt - ✅ MCP-Server können auf
localhost:5000zugreifen - ✅ Keine Abhängigkeit von expliziter Environment-Variable
Alternative: Setze NODE_ENV=development in packages/api/.env (fehleranfälliger)
🧪 CORS-Test durchführen
Nach der CORS-Anpassung, teste ob die Konfiguration korrekt ist:
# Test 1: Health-Check
curl http://localhost:5000/health
# Test 2: CORS-Header prüfen
curl -H "Origin: http://localhost:3001" \
-H "Access-Control-Request-Method: GET" \
-H "Access-Control-Request-Headers: Content-Type" \
-X OPTIONS \
--verbose \
http://localhost:5000/api/farms
# Erwartetes Ergebnis:
# < Access-Control-Allow-Origin: *
Wenn du Access-Control-Allow-Origin: * siehst → ✅ CORS korrekt konfiguriert!
🚀 Installation
Schritt 1: Repository Setup
cd C:\Users\YourUsername\graph-project\litefarm-mcp-server
npm install
Schritt 2: Konfiguration
Kopiere .env.example zu .env und fülle die Werte aus:
copy .env.example .env
Bearbeite .env:
# LiteFarm API Configuration
LITEFARM_API_URL=http://localhost:5000
LITEFARM_EMAIL=deine-email@example.com
LITEFARM_PASSWORD=dein-passwort
TRANSPORT=stdio
# Database Configuration (für SQL Logic Sandbox)
DB_HOST=localhost
DB_PORT=5433
DB_NAME=pg-litefarm
DB_USER=postgres
DB_PASSWORD=postgres
Schritt 3: Claude Desktop Integration
WICHTIG: Der Server läuft mit tsx direkt auf den TypeScript-Dateien, kein Build nötig!
Füge den Server zu deiner claude_desktop_config.json hinzu:
Pfad: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"litefarm": {
"command": "node",
"args": [
"C:\\Users\\YourUsername\\graph-project\\Litefarm-mcp-server\\node_modules\\tsx\\dist\\cli.mjs",
"C:\\Users\\YourUsername\\graph-project\\Litefarm-mcp-server\\index.ts"
],
"cwd": "C:\\Users\\YourUsername\\graph-project\\Litefarm-mcp-server",
"env": {
"LITEFARM_API_URL": "http://localhost:5000",
"LITEFARM_EMAIL": "deine-email@example.com",
"LITEFARM_PASSWORD": "dein-passwort"
}
}
}
}
Wichtig:
- Passe die Pfade und Credentials an!
- Verwende absolute Pfade mit doppelten Backslashes (
\\) - Der
cwdParameter muss auf das Projektverzeichnis zeigen - Die
argsmüssen sowohl tsx als auch index.ts mit absolutem Pfad enthalten
🎮 Nutzung
In Claude Desktop
Nach dem Restart von Claude Desktop kannst du Fragen stellen wie:
"Zeige mir alle meine Farmen"
"Erstelle eine neue Farm namens 'Green Valley Farm'"
"Liste alle offenen Aufgaben für Farm ABC123"
"Welche Crops sind verfügbar?"
"Markiere Task #42 als abgeschlossen"
Verfügbare Tools
Farm Management (API)
litefarm_list_farms- Alle Farmen auflistenlitefarm_get_farm- Farm-Details abrufenlitefarm_create_farm- Neue Farm erstellenlitefarm_update_farm- Farm aktualisieren
Task Management (API)
litefarm_list_tasks- Aufgaben auflistenlitefarm_create_task- Neue Aufgabe erstellenlitefarm_complete_task- Aufgabe abschließen
Crop Management (API)
litefarm_list_crops- Pflanzen auflistenlitefarm_get_crop- Pflanze-Details abrufen
Database Tools (SQL Logic Sandbox)
db_get_schema- Datenbank-Schema inspizieren (Tabellen, Spalten, Foreign Keys)db_execute_sql- SQL-Queries direkt ausführen (mit automatischem Rollback bei Fehlern)
Vorteile der SQL Tools:
- Komplexe Multi-Step-Operationen in einer atomaren Transaktion
- Dependency-Chain-Problem gelöst (Location → Crop → Plan → Task)
- Automatisches Rollback bei Fehlern
- PL/pgSQL Support für Variablen und Conditional Logic
Siehe SQL_LOGIC_SANDBOX_README.md für Details und Beispiele.
⚡ Performance-Optimierungen
Der MCP Server enthält integrierte Performance-Optimierungen zur Reduzierung der API-Last:
-
In-Memory Caching: Häufig abgefragte Daten (Farms, Crops) werden gecacht
- Farm-Listen: 5 Minuten TTL
- Crop-Daten: 10 Minuten TTL
- Automatische Cache-Invalidierung bei Änderungen
-
Rate Limiting: Begrenzt gleichzeitige API-Requests
- Max. 5 parallele Requests
- Max. 10 Requests pro Sekunde
- Verhindert API-Überlastung
Resultat: ~60-70% weniger API-Requests und deutlich reduzierte CPU-Last auf dem LiteFarm API-Server.
Siehe PERFORMANCE_OPTIMIZATION.md für Details und geplante Optimierungen.
Performance-Test ausführen
npm run test:performance
🔍 Troubleshooting
CORS-Fehler: "No 'Access-Control-Allow-Origin' header"
Problem: MCP-Server kann nicht auf LiteFarm zugreifen, CORS blockiert Anfragen
Ursache: CORS-Änderung in LiteFarm nicht durchgeführt oder NODE_ENV falsch gesetzt
Lösung:
# 1. Prüfe aktuelle getAllowedOrigin Funktion in LiteFarm
cd /path/to/LiteFarm/packages/api/src
grep -A 12 "const getAllowedOrigin" server.ts
# 2. Wenn nicht modifiziert, führe CORS-Änderung durch (siehe oben)
# 3. LiteFarm Backend neu starten
cd /path/to/LiteFarm/packages/api
npm run dev
# 4. Teste CORS-Header
curl -H "Origin: http://localhost:3001" -X OPTIONS http://localhost:5000/api/farms
# Sollte "Access-Control-Allow-Origin: *" zurückgeben
Server startet nicht
Problem: Missing required environment variables
Lösung:
# Prüfe ob .env existiert
dir .env
# Falls nicht, kopiere .env.example
copy .env.example .env
# Bearbeite .env mit deinen Credentials
notepad .env
Verbindung zu LiteFarm fehlschlägt
Problem: Failed to connect to LiteFarm API
Lösung:
# 1. Prüfe ob LiteFarm läuft
curl http://localhost:5000
# 2. Prüfe ob API läuft
curl http://localhost:5000/api-docs
# 3. Teste Login manuell (in PowerShell)
$body = @{
email = "deine-email@example.com"
password = "dein-passwort"
} | ConvertTo-Json
Invoke-RestMethod -Uri "http://localhost:5000/api/login" -Method POST -Headers @{"Content-Type"="application/json"} -Body $body
Claude Desktop erkennt Server nicht
Lösung:
# 1. Prüfe Build
npm run build
# 2. Teste Server direkt
node dist/index.js
# 3. Prüfe Claude Config
notepad %APPDATA%\Claude\claude_desktop_config.json
# 4. Restart Claude Desktop komplett
taskkill /F /IM Claude.exe
start "" "C:\Users\flori\AppData\Local\Programs\Claude\Claude.exe"
🧪 Development
Development Mode
# Build + Start in einem Schritt
npm run dev
# Watch Mode (automatisches Rebuild)
npm run watch
Logs prüfen
Der Server loggt nach stderr:
# Server direkt ausführen um Logs zu sehen
node dist/index.js 2> server.log
Testing
# Mit MCP Inspector testen
npx @modelcontextprotocol/inspector node dist/index.js
📁 Projekt-Struktur
Litefarm-mcp-server/
├── index.ts # Haupt-Server (Einstiegspunkt)
├── types.ts # TypeScript Types
├── constants.ts # Konstanten
├── litefarm-client.ts # API Client für LiteFarm
├── tool-utils.ts # Gemeinsame Tool-Funktionen
├── farm-tools.ts # Farm Management Tools
├── task-tools.ts # Task Management Tools
├── crop-tools.ts # Crop Management Tools
├── db-tools.ts # Database Tools (SQL Logic Sandbox)
├── create-test-user.js # Script zum Erstellen eines Test-Users
├── test-login.js # Script zum Testen der Login-Funktion
├── package.json
├── tsconfig.json
├── .env.example # Beispiel-Konfiguration
├── README.md # Diese Datei
├── SQL_LOGIC_SANDBOX_README.md # SQL Logic Sandbox Dokumentation
└── LEARNINGS.md # Dokumentation aller Probleme & Lösungen
Hinweis: Die Dateien liegen im Root-Verzeichnis, nicht in einem src/ oder tools/ Unterordner!
🔐 Sicherheit
- Credentials: Niemals
.envin Git committen! - API-Keys: Werden nur lokal gespeichert
- Netzwerk: Server kommuniziert nur mit lokalem LiteFarm
- SQL Sandbox: Nur Read/Write-Operationen erlaubt (kein DDL: CREATE TABLE, DROP, etc.)
- Transaktionen: Automatisches Rollback bei Fehlern verhindert Daten-Inkonsistenzen
🐛 Bekannte Probleme
Windows-spezifisch
- Pfade: Nutze
\\statt/in Windows-Pfaden - PowerShell: Manche npm-Scripts brauchen
cmd /c npm run ...
LiteFarm API
- Token Expiry: Tokens laufen nach Zeit ab - Server erneuert automatisch
- Rate Limiting: Bei zu vielen Requests 429-Fehler möglich
🎯 Nächste Schritte
Erweiterungen (Optional)
-
Weitere Tools hinzufügen:
- User Management
- Document Upload
- Reports/Analytics
-
HTTP-Transport für n8n-Integration:
TRANSPORT=http PORT=3000 -
SQL Logic Sandbox Erweiterungen:
- Read-only Mode für sicherere Operationen
- Query Templates für häufige Operationen
- Transaction History/Audit Log
-
Evaluations erstellen (siehe MCP Builder Skill)
📚 Ressourcen
- LiteFarm API Docs: http://localhost:5000/api-docs
- SQL Logic Sandbox Docs: SQL_LOGIC_SANDBOX_README.md
- MCP Docs: https://modelcontextprotocol.io
- MCP Code Execution Article: https://www.anthropic.com/engineering/code-execution-with-mcp
- TypeScript MCP SDK: https://github.com/modelcontextprotocol/typescript-sdk
- PostgreSQL PL/pgSQL: https://www.postgresql.org/docs/current/plpgsql.html
💡 Support
Bei Problemen:
- Prüfe die Troubleshooting Sektion
- Schaue in
server.lognach Fehlern - Teste LiteFarm API direkt mit Swagger UI
Status: ✅ Produktionsreif (mit SQL Logic Sandbox) Version: 1.0.0 Branch: feature/sql-logic-sandbox Erstellt: November 2025
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.