systemlink-mcp
systemlink-mcp
NI SystemLink をAIクライアントに公開するMCPサーバーで、テスト・計測に特化したツールを備えています。製品リビジョン別の歩留まり、規格限界に対する不合格DUTステップ、測定トレースの要約、校正期限切れのアセットなどに対応します。
これはdaq-mcpのフリート/データ層のコンパニオンです。daq-mcpは単一のDAQデバイスと通信します。systemlink-mcpはラボ全体の結果、アセット、システムを照会し、関連付けます。
これは個人プロジェクトであり、メンテナーは1名です。NI製品ではありません。NI / Emersonとの提携、承認、サポートは一切ありません。
汎用ラッパーではなくテストドメインツールを選ぶ理由
商用ミドルウェアカタログは、SystemLinkを何千もの産業システムの中に列挙し、CMMS/ERP型のサーフェス(作業指示、サイト、スペース、販売注文)を公開できます。その抽象化では、テストエンジニアが実際に問いかける質問に答えられません。
今四半期の製品リビジョンBの合格/不合格率
不合格DUTのどの測定が限界を超えたか
校正期限を過ぎたPXIモジュールはどれか
ここにあるすべてのツールは、そうした質問に合わせて設計されています。応答はサマリーと制限付きプレビューであり、生のTest MonitorやDataFrameのペイロードではありません。数千行の結果行や2000ポイントの波形をモデルコンテキストに流し込むと、API呼び出しが正しくてもサーバーは使えなくなります。
Related MCP server: Auto-Manager MCP
デフォルトで読み取り専用
変更を伴うツール(update_result_properties、execute_notebook)は、SYSTEMLINK_MCP_ALLOW_WRITE=1が設定されていない限り拒否します。読み取りツールは追加フラグなしで動作します。
現在のnisystemlink-clientsのAssetManagementClientには、作成、クエリ、削除、ファイルリンク、利用状況のメソッドがありますが、アセット更新メソッドはありません。したがって、ゲート付きの書き込みサーフェスは、Test Monitorの結果メタデータの更新とノートブック実行のキュー登録を行い、アセットレコードは更新しません。
スタック
Python 3.11+、uv、FastMCP(stdioまたはStreamable HTTP)、Pydantic v2、公式のnisystemlink-clientsパッケージ。ツールはSDKをインポートせず、SystemLinkBackendを呼び出します。SYSTEMLINK_MCP_SIMULATE=1を設定すると、SystemLinkサーバーを必要としない純Pythonのフェイクが使われます。
クイックスタート(SystemLinkサーバーなし)
uv sync
SYSTEMLINK_MCP_SIMULATE=1 uv run server.pyPowerShell:
$env:SYSTEMLINK_MCP_SIMULATE="1"; uv run server.py実際のSystemLink
シミュレートされたバックエンドは、SYSTEMLINK_MCP_SIMULATE=1が設定されている場合、またはライブ接続に失敗しSYSTEMLINK_MCP_REQUIRE_REALが未設定の場合にのみ使用されます。ライブ応答には"backend": "systemlink"と"simulated": falseが含まれます。
SystemLinkでAPIキーを作成します(Enterprise: ポリシー、次にAPIキー。SDKが送信するHTTPヘッダーは
x-ni-api-keyです)。SLEはプログラムによるアクセスにユーザー名とパスワードを受け付けません。.env.exampleを.env(gitignore対象)にコピーし、以下を設定します:
SYSTEMLINK_SERVER_URI=https://your-systemlink-host
SYSTEMLINK_API_KEY=...
SYSTEMLINK_MCP_REQUIRE_REAL=1SYSTEMLINK_MCP_SIMULATEは設定しないでください。基本認証をまだ許可しているオンプレミスのSystemLink Serverでは、キーの代わりにSYSTEMLINK_USERNAME / SYSTEMLINK_PASSWORDを使用できます。SystemLink CloudはAPIキーのみで使用できます(URIなし)。その場合、バックエンドはCloudHttpConfigurationを構築します。
MCPの前にプローブを実行して、ログイン失敗が静かにフェイクフリートに変わらないようにします:
uv run server.py --probe"simulated": falseと、サーバーからの短いquery_systemsプレビューが表示されるはずです。その後、シミュレートフラグなしでMCPを起動するか、Cursorを.cursor/mcp.json.live.exampleに向けます。
--probeが失敗した場合、JSONエラーはSDK(ApiException / 接続)からのものであり、ダミーデータからのものではありません。
ツール
ツール | アクセス | 回答する内容 |
| 読み取り | 合格/不合格の収率。オプションで部品、プログラム、シリアルでグループ化 |
| 読み取り | フィルタリングされた結果数と、制限付きの最近のプレビュー |
| 読み取り | 1つの結果の失敗ステップ。測定値と限界値の比較を含む |
| 読み取り | テーブル統計とダウンサンプリングされたトレース(ライブAPIではデシメーション) |
| 読み取り | 校正期限を過ぎた、または近づいているアセット |
| 読み取り | 在庫と存在状況、校正ステータス |
| 読み取り | 登録済みシステムと接続状態 |
| 読み取り | 製品 / 部品番号 / ファミリ |
| 読み取り | 製品の仕様限界 |
| 読み取り | 結果またはアセットのファイルメタデータ(内容は含まない) |
| ゲート付き書き込み | テスト結果のキーワード/プロパティ |
| ゲート付き書き込み | Jupyterノートブックの実行をキューに登録 |
MCP Inspector
リポジトリのルートから、シミュレーションを強制して:
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表示されたURL(通常はhttp://127.0.0.1:6274)を開きます。12個のツールが表示されることを確認し、group_by=part_numberを指定してsummarize_yieldを呼び出します。
stdioの代わりにStreamable HTTP:
SYSTEMLINK_MCP_SIMULATE=1 uv run server.py --httpMCPエンドポイントはhttp://127.0.0.1:8000/mcpです。transport="sse"は使用しないでください。そのトランスポートは非推奨です。
Cursor
.cursor/mcp.json.example(シミュレーター)または.cursor/mcp.json.live.example(実サーバー)を使用します。マシンローカルの.cursor/mcp.jsonはgitignore対象です。
{
"mcpServers": {
"systemlink-mcp": {
"command": "uv",
"args": [
"run",
"--directory",
"C:/Users/folayaod/personal/systemlink-mcp",
"server.py"
],
"env": {
"SYSTEMLINK_MCP_SIMULATE": "1"
}
}
}
}Claude Desktop
同じJSONブロックをclaude_desktop_config.jsonに:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
保存後、Claude Desktopを再起動します。
シミュレートされたフリートを試すプロンプト
「部品番号PN-5164-Bの合格/不合格率は、他のリビジョンとグループ化するとどうなりますか?」
「DUT-1001がBoardFunctional.seqで失敗しました。どのステップが失敗し、Gainは限界値とどのように比較されましたか?添付の測定トレースを要約してください。」
「校正期限を過ぎた、または近づいているPXIアセットはどれですか。PXI Rack 1は接続されていますか?」
テスト
SYSTEMLINK_MCP_SIMULATE=1 uv run pytestテストはシミュレートされたバックエンドのみを対象としています。SystemLinkへのネットワーク接続は開きません。
ステータス
個人プロジェクト、メンテナー1名。シミュレートされたバックエンドがサポートされている日常的なパスです。実際のバックエンドは、python-docs.systemlink.ioで文書化されたnisystemlink-clients 2.32.x APIと、ni/nisystemlink-clients-pythonソースに基づいて記述されています。このリポジトリのCIでは、ライブのSystemLink Enterpriseインスタンスに対して実行されていません。校正ステータスのAsset Dynamic LINQプロパティ名は、公式のAssetIdentifier例のPascalCaseスタイルに従います。ライブサーバーがそのフィルターを拒否した場合、それはDEVLOG.mdに文書化された既知の統合リスクです。
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