mcpField
E
EPICS-MCP-Server

EPICS-MCP-Server

ローカル
github.com/Jacky1-Jiang科学・教育475 週間前に更新

EPICS-MCP-Server について

EPICS-MCP-Serverは、EPICSプロセス変数を扱うPython製MCPサーバーです。ハードウェアやソフトウェアの監視・制御に用いる環境向けに、値の読み書きと詳細情報の取得を提供します。

主な機能

  1. 01プロセス変数の値の取得
  2. 02プロセス変数の値の設定
  3. 03PV詳細情報の取得
  4. 04標準入出力による通信

活用シーン

  1. 01監視対象デバイスのパラメーター確認
  2. 02ハードウェアやソフトウェアのパラメーター調整

MCP 対応

EPICSプロセス変数の読み書きと詳細情報取得のツールをMCPクライアントに公開し、stdioで通信します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

EPICS-MCP-Server

smithery badge

概要

  • EPICS MCP サーバーは、EPICS(Experimental Physics and Industrial Control System)のプロセス変数(PV)と連携するために設計された、Python ベースのサーバーです。PV 値の取得、PV 値の設定、PV の詳細情報の取得を行うツールを提供します。このサーバーは mcp フレームワークを使用して構築され、stdio 経由で通信するため、より大規模な制御システムやワークフローへの統合に適しています。

  • このツールは、ハードウェアやソフトウェアのパラメーターの監視や制御に EPICS PV を使用する環境で特に役立ちます。

機能

  • EPICS MCP サーバーは、次のツールを提供します。
  1. get_pv_value

    • リポジトリ内の単一のファイルを作成または更新します
    • 入力:
      • pv_name(string):PV 変数の名前です。
    • 戻り値:ステータス(success または error)と取得した値、またはエラーメッセージを含む JSON オブジェクトです。
  2. set_pv_value

    • 指定した PV に新しい値を設定します。
    • 入力:
      • pv_name(string):PV 変数の名前です。
      • pv_value(string):PV に設定する新しい値です。
    • 戻り値:ステータス(success または error)と確認メッセージ、またはエラーメッセージを含む JSON オブジェクトです。
  3. get_pv_info

    • 指定した PV の詳細情報を取得します。
    • 入力:
      • pv_name(string):PV 変数の名前です。
    • 戻り値:ステータス(success または error)と PV の詳細情報、またはエラーメッセージを含む JSON オブジェクトです。

Langchain での使用

  • これを Langchain で使用するには、プロジェクトに必要な依存関係をインストールする必要があります。
pip install -r requirements.txt
  • Langchain
server_params = StdioServerParameters(
    command="python",
    # Make sure to update to the full absolute path to your math_server.py file
    args=["/path/server.py"],
)
  • EPICS
  • 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
)
  • 結果:
================================ 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.

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。