Back to MCP directory
publicPublicdnsLocal runtime

EPICS-MCP-Server

EPICS MCP服务器是一个基于Python的工具,用于与EPICS过程变量交互,提供获取、设置PV值及查询PV信息的功能,适合集成到控制系统或工作流中。

article

README

🚀 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"
}
help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client