Skip to main content
Glama
Jacky1-Jiang

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.
A
license - permissive license
-
quality - not tested
C
maintenance

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