LiteFarm MCP Server

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.

Category
访问服务器

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_ENV statt Compile-Time environment
  • Default-Fall: '*' statt 'https://app.litefarm.org'

Warum notwendig?

  • ✅ Funktioniert mit und ohne NODE_ENV gesetzt
  • ✅ MCP-Server können auf localhost:5000 zugreifen
  • ✅ 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 cwd Parameter muss auf das Projektverzeichnis zeigen
  • Die args mü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 auflisten
  • litefarm_get_farm - Farm-Details abrufen
  • litefarm_create_farm - Neue Farm erstellen
  • litefarm_update_farm - Farm aktualisieren

Task Management (API)

  • litefarm_list_tasks - Aufgaben auflisten
  • litefarm_create_task - Neue Aufgabe erstellen
  • litefarm_complete_task - Aufgabe abschließen

Crop Management (API)

  • litefarm_list_crops - Pflanzen auflisten
  • litefarm_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 .env in 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)

  1. Weitere Tools hinzufügen:

    • User Management
    • Document Upload
    • Reports/Analytics
  2. HTTP-Transport für n8n-Integration:

    TRANSPORT=http
    PORT=3000
    
  3. SQL Logic Sandbox Erweiterungen:

    • Read-only Mode für sicherere Operationen
    • Query Templates für häufige Operationen
    • Transaction History/Audit Log
  4. 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:

  1. Prüfe die Troubleshooting Sektion
  2. Schaue in server.log nach Fehlern
  3. 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

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选