Skip to main content
Glama

EPICS MCP Server

by Jacky1-Jiang

EPICS-MCP服务器

概述

  • EPICS MCP 服务器是一款基于 Python 的服务器,旨在与 EPICS(实验物理和工业控制系统)过程变量 (PV) 交互。它提供了一组工具来检索 PV 值、设置 PV 值以及获取有关 PV 的详细信息。该服务器使用 mcp 框架构建,并通过 stdio 进行通信,因此非常适合集成到更大型的控制系统或工作流程中。

  • 该工具在使用 EPICS PV 监控和控制硬件或软件参数的环境中特别有用。

特征

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

  1. 获取 pv_value

    • 在存储库中创建或更新单个文件

    • 输入:

      • pv_name (字符串):PV 变量的名称。

    • 返回:包含状态( successerror )和检索到的值或错误消息的 JSON 对象。

  2. 设置 pv_value

    • 为指定的 PV 设置新值。

    • 输入:

      • pv_name (字符串):PV 变量的名称。

      • pv_value (字符串):要为 PV 设置的新值。

    • 返回:包含状态( successerror )和确认消息或错误消息的 JSON 对象。

  3. 获取 pv_info

    • 获取有关指定 PV 的详细信息。

    • 输入:

      • pv_name (字符串):PV 变量的名称。

    • 返回:一个 JSON 对象,包含状态( successerror )以及有关 PV 或错误消息的详细信息。

与 Langchain 一起使用

  • 要将其与 Langchain 一起使用,您必须安装项目所需的依赖项。

pip install -r requirements.txt
  • 朗查因

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 能够正常启动,并验证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+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

测试结果

  • 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 )
  • 结果:

================================ 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

Related MCP Servers

  • -
    security
    A
    license
    -
    quality
    A Python-based server enabling interaction with Proxmox hypervisors. It supports secure authentication and provides tools for managing nodes, VMs, clusters, and storage.
    Last updated -
    173
    MIT License
  • -
    security
    A
    license
    -
    quality
    A server that enables programmatic interaction with an already running Abaqus/CAE GUI application, allowing users to execute Python scripts and retrieve message logs through the Model Context Protocol (MCP).
    Last updated -
    41
    MIT License
  • -
    security
    A
    license
    -
    quality
    An enhanced Python-based MCP server that enables complete VM lifecycle management and monitoring of Proxmox virtualization platforms through natural language, with 11 REST API endpoints for seamless integration.
    Last updated -
    25
    MIT License
    • Apple
    • Linux
  • -
    security
    -
    license
    -
    quality
    A Python-based MCP server that uses uv for dependency management, requiring Python 3.13+ to run.

View all related MCP servers

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