EPICS MCP Server
EPICS-MCP-サーバー
概要
EPICS MCPサーバーは、EPICS(実験物理学および産業用制御システム)のプロセス変数(PV)と連携するために設計されたPythonベースのサーバーです。PV値の取得、PV値の設定、PVに関する詳細情報の取得を行うためのツールセットを提供します。このサーバーはmcpフレームワークを使用して構築されており、stdio経由で通信するため、大規模な制御システムやワークフローへの統合に適しています。
このツールは、ハードウェアまたはソフトウェア パラメータの監視と制御に EPICS PV が使用される環境で特に役立ちます。
特徴
EPICS MCP サーバーは次のツールを提供します。
get_pv_value
リポジトリ内の単一のファイルを作成または更新する
入力:
pv_name(文字列): PV 変数の名前。
戻り値: ステータス (
successまたはerror) と取得された値またはエラー メッセージを含む JSON オブジェクト。
PV値の設定
指定された PV に新しい値を設定します。
入力:
pv_name(文字列): PV 変数の名前。pv_value(文字列): PV に設定する新しい値。
戻り値: ステータス (
successまたはerror) と確認メッセージまたはエラー メッセージを含む JSON オブジェクト。
取得PV情報
指定された PV に関する詳細情報を取得します。
入力:
pv_name(文字列): PV 変数の名前。
戻り値: ステータス (
successまたはerror) と PV に関する詳細情報またはエラー メッセージを含む JSON オブジェクト。
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 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