FOREMAN — Production Intelligence with Memory. Read-only MCP server exposing aggregated production insights: machine metadata, sensor trends, alarms, drift status, failure predictions, worker recommendations, event chain explanations, and semantic note search. All AI-generated outputs carry transparency flags and validation caveats. Server is stateless, idempotent, and non-destructive.
Foreman provides 11 well-named, read-only tools with consistent verb_noun naming (list_, get_, search_). All tools have descriptions in German (10 - 150 chars, within baseline 34 - 392 range). Input schemas are present and typed for all tools. However, descriptions lack LLM-optimized detail: they state WHAT but rarely explain WHEN to use each tool or dependencies between them. Parameter descriptions are minimal (e.g., 'Die ID der Maschine' for machine_id). Output schemas are not documented, LLMs cannot infer what fields to expect from list_machines or get_alarms. Error handling is absent from visible code. No pagination guidance despite tools accepting limit/offset. German descriptions are a localization choice but reduce LLM clarity in English-first agent contexts.
Liest Alarme (inklusive Drift-Warnungen), optional gefiltert nach Maschine, Zeitpunkt und Schweregrad.
Liefert die aktuelle Drift-Lage einer Maschine: offene, noch nicht quittierte Verhaltens-Warnungen.
Liefert eine einzelne gespeicherte Ereignisketten-Erklärung.
Liefert eine einzelne gespeicherte Ausfall-Einschätzung samt Transparenz-Flags.
Liefert eine einzelne Maschine samt Stammdaten und aktuellem Status.
Liefert den aggregierten Sensortrend eines Datenpunkts über die letzten Stunden.
Output schemas not documented. LLMs cannot infer what fields list_machines, get_alarms, or search_notes return. This forces agents to guess at response structure and risks failed downstream tool chaining.
Descriptions lack LLM-optimized context. German descriptions are brief (45 - 55 chars avg) and state only WHAT, not WHEN to use or dependencies. E.g., 'Liefert die aktuelle Drift-Lage' does not explain when to call get_drift_status vs get_alarms.
Parameter descriptions are minimal and non-actionable. 'Die ID der Maschine' does not explain format, range, or how to obtain a machine_id. LLMs cannot self-correct invalid inputs.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Liefert die gespeicherte Handlungs-Empfehlung zu einer Einschätzung samt Vorbehalt.
Listet gespeicherte Ereignisketten-Erklärungen mit ihren Vertrauens-Markern.
Listet gespeicherte Ausfall-Einschätzungen; jede trägt ihren Validierungs-Vorbehalt mit.
Listet die Maschinen mit Stammdaten und aktuellem Status (gesund, Drift aktiv oder offene Warnung).
Sucht semantisch ähnliche Schicht-Notizen; der Text ist maskiert, der Verfasser pseudonym.
No error handling guidance visible. Tools accept optional filters (machine_id, severity, since) but no documentation of what happens if filters are invalid or no results match. Agents cannot recover from failures.
Pagination parameters (limit, offset) present but not explained. No guidance on max limits, default behavior, or total count in response. Tools may silently truncate results.