EPICS MCP Server
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:
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 (
successoerror) y el valor recuperado o un mensaje de error.
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 (
successoerror) y un mensaje de confirmación o un mensaje de error.
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 (
successoerror) 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.txtLangchain
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,caputycainfofuncionen 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:
================================[1m Human Message [0m=================================
To query the value of a PV (Process Variable) named temperature:water
==================================[1m Ai Message [0m==================================
Tool Calls:
get_pv_value (call_vvbXwi51CyYUxEM0hcyvCFCY)
Call ID: call_vvbXwi51CyYUxEM0hcyvCFCY
Args:
pv_name: temperature:water
=================================[1m Tool Message [0m=================================
Name: get_pv_value
{
"status": "success",
"value": 88.0
}
==================================[1m Ai Message [0m==================================
The current value of the PV named `temperature:water` is 88.0.This server cannot be deployed
Maintenance
Related MCP Connectors
QuLab MCP remote server (Streamable HTTP) for computational science and lab tools.
A server to provide information about EOxElements custom elements for coding agents.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Token-free MCP server for structured RevoGrid Core, Pro, and Enterprise knowledge retrieval.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceA Python-based server allowing seamless integration with JIRA for managing and interacting with projects through custom APIs.4Apache 2.0
- AlicenseNot gradedqualityDmaintenanceA Python-based server enabling interaction with Proxmox hypervisors. It supports secure authentication and provides tools for managing nodes, VMs, clusters, and storage.293MIT
- FlicenseNot gradedqualityDmaintenanceA Python-based server that enables accessing and analyzing bird detection data through the Model Context Protocol, offering features like filtering detections, accessing audio recordings, and generating reports.3-
- AlicenseNot gradedqualityDmaintenanceEnables interaction with EPICS (Experimental Physics and Industrial Control System) process variables through natural language. Supports reading PV values, setting PV values, and retrieving detailed PV information for monitoring and controlling hardware or software parameters.1MIT