EPICS MCP Server
EPICS-MCP服务器
概述
EPICS MCP 服务器是一款基于 Python 的服务器,旨在与 EPICS(实验物理和工业控制系统)过程变量 (PV) 交互。它提供了一组工具来检索 PV 值、设置 PV 值以及获取有关 PV 的详细信息。该服务器使用 mcp 框架构建,并通过 stdio 进行通信,因此非常适合集成到更大型的控制系统或工作流程中。
该工具在使用 EPICS PV 监控和控制硬件或软件参数的环境中特别有用。
特征
EPICS MCP 服务器提供以下工具:
获取 pv_value
在存储库中创建或更新单个文件
输入:
pv_name(字符串):PV 变量的名称。
返回:包含状态(
success或error)和检索到的值或错误消息的 JSON 对象。
设置 pv_value
为指定的 PV 设置新值。
输入:
pv_name(字符串):PV 变量的名称。pv_value(字符串):要为 PV 设置的新值。
返回:包含状态(
success或error)和确认消息或错误消息的 JSON 对象。
获取 pv_info
获取有关指定 PV 的详细信息。
输入:
pv_name(字符串):PV 变量的名称。
返回:一个 JSON 对象,包含状态(
success或error)以及有关 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 能够正常启动,并验证
caget、caput和cainfo等功能是否正常运行。详细安装说明请参阅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
)结果:
================================[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 installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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