factory-floor-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SAP_USER | No | Technical read-only SAP user, used together with SAP_PASSWORD. | |
| SAP_PLANT | No | Optional SAP plant used to filter work orders. | |
| SAP_TOKEN | No | SAP authentication token, an alternative to SAP_USER / SAP_PASSWORD. | |
| SAP_PASSWORD | No | Password for the read-only SAP technical user. | |
| SAP_ODATA_BASE | No | Base URL of the SAP S/4HANA OData V2 service API_PRODUCTION_ORDER_2_SRV, used to read work orders from SAP. | |
| FACTORY_MCP_DATA | No | Path to the Excel workbook with one sheet per table and a header row (equivalent to the --data CLI option). | |
| FACTORY_MCP_SALT | No | Salt used to generate stable pseudonyms for operator names. | |
| FACTORY_MCP_TOKEN | No | Bearer token required for the HTTP transport (at least 24 characters). The server refuses to start over HTTP without it. | |
| FACTORY_MCP_MAX_ROWS | No | Row cap per response; every list indicates whether it was truncated. | |
| FACTORY_MCP_AUDIT_LOG | No | Path to the JSONL audit log where every call (including failed calls) is recorded. | |
| FACTORY_MCP_MAX_LEVEL | No | Maximum classification level returned by the server: public / internal / confidential. Defaults to internal. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_datasetsA | List the available tables with row counts, date coverage and which columns are masked. Call this first when you do not know the data. |
| machine_oeeA | Overall Equipment Effectiveness (OEE = availability x performance x quality) for a period, grouped by machine, line, day or shift. Results by machine are sorted worst first. |
| downtime_paretoA | Downtime by reason, largest first, with share and cumulative share (Pareto). |
| downtime_eventsA | Individual downtime events (newest first) for drill-down after downtime_pareto. Operator names are pseudonymized by policy. |
| scrap_summaryA | Scrap quantity and scrap rate for a period, grouped by reason, machine or product. |
| get_work_ordersA | Work orders filtered by status, line, product and due-date range, sorted by due date. Customer names and prices are withheld unless the server policy allows confidential data. |
| late_work_ordersA | Orders past their due date and not completed (most late first), plus orders due within
|
| inventory_alertsA | Materials at or below their reorder point, with days of cover, whether they will run out before a new delivery can arrive (lead time), and a suggested order quantity. Most urgent first. |
| production_kpisB | Management summary for a period, compared with the previous period of the same length: OEE and its three factors, good and scrap parts, unplanned downtime hours with the top reasons, on-time delivery, open late orders and materials below reorder point. |
| search_recordsA | Free-text search (substring, case-insensitive) across record fields, for questions like 'what happened with WO-26017' or 'anything about coolant'. Masked columns are not searched. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| shift_report | Daily production report for the plant manager, in Hebrew |
| downtime_rca | Root-cause analysis for one machine's downtime |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| schema | Data dictionary with classification per column |
| policy | What this server may return, and what it masks |
| audit | The last 50 tool calls on this server |
TDQS
Scored across 10 tools
Tools mostly target distinct analytical areas (inventory, OEE, downtime, scrap, work orders), but get_work_orders and late_work_orders have overlapping scope, and production_kpis overlaps with component tools like machine_oee and downtime_pareto. Descriptions help clarify boundaries, reducing confusion.
Mixed conventions: some tools use verb_noun (list_datasets, search_records, get_work_orders) while others are noun phrases (inventory_alerts, production_kpis, machine_oee, downtime_pareto, downtime_events, scrap_summary, late_work_orders). All are snake_case and readable, but the lack of a consistent verb pattern reduces predictability.
10 tools is well within the typical 3-15 range for a domain-specific analytics server. Each tool provides a distinct analytical view, and there is no obvious redundancy or bloat.
The server covers key factory-floor analytics: dataset discovery, inventory alerts, production KPIs, OEE, downtime, scrap, and work orders. Minor gaps exist, such as no dedicated tool for raw production records or quality inspections beyond scrap, but core workflows are well supported.