Skip to main content
Glama

EPICS MCP Server

by Jacky1-Jiang

EPICS-MCP-Server

Schmiedeabzeichen

Überblick

  • Der EPICS MCP Server ist ein Python-basierter Server, der für die Interaktion mit EPICS-Prozessvariablen (Experimental Physics and Industrial Control System) entwickelt wurde. Er bietet eine Reihe von Tools zum Abrufen und Festlegen von PV-Werten sowie zum Abrufen detaillierter Informationen zu PVs. Der Server basiert auf dem MCP-Framework und kommuniziert über stdio. Dadurch eignet er sich für die Integration in größere Steuerungssysteme oder Workflows.

  • Dieses Tool ist besonders in Umgebungen nützlich, in denen EPICS PVs zur Überwachung und Steuerung von Hardware- oder Softwareparametern verwendet werden.

Merkmale

  • Der EPICS MCP-Server bietet die folgenden Tools:

  1. get_pv_value

    • Erstellen oder Aktualisieren einer einzelnen Datei in einem Repository

    • Eingänge:

      • pv_name (Zeichenfolge): Der Name der PV-Variable.

    • Gibt zurück: Ein JSON-Objekt, das den Status ( success oder error ) und den abgerufenen Wert oder eine Fehlermeldung enthält.

  2. setze_pv_value

    • Legen Sie einen neuen Wert für einen angegebenen PV fest.

    • Eingänge:

      • pv_name (Zeichenfolge): Der Name der PV-Variable.

      • pv_value (Zeichenfolge): Der neue Wert, der für den PV festgelegt werden soll.

    • Gibt zurück: Ein JSON-Objekt, das den Status ( success oder error ) und eine Bestätigungsnachricht oder eine Fehlermeldung enthält.

  3. get_pv_info

    • Ruft detaillierte Informationen zu einem angegebenen PV ab.

    • Eingänge:

      • pv_name (Zeichenfolge): Der Name der PV-Variable.

    • Gibt zurück: Ein JSON-Objekt, das den Status ( success oder error ) und die detaillierten Informationen zum PV oder eine Fehlermeldung enthält.

Verwendung mit Langchain

  • Um dies mit Langchain zu verwenden, müssen Sie die für das Projekt erforderlichen Abhängigkeiten installieren.

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

  • Bevor Sie den EPCIS-MCP-Server verwenden, müssen Sie EPCIS erfolgreich auf Ihrem lokalen Rechner installieren, sicherstellen, dass IOC normal startet und Funktionen wie caget , caput und cainfo ordnungsgemäß funktionieren. Detaillierte Installationsanweisungen finden Sie unter 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

Testergebnis

  • Mcp-Client:

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 )
  • Ergebnis:

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

local-only server

The server can only run on the client's local machine because it depends on local resources.

Ein Python-basierter Server, der mit EPICS-Prozessvariablen interagiert und es Benutzern ermöglicht, PV-Werte abzurufen, PV-Werte festzulegen und über eine standardisierte Schnittstelle detaillierte Informationen zu PVs abzurufen.

  1. Überblick
    1. Merkmale
      1. Verwendung mit Langchain
        1. Langchain
        2. EPICS
      2. Testergebnis

        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 -
          155
          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 -
          35
          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 -
          14
          MIT License
          • Apple
          • Linux
        • -
          security
          F
          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