systemlink-mcp
systemlink-mcp
Ein MCP-Server, der NI SystemLink für KI-Clients mit test- und messtechnikspezifischen Tools bereitstellt: Ausbeute nach Produktrevision, fehlgeschlagene DUT-Schritte im Vergleich zu Spezifikationsgrenzen, Messspur-Zusammenfassungen und kalibrierungsfällige Assets.
Dies ist die Flotten-/Datenebenen-Ergänzung zu daq-mcp. daq-mcp kommuniziert mit einem einzelnen DAQ-Gerät. systemlink-mcp fragt Ergebnisse, Assets und Systeme in einem Labor ab und korreliert sie.
Dies ist ein persönliches Projekt mit einem einzigen Betreuer. Es ist kein NI-Produkt und steht in keiner Verbindung zu NI / Emerson, wird von diesen weder unterstützt noch befürwortet.
Warum testdomänenspezifische Tools statt eines generischen Wrappers
Ein kommerzieller Middleware-Katalog kann SystemLink unter Tausenden von Industriesystemen auflisten und dann eine CMMS/ERP-förmige Oberfläche bereitstellen: Arbeitsaufträge, Standorte, Räume, Verkaufsaufträge. Diese Abstraktion kann nicht beantworten, was ein Testingenieur tatsächlich fragt:
Durchfall-/Ausfallraten für Produktrevision B in diesem Quartal
welche Messung an einem fehlgeschlagenen DUT ihre Grenze überschritten hat
welches PXI-Modul sein Kalibrierungsdatum überschritten hat
Jedes Tool hier ist auf diese Fragen zugeschnitten. Antworten sind Zusammenfassungen plus eine begrenzte Vorschau, keine rohen Test-Monitor- oder DataFrame-Payloads. Tausende Ergebniszeilen oder eine 2000-Punkte-Wellenform in einen Modellkontext zu kippen, macht den Server unbrauchbar, selbst wenn die API-Aufrufe korrekt sind.
Related MCP server: Auto-Manager MCP
Standardmäßig schreibgeschützt
Verändernde Tools (update_result_properties, execute_notebook) verweigern die Ausführung, es sei denn, SYSTEMLINK_MCP_ALLOW_WRITE=1 ist gesetzt. Lesetools funktionieren ohne zusätzliche Flags.
Der aktuelle nisystemlink-clients-AssetManagementClient verfügt über Methoden zum Erstellen, Abfragen, Löschen, Dateiverknüpfen und zur Auslastung, aber keine Asset-Update-Methode. Die gesperrte Schreiboberfläche aktualisiert daher Test-Monitor-Ergebnismetadaten und stellt Notebook-Ausführungen in die Warteschlange, nicht Asset-Datensätze.
Stack
Python 3.11+, uv, FastMCP (stdio oder Streamable HTTP), Pydantic v2 und das offizielle nisystemlink-clients-Paket. Tools importieren das SDK nie; sie rufen ein SystemLinkBackend auf. Setzen Sie SYSTEMLINK_MCP_SIMULATE=1 für einen reinen Python-Fake, der keinen SystemLink-Server benötigt.
Schnellstart (ohne SystemLink-Server)
uv sync
SYSTEMLINK_MCP_SIMULATE=1 uv run server.pyPowerShell:
$env:SYSTEMLINK_MCP_SIMULATE="1"; uv run server.pyEchtes SystemLink
Das simulierte Backend wird nur verwendet, wenn SYSTEMLINK_MCP_SIMULATE=1 gesetzt ist oder wenn eine Live-Verbindung fehlschlägt und SYSTEMLINK_MCP_REQUIRE_REAL nicht gesetzt ist. Eine Live-Antwort hat "backend": "systemlink" und "simulated": false.
Erstellen Sie einen API-Schlüssel in SystemLink (Enterprise: zuerst eine Richtlinie, dann einen API-Schlüssel; der HTTP-Header, den das SDK sendet, ist
x-ni-api-key). SLE akzeptiert keinen Benutzernamen und kein Passwort für den programmatischen Zugriff.Kopieren Sie
.env.examplenach.env(gitignored) und setzen Sie:
SYSTEMLINK_SERVER_URI=https://your-systemlink-host
SYSTEMLINK_API_KEY=...
SYSTEMLINK_MCP_REQUIRE_REAL=1Lassen Sie SYSTEMLINK_MCP_SIMULATE ungesetzt. Ein On-Premises-SystemLink-Server, der weiterhin Basic Auth erlaubt, kann SYSTEMLINK_USERNAME / SYSTEMLINK_PASSWORD anstelle eines Schlüssels verwenden. SystemLink Cloud kann den API-Schlüssel allein verwenden (keine URI); das Backend konstruiert dann CloudHttpConfiguration.
Testen Sie vor MCP, damit ein fehlgeschlagener Login nicht stillschweigend zur Fake-Flotte wird:
uv run server.py --probeSie sollten "simulated": false und eine kurze query_systems-Vorschau von Ihrem Server sehen. Starten Sie dann MCP ohne das Simulate-Flag oder zeigen Sie Cursor auf .cursor/mcp.json.live.example.
Wenn --probe fehlschlägt, stammt der JSON-Fehler vom SDK (ApiException / connect), nicht von Dummy-Daten.
Tools
Tool | Zugriff | Was es beantwortet |
| Lesen | Durchfall-/Ausfallrate, optional gruppiert nach Teil, Programm oder Seriennummer |
| Lesen | Gefilterte Ergebnisanzahl plus eine begrenzte aktuelle Vorschau |
| Lesen | Fehlgeschlagene Schritte für ein Ergebnis, mit Messung vs. Grenzen |
| Lesen | Tabellenstatistiken plus eine heruntergesampelte Spur (auf der Live-API dezimiert) |
| Lesen | Assets, deren Kalibrierung überfällig ist oder bald ansteht |
| Lesen | Inventar mit Präsenz- und Kalibrierungsstatus |
| Lesen | Registrierte Systeme und Verbindungszustand |
| Lesen | Produkte / Teilenummern / Familien |
| Lesen | Spezifikationsgrenzen für ein Produkt |
| Lesen | Dateimetadaten für ein Ergebnis oder Asset (keine Inhalte) |
| Schreiben (gesperrt) | Schlüsselwörter/Eigenschaften an einem Testergebnis |
| Schreiben (gesperrt) | Ausführung eines Jupyter-Notebooks in die Warteschlange stellen |
MCP Inspector
Aus dem Repository-Stammverzeichnis, mit erzwungener Simulation:
SYSTEMLINK_MCP_SIMULATE=1 npx -y @modelcontextprotocol/inspector uv run server.pyPowerShell:
$env:SYSTEMLINK_MCP_SIMULATE="1"
npx -y @modelcontextprotocol/inspector uv run server.pyÖffnen Sie die gedruckte URL (typischerweise http://127.0.0.1:6274). Bestätigen Sie, dass die zwölf Tools erscheinen, und rufen Sie dann summarize_yield mit group_by=part_number auf.
Streamable HTTP statt stdio:
SYSTEMLINK_MCP_SIMULATE=1 uv run server.py --httpDer MCP-Endpunkt ist http://127.0.0.1:8000/mcp. Verwenden Sie nicht transport="sse"; dieser Transport ist veraltet.
Cursor
Verwenden Sie .cursor/mcp.json.example (Simulator) oder .cursor/mcp.json.live.example (echter Server). Maschinenlokales .cursor/mcp.json ist gitignored.
{
"mcpServers": {
"systemlink-mcp": {
"command": "uv",
"args": [
"run",
"--directory",
"C:/Users/folayaod/personal/systemlink-mcp",
"server.py"
],
"env": {
"SYSTEMLINK_MCP_SIMULATE": "1"
}
}
}
}Claude Desktop
Derselbe JSON-Block in claude_desktop_config.json:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Starten Sie Claude Desktop nach dem Speichern neu.
Prompts, die die simulierte Flotte testen
"Wie ist die Durchfall-/Ausfallrate für Teilenummer PN-5164-B, gruppiert gegen die anderen Revisionen?"
"DUT-1001 ist bei BoardFunctional.seq fehlgeschlagen. Welcher Schritt ist fehlgeschlagen, und wie hat sich Gain im Vergleich zu seinen Grenzen verhalten? Fassen Sie die zugehörige Messspur zusammen."
"Welche PXI-Assets sind überfällig oder stehen kurz vor der Kalibrierung, und ist PXI Rack 1 verbunden?"
Tests
SYSTEMLINK_MCP_SIMULATE=1 uv run pytestTests treffen nur das simulierte Backend. Sie öffnen keine Netzwerkverbindung zu SystemLink.
Status
Persönliches Projekt, ein Betreuer. Das simulierte Backend ist der unterstützte Alltagspfad. Das echte Backend ist gegen die nisystemlink-clients-APIs in Version 2.32.x geschrieben, dokumentiert unter python-docs.systemlink.io und im Quellcode von ni/nisystemlink-clients-python. Es wurde in der CI dieses Repositorys nicht gegen eine Live-SystemLink-Enterprise-Instanz ausgeführt. Die Asset-Dynamic-LINQ-Eigenschaftsnamen für den Kalibrierungsstatus folgen dem PascalCase-Stil des offiziellen AssetIdentifier-Beispiels; wenn ein Live-Server diesen Filter ablehnt, ist das ein bekanntes Integrationsrisiko, das in DEVLOG.md dokumentiert ist.
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 Servers
- AlicenseNot gradedqualityCmaintenanceExposes enterprise KPIs, health scores, forecasting, and anomaly detection as MCP tools, resources, and prompts for use by any MCP-compatible agent.2AGPL 3.0
- AlicenseNot gradedqualityCmaintenanceEnables natural language analysis of mechanical test data files (CSV, TDMS, MDF) by providing tools for channel statistics, spectrum analysis, rainflow fatigue counting, thermal state detection, and report generation.MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to analyze plant-floor data using OEE, Pareto, SPC, and yield-loss calculations, providing continuous-improvement insights from manufacturing data.1
- FlicenseNot gradedqualityCmaintenanceExposes product analytics metrics from an internal data warehouse via MCP, enabling agents to query metrics, product summaries, and event breakdowns.
Related MCP Connectors
A paid remote MCP for AI SDK data query MCP, built to return verdicts, receipts, usage logs, and aud
A paid remote MCP for AI SDK benchmark dashboard, built to return verdicts, receipts, usage logs, an
A paid remote MCP for AI SDK eval dashboard, built to return verdicts, receipts, usage logs, and aud
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/rhit-folayaod/systemlink-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server