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
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。