Skip to main content
Glama
rhit-folayaod

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.

uv sync
SYSTEMLINK_MCP_SIMULATE=1 uv run server.py

PowerShell:

$env:SYSTEMLINK_MCP_SIMULATE="1"; uv run server.py

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.

  1. 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.

  2. Kopieren Sie .env.example nach .env (gitignored) und setzen Sie:

SYSTEMLINK_SERVER_URI=https://your-systemlink-host
SYSTEMLINK_API_KEY=...
SYSTEMLINK_MCP_REQUIRE_REAL=1

Lassen 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.

  1. Testen Sie vor MCP, damit ein fehlgeschlagener Login nicht stillschweigend zur Fake-Flotte wird:

uv run server.py --probe

Sie 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

summarize_yield

Lesen

Durchfall-/Ausfallrate, optional gruppiert nach Teil, Programm oder Seriennummer

query_results

Lesen

Gefilterte Ergebnisanzahl plus eine begrenzte aktuelle Vorschau

get_failing_steps

Lesen

Fehlgeschlagene Schritte für ein Ergebnis, mit Messung vs. Grenzen

summarize_measurement

Lesen

Tabellenstatistiken plus eine heruntergesampelte Spur (auf der Live-API dezimiert)

list_calibration_due

Lesen

Assets, deren Kalibrierung überfällig ist oder bald ansteht

query_assets

Lesen

Inventar mit Präsenz- und Kalibrierungsstatus

query_systems

Lesen

Registrierte Systeme und Verbindungszustand

query_products

Lesen

Produkte / Teilenummern / Familien

query_specs

Lesen

Spezifikationsgrenzen für ein Produkt

list_files

Lesen

Dateimetadaten für ein Ergebnis oder Asset (keine Inhalte)

update_result_properties

Schreiben (gesperrt)

Schlüsselwörter/Eigenschaften an einem Testergebnis

execute_notebook

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.py

PowerShell:

$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 --http

Der 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.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Starten Sie Claude Desktop nach dem Speichern neu.

Prompts, die die simulierte Flotte testen

  1. "Wie ist die Durchfall-/Ausfallrate für Teilenummer PN-5164-B, gruppiert gegen die anderen Revisionen?"

  2. "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."

  3. "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 pytest

Tests 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.

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    C
    maintenance
    Exposes enterprise KPIs, health scores, forecasting, and anomaly detection as MCP tools, resources, and prompts for use by any MCP-compatible agent.
    2
    AGPL 3.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables 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
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to analyze plant-floor data using OEE, Pareto, SPC, and yield-loss calculations, providing continuous-improvement insights from manufacturing data.
    1

View all related MCP servers

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

View all MCP Connectors

Latest Blog Posts

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