К основному содержанию
MCP-сервер CX Codex

EPICS Channel Access — MCP-сервер для Claude Code: чтение и запись PV

Даёт агенту доступ к процессным переменным EPICS: чтение, мониторинг и запись, если её разрешить. Пригодится на ускорителях и лабораторных установках.

Установить в Claude Code · Командой платформы Все способы и платформы ↓
claude mcp add --env LABMCP_ADDRESS=<LABMCP_ADDRESS> --env LABMCP_SIMULATE=<LABMCP_SIMULATE> --env LABMCP_READ_ONLY=<LABMCP_READ_ONLY> --env LABMCP_LIMITS=<LABMCP_LIMITS> --transport stdio epics -- uvx labmcp-epics
Открыть на GitHub

Что делает EPICS Channel Access

Сервер подключается к EPICS по Channel Access и отдаёт агенту инструменты для работы с процессными переменными. Читать можно всё: get_pv вернёт значение с единицами, точностью, лимитами и статусом аварии, get_pvs заберёт сразу пачку переменных, а monitor_pv подпишется на изменения и соберёт статистику за указанное число секунд. Отдельно есть pv_info — показывает, какой IOC обслуживает переменную и есть ли у клиента право записи.

Запись вынесена в put_pv и put_pvs и по умолчанию не работает. Чтобы она вообще прошла, переменная должна попасть в список разрешённых через --option put_allowlist=, IOC должен дать доступ на запись, а значение — уложиться в лимиты DRVL/DRVH. Запускать сервер стоит с --read-only, пока ответственный за установку не разрешит обратное: запись в PV двигает моторы, открывает затворы и меняет уставки магнитов. В read-only остаётся доступным apply_safe_state — аварийная запись заранее прописанных безопасных состояний.

Ничего компилировать не нужно: под капотом caproto, реализация CA на чистом Python, поэтому libca не требуется. Проверить связь до подключения к железу можно на встроенном симуляторе — uvx labmcp-epics --simulate --check поднимает настоящий CA-сервер на 127.0.0.1 со случайными портами и набором тестовых PV вроде SIM:TEMP и SIM:MTR. Для реальной сети нужен доступ к IOC или шлюзу: UDP 5064 и 5065, TCP 5064.

Какие задачи решает

  • прочитать показания вакуумных датчиков пучковой линии
  • следить за током пучка и ловить выбросы
  • проверить, есть ли у клиента право записи в PV
  • сдвинуть образец или фильтрующее колесо по разрешению
  • вывести установку в безопасное состояние одной командой

Примеры запросов агенту

  • Прочитай BL7:RING:I и скажи, есть ли авария.
  • Помониторь SIM:TEMP десять секунд и покажи статистику.
  • Переведи BL7:SAMPLE:X.STOP в 1, запись разрешена.

Как установить EPICS Channel Access

Командой платформы

claude mcp add --env LABMCP_ADDRESS=<LABMCP_ADDRESS> --env LABMCP_SIMULATE=<LABMCP_SIMULATE> --env LABMCP_READ_ONLY=<LABMCP_READ_ONLY> --env LABMCP_LIMITS=<LABMCP_LIMITS> --transport stdio epics -- uvx labmcp-epics

Вместо <…> подставьте свои значения. uvx запускает команду с именем пакета; если в README она другая — uvx --from labmcp-epics <команда>

По шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие

Вопросы о EPICS Channel Access

Как установить EPICS Channel Access в Claude Code?

Выполните claude mcp add labmcp-epics -- uvx labmcp-epics. Для передачи адреса, режима симуляции, read-only и лимитов есть вариант с переменными окружения: `claude mcp add --env LABMCP_ADDRESS=<LABMCP_ADDRESS> --env LABMCP_SIMULATE=<LABMCP_SIMULATE> --env LABMCP_READ_ONLY=<LABMCP_READ_ONLY> --env LABMCP_LIMITS=<LABMCP_LIMITS> --transport stdio epics -- uvx labmcp-epics`.

Что делает EPICS Channel Access?

Позволяет агенту читать процессные переменные EPICS, подписываться на их изменения и писать значения, если запись разрешена списком и правами IOC.

Можно ли попробовать без железа?

Да, команда uvx labmcp-epics --simulate --check поднимает CA-сервер прямо в процессе на 127.0.0.1 и отдаёт тестовые PV. Настоящая сеть не затрагивается.

Похожие MCP-серверы

Всё по теме «Наука и исследования» →
create-epics Donchitos Разбивает GDD и архитектуру на эпики, по одному на архитектурный модуль. Нужен, когда планируешь работу до написания историй. CX Codex +1 419установок pylabrobot K-Dense-AI Помогает проектировать протоколы PyLabRobot, проверять геометрию планшетов и симулировать дозирование без подключения к реальным роботам. CX Codex +1 1 900установок opentrons-integration K-Dense-AI Скилл для написания, проверки и отладки протоколов Opentrons Protocol API v2 на Python. Работает с жидкостными манипуляторами Flex и OT-2, помогает настроить деку, пипетки, модули и параметры запуска. CX Codex +1 1 900установок create-stories Donchitos Разбивает один эпик на истории с критериями приёмки. Нужен, когда пора переходить от дизайна к работе. CX Codex +1 420установок service-agentforce-channel-configure forcedotcom Скилл подключает уже существующий Agentforce-агент к каналу: находит очередь для переполнения, настраивает входящую маршрутизацию и, если нужно, исходящую эскалацию. CX Codex +1 1 200установок service-de-channel-create forcedotcom Создаёт неактивные каналы расширенного обмена сообщениями в Salesforce через Connect REST API. Пригодится при автоматизированной настройке каналов связи. CX Codex +1 654установок

Из того же набора7

Thorlabs Optical Power Meter MCP-сервер для измерителей мощности Thorlabs: агент читает мощность лазера, ведёт лог стабильности, задаёт длину волны и усреднение по SCPI. CX Codex +1 ★ 23звёзд репо SRS Lock-in Amplifier Даёт агенту доступ к усилителям Stanford Research Systems: чтение X/Y/R/θ, настройка частоты, фазы и чувствительности, частотные свипы. CX Codex +1 ★ 23звёзд репо NI-DAQmx DAQ Devices MCP-сервер даёт агенту доступ к платам National Instruments через драйвер NI-DAQmx: замер напряжения и температуры, чтение цифровых линий, запись выходов. CX Codex +1 ★ 23звёзд репо Mass Spectrometry Data (mzML, Bruker TDF, vendor conversion) Даёт агенту доступ к файлам LC-MS: список прогонов, хроматограммы, спектры, поиск MS2 по прекурсору и быстрый QC. CX Codex +1 ★ 23звёзд репо Keithley SourceMeter SMU Даёт агенту управление SourceMeter SMU: задать напряжение или ток с ограничением, снять ВАХ, измерить V и I. Пригодится, когда прибор стоит на столе, а не в руках. CX Codex +1 ★ 23звёзд репо ASTM LIS Analyzer Receiver Принимает результаты с клинических анализаторов по ASTM E1381/E1394 и даёт агенту искать их по пробе, пациенту, тесту или времени. CX Codex +1 ★ 23звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой