rei-lads-mcp
rei-lads-mcp
⚠️ v0.1.0-preview — Release für frühes Feedback. NICHT für den Produktionseinsatz. Die API ist vor v1.0.0 nicht stabil. In jeder 0.x-Version können bahnbrechende Änderungen auftreten. Die X.509-Zertifikatsauthentifizierung wird in der 0.1.x-Linie nicht unterstützt (nur Benutzername/Passwort). Siehe ROADMAP.md für Phase-5-Punkte.
Ein MCP-Server, der OPC UA LADS-Instrumente (Laboratory Agnostic Device Standard) für LLM-Agenten bereitstellt, mit zwei Rei-spezifischen Disziplinen:
Freigabe-gesteuerte Ausführung – jedes zustandsändernde Werkzeug validiert seinen Operationsnamen gegen eine serverdeklarierte Enumeration (LADS-State-Machine- Methoden, Programmvorlagen). Beliebige Zeichenfolgen werden an der MCP-Grenze abgelehnt, bevor ein Netzwerkaufruf ausgelöst wird.
Bezeugte Herkunft – jeder zustandsändernde Aufruf erzeugt einen SHA-256- Datensatz (Initiator, Knoten, Operation, Parameter, Proben, Zeitstempel), der in einer lokalen append-only JSONL-Datei gespeichert und per Präfix abrufbar ist.
Modelliert nach den LADS-Referenzimplementierungen unter
opcua-lads und basierend auf dem
Rei / D-FUMT Freigabe-Gate +
witnessed by-Design.
Installation
Erfordert Python 3.12+.
python -m venv .venv
./.venv/bin/pip install -r requirements.txt # Linux/macOS
./.venv/Scripts/pip install -r requirements.txt # WindowsRelated MCP server: SiLA MCP Server
Schnellstart
Starten Sie einen LADS-Referenzserver (zum Beispiel lads-viscometer aus
opcua-lads/lads-server-collection),
und führen Sie dann aus:
python server.pyDies startet einen Stdio-MCP-Server. Richten Sie einen beliebigen MCP-Client darauf aus.
Programmatische Überprüfung (kein MCP-Client erforderlich):
python test_tools_list.py # 15 tools registered, schemas generated
python test_live_phase4.py # end-to-end against a running LADS server on
# opc.tcp://localhost:4840Werkzeuge (15)
Verbindung
lads_connect(alias, server_url, user?, password?, wait_timeout_s?, cert_path?, key_path?)lads_register_alias(alias, server_url, description?, user?, password?)lads_list_aliases()lads_connect_by_alias(alias, wait_timeout_s?)
Entdeckung (nur lesend)
lads_list_devices(alias)lads_get_functional_units(alias, device_index)lads_get_sensor_value(alias, device_index, unit_index, function_index)lads_get_state(alias, device_index, unit_index)lads_get_state_machine_methods(alias, device_index, unit_index)lads_list_program_templates(alias, device_index, unit_index)lads_list_results(alias, device_index, unit_index)
Zustandsändernd (erzeugt Zeugendatensätze)
lads_call_state_machine_method(alias, device_index, unit_index, method_name)– validiert method_name gegen die serverdeklarierte Inventarlistelads_start_program(alias, device_index, unit_index, template_name, properties?, samples?, supervisory_job_id?, supervisory_task_id?)– validiert template_name gegen ProgramManager-Vorlagen
Zeugenabruf
lads_list_witness_recent(limit?)lads_show_witness(sha256_prefix)– mindestens 4 Zeichen
Freigabe-Gate-Demo
lads_call_state_machine_method(alias, 0, 0, "Start")
# -> {invocation: "queued (async)", witness_hash: "..."}
lads_call_state_machine_method(alias, 0, 0, "ArbitraryExec")
# -> {error: "method 'ArbitraryExec' not declared by this state machine",
# valid_methods: ["Start", "StartProgram", "Stop"]}Die Ablehnung erfolgt an der Grenze des MCP-Werkzeugs – kein OPC-UA-Aufruf wird für einen
Operationsnamen ausgelöst, der nicht vom LADS-Server deklariert wurde. Gleiches Muster
für lads_start_program(template_name=...).
Bezeugte Herkunft
Jeder zustandsändernde Werkzeugaufruf erzeugt einen Datensatz wie:
{
"initiator": "mcp-caller",
"node_alias": "viscometer",
"server_url": "opc.tcp://localhost:4840",
"device_browse_name": "myViscometer",
"unit_browse_name": "ViscometerUnit",
"operation": "StartProgram",
"template_name": "Analytical Method A (30rpm)",
"params": {"Speed": "30", "Duration": "60"},
"sample_context": [{"ContainerId": "vial-01", "SampleId": "sample-a",
"Position": "A1", "CustomData": "phase4-test"}],
"timestamp_utc": "2026-08-26T00:23:54.333266+00:00",
"phase": "accepted",
"sha256_hex": "174b5e1498a5d0cca55ce9291adf95f612161ed590b839258e700e994cba25ae"
}Gespeichert in ~/.rei-lads/witness/YYYY-MM.jsonl (Umgebungsüberschreibung
REI_LADS_WITNESS_DIR). Abrufbar über die beiden lads_*_witness_*-
Werkzeuge per SHA-256-Präfix.
Verwandte Arbeiten
opcua-lads/lads-server-collection– LADS-Referenz-OPC-UA-Server (Viscometer / pH-Meter / Balance / Freezer / FT-NIR)opcua-lads/lads-client-py– der Python-Client, den diese Brücke umschließtTECTOS-JP/lab-visa-mcp– verwandter MCP für PyVISA-gesteuerte Instrumentefc0web/rei-lang– das Rei-Sprachprojekt, dessen Disziplin diese Brücke umsetztRei-Zertifiziertes Programm (Entwurf) – die Konformitätsoberfläche, für die diese Brücke ein Kandidat für ein G1-Pilotprojekt ist
Vorschau-Status
Phase 1-4-Spike abgeschlossen – 15 Werkzeuge, L2 und L3 beide grün gegen eine live LADS-Viskosimeter-Simulation
Phase-4-Fixes, die bereits im Code sind: Banner-Unterdrückung beim Import,
Connection.initialized-Polling,QualifiedName-EntpackenPhase 5 ist noch nicht implementiert – siehe ROADMAP.md
API-Stabilität: nicht vor v1.0.0 – erwarten Sie bahnbrechende Änderungen in 0.x
Die vollständige Spike-Historie ist in SPIKE-HISTORY.md für die Aufzeichnung erhalten.
Lizenz
MIT – siehe LICENSE. LADS-Ökosystem-Konvention.
Mitwirken
Siehe CONTRIBUTING.md. Externe Mitwirkende müssen eine unterzeichnete CLA vorlegen, sobald die Rei-Projekt-CLA finalisiert ist.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
Runtime permission, approval, and audit layer for AI agent tool execution.
Connect agents to 6DuckLearn memory, approvals, and runtime control.
Human-in-the-loop approval for agent actions, with verifiable action-bound receipts.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceConnects AI agents to OPC UA-enabled industrial systems for real-time monitoring and control of operational data. It enables users to read, write, and browse industrial device nodes through natural language interactions.MIT
- FlicenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to interact with laboratory devices via a SiLA server, allowing querying device info, listing commands, executing commands, and monitoring status.
- AlicenseBqualityAmaintenanceExposes a deterministic IoT edge runtime — Modbus/CAN/J1939 acquisition, local rules, alarms, and history — to AI assistants as typed, governed MCP tools. Reads are safe by default; device control stays deny-by-default, explicitly confirmed, and audited.233Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables LLMs to read, write, browse, search, and subscribe to live data on OPC-UA industrial automation servers, with caching, discovery index, and support for stdio or HTTP transports.5MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/fc0web/rei-lads-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server