Skip to main content
Glama
Jacky1-Jiang

EPICS MCP Server

by Jacky1-Jiang

Servidor EPICS-MCP

Descripción general

  • El servidor EPICS MCP es un servidor basado en Python, diseñado para interactuar con las variables de proceso (VP) de EPICS (Sistema de Control Industrial y Física Experimental). Proporciona un conjunto de herramientas para recuperar valores de VP, establecerlos y obtener información detallada sobre las VP. El servidor está desarrollado con el framework mcp y se comunica a través de stdio, lo que lo hace ideal para su integración en sistemas de control o flujos de trabajo más amplios.

  • Esta herramienta es particularmente útil en entornos donde se utilizan EPICS PV para monitorear y controlar parámetros de hardware o software.

Características

  • El servidor EPICS MCP proporciona las siguientes herramientas:

  1. obtener_valor_pv

    • Crear o actualizar un solo archivo en un repositorio

    • Entradas:

      • pv_name (cadena): el nombre de la variable PV.

    • Devuelve: un objeto JSON que contiene el estado ( success o error ) y el valor recuperado o un mensaje de error.

  2. establecer_valor_pv

    • Establecer un nuevo valor para un PV específico.

    • Entradas:

      • pv_name (cadena): el nombre de la variable PV.

      • pv_value (cadena): el nuevo valor que se establecerá para el PV.

    • Devuelve: un objeto JSON que contiene el estado ( success o error ) y un mensaje de confirmación o un mensaje de error.

  3. obtener_información_pv

    • Obtiene información detallada sobre un PV específico.

    • Entradas:

      • pv_name (cadena): el nombre de la variable PV.

    • Devuelve: un objeto JSON que contiene el estado ( success o error ) y la información detallada sobre el PV o un mensaje de error.

Uso con Langchain

  • Para usar esto con Langchain, debe instalar las dependencias necesarias para el proyecto.

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"], )
  • ÉPICOS

  • Antes de usar el servidor EPCIS mcp, debe instalar EPCIS correctamente en su equipo local, asegurarse de que IOC se inicie correctamente y verificar que funciones como caget , caput y cainfo funcionen correctamente. Para obtener instrucciones detalladas de instalación, consulte 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

Resultado de la prueba

  • Cliente Mcp:

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 )
  • Resultado:

================================ 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.
-
security - not tested
A
license - permissive license
-
quality - not tested

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