Skip to main content
Glama
rhit-folayaod

systemlink-mcp

systemlink-mcp

MCP-сервер, который открывает NI SystemLink для ИИ-клиентов с инструментами, ориентированными на измерения и тестирование: выход годных по редакции продукта, шаги отказавших DUT относительно пределов спецификаций, сводки по измерительным трейсам и активы с истёкшей калибровкой.

Это компаньон уровня парка/данных для daq-mcp. daq-mcp работает с одним DAQ-устройством. systemlink-mcp запрашивает и сопоставляет результаты, активы и системы по всей лаборатории.

Это личный проект с одним сопровождающим. Он не является продуктом NI и не связан с NI / Emerson, не одобрен и не поддерживается ими.

Почему инструменты предметной области вместо универсальной обёртки

Коммерческий каталог middleware может перечислить 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. Инструменты чтения работают без дополнительных флагов.

Текущий AssetManagementClient из nisystemlink-clients имеет методы создания, запроса, удаления, привязки файлов и использования, но не имеет метода обновления активов. Поэтому ограниченная поверхность записи обновляет метаданные результатов Test Monitor и ставит в очередь выполнение ноутбуков, но не записи об активах.

Стек

Python 3.11+, uv, FastMCP (stdio или Streamable HTTP), Pydantic v2 и официальный пакет nisystemlink-clients. Инструменты никогда не импортируют SDK; они вызывают SystemLinkBackend. Установите SYSTEMLINK_MCP_SIMULATE=1 для чисто Python-имитации, которой не нужен сервер SystemLink.

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. Создайте API-ключ в SystemLink (Enterprise: сначала политику, затем API-ключ; HTTP-заголовок, который отправляет SDK, — 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 с вашего сервера. Затем запустите MCP без флага имитации или укажите Cursor на .cursor/mcp.json.live.example.

Если --probe завершается ошибкой, JSON-ошибка приходит от SDK (ApiException / connect), а не от фиктивных данных.

Инструменты

Инструмент

Доступ

На какой вопрос отвечает

summarize_yield

чтение

Доля прохождения/отказа, опционально с группировкой по детали, программе или серийнику

query_results

чтение

Количество отфильтрованных результатов плюс ограниченный предпросмотр последних

get_failing_steps

чтение

Шаги отказа для одного результата, с измерением и пределами

summarize_measurement

чтение

Статистика таблицы плюс прореженный трейс (децимация на живом API)

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). Убедитесь, что появились все двенадцать инструментов, затем вызовите summarize_yield с group_by=part_number.

Streamable HTTP вместо stdio:

SYSTEMLINK_MCP_SIMULATE=1 uv run server.py --http

Конечная точка MCP — 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.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.

Статус

Личный проект, один сопровождающий. Имитационный бэкенд — поддерживаемый путь для повседневной работы. Реальный бэкенд написан против API nisystemlink-clients 2.32.x, описанных на python-docs.systemlink.io и в исходниках ni/nisystemlink-clients-python. Он не запускался против живого экземпляра SystemLink Enterprise в CI этого репозитория. Имена свойств Dynamic LINQ для активов, связанных со статусом калибровки, следуют стилю PascalCase из официального примера AssetIdentifier; если живой сервер отклоняет такой фильтр, это известный интеграционный риск, описанный в 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