Skip to main content
Glama
rhit-folayaod

systemlink-mcp

systemlink-mcp

NI SystemLink을 AI 클라이언트에 노출하는 MCP 서버로, 시험·계측(Test-and-Measurement) 특화 도구를 제공합니다: 제품 리비전별 수율(yield), 규격 한계 대비 불량 DUT 스텝, 측정 트레이스 요약, 교정 기한 도래 자산 등을 다룹니다.

이 프로젝트는 daq-mcp의 플릿(fleet)/데이터 계층 동반자입니다. 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-clientsAssetManagementClient에는 생성, 조회, 삭제, 파일 링크, 활용도 메서드가 있지만 자산 업데이트 메서드는 없습니다. 따라서 게이트된 쓰기 표면은 Test Monitor 결과 메타데이터를 업데이트하고 노트북 실행을 대기열에 넣는 역할만 하며, 자산 레코드는 다루지 않습니다.

스택

Python 3.11+, uv, FastMCP(stdio 또는 Streamable HTTP), Pydantic v2, 공식 nisystemlink-clients 패키지. 도구는 SDK를 직접 임포트하지 않고 SystemLinkBackend를 호출합니다. SYSTEMLINK_MCP_SIMULATE=1을 설정하면 SystemLink 서버가 필요 없는 순수 Python 페이크를 사용합니다.

uv sync
SYSTEMLINK_MCP_SIMULATE=1 uv run server.py

PowerShell:

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

시뮬레이션 백엔드는 SYSTEMLINK_MCP_SIMULATE=1이 설정된 경우에만 사용되며, 라이브 연결이 실패하고 SYSTEMLINK_MCP_REQUIRE_REAL이 설정되지 않은 경우에도 사용됩니다. 라이브 응답에는 "backend": "systemlink""simulated": false가 포함됩니다.

  1. SystemLink에서 API 키를 생성합니다 (Enterprise: 정책 생성 후 API 키; SDK가 보내는 HTTP 헤더는 x-ni-api-key입니다). SLE는 프로그래매틱 액세스에 사용자 이름과 비밀번호를 허용하지 않습니다.

  2. .env.example.env(gitignore 대상)로 복사하고 다음을 설정합니다:

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

SYSTEMLINK_MCP_SIMULATE는 설정하지 않은 채로 둡니다. 기본 인증을 여전히 허용하는 온프레미스 SystemLink Server는 키 대신 SYSTEMLINK_USERNAME / SYSTEMLINK_PASSWORD를 사용할 수 있습니다. SystemLink Cloud는 API 키만으로 사용할 수 있습니다(URI 불필요). 그러면 백엔드가 CloudHttpConfiguration을 구성합니다.

  1. MCP 실행 전에 프로브를 수행하여 로그인 실패가 조용히 페이크 플릿으로 바뀌지 않도록 합니다:

uv run server.py --probe

"simulated": false와 서버의 짧은 query_systems 미리보기가 표시되어야 합니다. 그런 다음 simulate 플래그 없이 MCP를 실행하거나 Cursor에서 .cursor/mcp.json.live.example을 가리킵니다.

--probe가 실패하면 JSON 오류는 더미 데이터가 아닌 SDK(ApiException / 연결)에서 온 것입니다.

도구

도구

액세스

답변하는 질문

summarize_yield

읽기

합격/불합격 수율, 선택적으로 부품, 프로그램 또는 시리얼별 그룹화

query_results

읽기

필터링된 결과 개수 및 제한된 최근 미리보기

get_failing_steps

읽기

단일 결과의 실패 스텝, 측정값 대 한계 비교

summarize_measurement

읽기

테이블 통계 및 다운샘플링된 트레이스(라이브 API에서 decimate)

list_calibration_due

읽기

교정 기한이 지났거나 임박한 자산

query_assets

읽기

존재 상태 및 교정 상태를 포함한 인벤토리

query_systems

읽기

등록된 시스템 및 연결 상태

query_products

읽기

제품 / 부품 번호 / 패밀리

query_specs

읽기

제품의 규격 한계

list_files

읽기

결과 또는 자산의 파일 메타데이터(내용 제외)

update_result_properties

게이트된 쓰기

테스트 결과의 키워드/속성

execute_notebook

게이트된 쓰기

Jupyter 노트북 실행 대기열에 추가

MCP Inspector

리포지토리 루트에서 시뮬레이션을 강제로 실행:

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

표시된 URL(일반적으로 http://127.0.0.1:6274)을 엽니다. 12개 도구가 나타나는지 확인한 후 group_by=part_numbersummarize_yield를 호출합니다.

stdio 대신 Streamable HTTP:

SYSTEMLINK_MCP_SIMULATE=1 uv run server.py --http

MCP 엔드포인트는 http://127.0.0.1:8000/mcp입니다. transport="sse"는 사용하지 마십시오. 해당 전송 방식은 더 이상 사용되지 않습니다(deprecated).

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

claude_desktop_config.json에 동일한 JSON 블록을 넣습니다:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

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

저장 후 Claude Desktop을 재시작합니다.

시뮬레이션 플릿을 활용하는 프롬프트

  1. "부품 번호 PN-5164-B의 합격/불합격 수율은 얼마이며, 다른 리비전과 그룹 비교하면 어떻습니까?"

  2. "DUT-1001이 BoardFunctional.seq에서 실패했습니다. 어떤 스텝이 실패했고, Gain은 한계와 어떻게 비교됩니까? 첨부된 측정 트레이스를 요약해 주세요."

  3. "기한이 지났거나 교정이 임박한 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에 문서화된 알려진 통합 위험입니다.

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