EPICS MCP Server

EPICS MCP Server

🚀 EPICS - MCP 服务器

EPICS 控制系统 MCP 服务器是基于 Python 开发的服务器,主要用于和 EPICS(实验物理和工业控制系统)过程变量(PVs)进行交互。它提供了获取 PV 值、设置 PV 值以及检索 PV 详细信息等工具,适合集成到大型控制系统或工作流中,在监控和控制软硬件参数的场景中十分实用。

🚀 快速开始

要使用该服务器,需要完成相关依赖的安装以及环境的配置。

安装依赖

与 Langchain 结合使用时,需安装项目所需的依赖项:

pip install -r requirements.txt

配置 Langchain

server_params = StdioServerParameters(
command="python",
# 确保将 math_server.py 文件的完整绝对路径更新到此处
args=["/path/server.py"],
)

配置 EPICS

在使用 EPICS MCP 服务器前,要在本地计算机成功安装 EPICS,保证 IOC 能正常启动,并且验证 cagetcaputcainfo 等功能可正常工作。详细安装说明请参考 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+08:00
############################################################################

... 启动日志 ...

jiangyan@DESKTOP-84CO9VB:~$ caget temperature.readback.value
88.0

✨ 主要特性

EPICS MCP 服务器提供了以下工具:

  1. get_pv_value
    • 功能:创建或更新单个文件。
    • 输入
      • pv_name (字符串):PV 变量的名称。
    • 返回:包含状态 (successerror) 和检索到的值或错误消息的 JSON 对象。
  2. set_pv_value
    • 功能:为指定的 PV 设置新值。
    • 输入
      • pv_name (字符串):PV 变量的名称。
      • pv_value (字符串):要设置的新 PV 值。
    • 返回:包含状态 (successerror) 和确认消息或错误消息的 JSON 对象。
  3. get_pv_info
    • 功能:检索指定 PV 的详细信息。
    • 输入
      • pv_name (字符串):PV 变量的名称。
    • 返回:包含状态 (successerror) 和 PV 的详细信息或错误消息的 JSON 对象。

💻 使用示例

基础用法

以下是测试结果示例:

{
"pv_name": "temperature.readback.value",
"pv_value": 88.0,
"timestamp": "2025-02-13T14:29:00"
}

高级用法

以下是完整的测试日志,展示了使用服务器的一系列操作步骤:

# 测试日志

## 步骤 1:启动 IOC
jiangyan@DESKTOP-84CO9VB:~$ softIoc -d ~/EPICS/DB/test.db
Starting iocInit
############################################################################
## EPICS R7.0.8
## Rev. 2025-02-13T14:29+08:00
############################################################################

... 启动日志 ...

## 步骤 2:连接到 PV
jiangyan@DESKTOP-84CO9VB:~$ caget temperature.readback.value
88.0

## 步骤 3:设置 PV 值
jiangyan@DESKTOP-84CO9VB:~$ caput temperature.setpoint.value 100
Write access allowed by default.
No security callback
old value = 88.0
new value = 100.0

## 步骤 4:获取 PV 信息
jiangyan@DESKTOP-84CO9VB:~$ cainfo temperature.readback.value
{
"pv_name": "temperature.readback.value",
"description": "Temperature Readback Value",
"type": "double",
"value": 100.0,
"alarm Severety": "NO_ALARM",
"timeStamp": "2025-02-13T14:29:00"
}
  • 0 关注
  • 0 收藏,23 浏览
  • system 提出于 2025-10-06 10:48

相似服务问题

相关AI产品