Skip to main content
Glama
Jacky1-Jiang

EPICS MCP Server

by Jacky1-Jiang

EPICS-MCP-сервер

значок кузнеца

Обзор

  • EPICS MCP Server — это сервер на основе Python, разработанный для взаимодействия с переменными процесса (PV) EPICS (Experimental Physics and Industrial Control System). Он предоставляет набор инструментов для извлечения значений PV, установки значений PV и получения подробной информации о PV. Сервер создан с использованием фреймворка mcp и взаимодействует через stdio, что делает его пригодным для интеграции в более крупные системы управления или рабочие процессы.

  • Этот инструмент особенно полезен в средах, где фотоэлектрические модули EPICS используются для мониторинга и управления параметрами оборудования или программного обеспечения.

Функции

  • Сервер EPICS MCP предоставляет следующие инструменты:

  1. получить_pv_value

    • Создать или обновить отдельный файл в репозитории

    • Входные данные:

      • pv_name (строка): Имя переменной PV.

    • Возвращает: объект JSON, содержащий статус ( success или error ) и полученное значение или сообщение об ошибке.

  2. set_pv_value

    • Установите новое значение для указанного PV.

    • Входные данные:

      • pv_name (строка): Имя переменной PV.

      • pv_value (строка): новое значение, которое будет установлено для PV.

    • Возвращает: объект JSON, содержащий статус ( success или error ), а также сообщение с подтверждением или сообщение об ошибке.

  3. получить_pv_info

    • Получает подробную информацию об указанном PV.

    • Входные данные:

      • pv_name (строка): Имя переменной PV.

    • Возвращает: объект JSON, содержащий статус ( success или error ) и подробную информацию о PV или сообщение об ошибке.

Использование с Langchain

  • Чтобы использовать его с Langchain, необходимо установить зависимости, необходимые для проекта.

pip install -r requirements.txt
  • Langchain

server_params = StdioServerParameters(
    command="python",
    # Make sure to update to the full absolute path to your math_server.py file
    args=["/path/server.py"],
)
  • ЭПИКИ

  • Перед использованием сервера EPCIS mcp необходимо успешно установить EPCIS на локальной машине, убедиться, что IOC может нормально запуститься, и проверить, что такие функции, как caget , caput и cainfo работают правильно. Подробные инструкции по установке см. на сайте https://epics-controls.org/resources-and-support/base/ .

jiangyan@DESKTOP-84CO9VB:~$ softIoc -d ~/EPICS/DB/test.db
Starting iocInit
############################################################################
## EPICS R7.0.8
## Rev. 2025-02-13T14:29+0800
## Rev. Date build date/time:
############################################################################
iocRun: All initialization complete
epics>
jiangyan@DESKTOP-84CO9VB:~$ caget temperature:water
temperature:water              88
jiangyan@DESKTOP-84CO9VB:~$ caput temperature:water 100
Old : temperature:water              88
New : temperature:water              100
jiangyan@DESKTOP-84CO9VB:~$ cainfo temperature:water
temperature:water
    State:            connected
    Host:             127.0.0.1:5056
    Access:           read, write
    Native data type: DBF_DOUBLE
    Request type:     DBR_DOUBLE
    Element count:    1

Результат теста

  • Клиент MCР:

async def run():
    async with stdio_client(server_params) as (read, write):
        async with ClientSession(read, write) as session:
            # Initialize the connection
            await session.initialize()

            # Get tools
            tools = await load_mcp_tools(session)

            # Create and run the agent
            agent = create_react_agent(model, tools)
            agent_response = await agent.ainvoke({"messages": "To query the value of a PV (Process Variable) named temperature:water"})
            return agent_response
)
  • Результат:

================================ Human Message =================================

To query the value of a PV (Process Variable) named temperature:water
================================== Ai Message ==================================
Tool Calls:
 get_pv_value (call_vvbXwi51CyYUxEM0hcyvCFCY)
Call ID: call_vvbXwi51CyYUxEM0hcyvCFCY
 Args:
   pv_name: temperature:water
================================= Tool Message =================================
Name: get_pv_value

{
 "status": "success",
 "value": 88.0
}
================================== Ai Message ==================================

The current value of the PV named `temperature:water` is 88.0.
A
license - permissive license
-
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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/Jacky1-Jiang/EPICS-MCP-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server