EPICS MCP Server

by Jacky1-Jiang
MIT License
2

Integrations

  • Enables integration with LangChain, allowing the EPICS MCP Server to be used as part of LangChain workflows for controlling and monitoring EPICS Process Variables.

  • Built as a Python-based server, allowing users to leverage Python's ecosystem for EPICS control system integration and automation.

EPICS-MCP-서버

개요

  • EPICS MCP 서버는 EPICS(실험 물리학 및 산업 제어 시스템) 프로세스 변수(PV)와 상호 작용하도록 설계된 Python 기반 서버입니다. PV 값을 검색하고, 설정하고, PV에 대한 자세한 정보를 가져오는 도구 세트를 제공합니다. 이 서버는 mcp 프레임워크를 사용하여 구축되었으며 stdio를 통해 통신하므로 대규모 제어 시스템이나 워크플로에 통합하는 데 적합합니다.
  • 이 도구는 EPICS PV를 사용하여 하드웨어나 소프트웨어 매개변수를 모니터링하고 제어하는 환경에서 특히 유용합니다.

특징

  • EPICS MCP 서버는 다음과 같은 도구를 제공합니다.
  1. get_pv_value
    • 저장소에서 단일 파일을 생성하거나 업데이트합니다.
    • 입력:
      • pv_name (문자열): PV 변수의 이름입니다.
    • 반환: 상태( success 또는 error )와 검색된 값 또는 오류 메시지를 포함하는 JSON 객체입니다.
  2. 설정_pv_
    • 지정된 PV에 대한 새 값을 설정합니다.
    • 입력:
      • pv_name (문자열): PV 변수의 이름입니다.
      • pv_value (문자열): PV에 설정할 새 값입니다.
    • 반환: 상태( success 또는 error )와 확인 메시지 또는 오류 메시지가 포함된 JSON 객체입니다.
  3. get_pv_info
    • 지정된 PV에 대한 자세한 정보를 가져옵니다.
    • 입력:
      • pv_name (문자열): PV 변수의 이름입니다.
    • 반환: PV에 대한 상태( success 또는 error )와 자세한 정보 또는 오류 메시지가 포함된 JSON 객체입니다.

Langchain과 함께 사용

  • Langchain과 함께 사용하려면 프로젝트에 필요한 종속성을 설치해야 합니다.

지엑스피1

  • 랭체인

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 )
  • 결과:
================================ 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

EPICS 프로세스 변수와 상호 작용하는 Python 기반 서버로, 사용자가 PV 값을 검색하고, PV 값을 설정하고, 표준화된 인터페이스를 통해 PV에 대한 자세한 정보를 가져올 수 있도록 해줍니다.

  1. 개요
    1. 특징
      1. Langchain과 함께 사용
        1. 랭체인
        2. 에픽스
      2. 테스트 결과

        Related MCP Servers

        • -
          security
          A
          license
          -
          quality
          A Python-based MCP server that integrates OpenAPI-described REST APIs into MCP workflows, enabling dynamic exposure of API endpoints as MCP tools.
          Last updated -
          2
          39
          Python
          MIT License
          • Linux
          • Apple
        • -
          security
          F
          license
          -
          quality
          This is an MCP server that facilitates building tools for interacting with various APIs and workflows, supporting Python-based development with potential for customizable prompts and user configurations.
          Last updated -
          Python
        • -
          security
          A
          license
          -
          quality
          A Python server implementation that enables integration with the PeakMojo API, providing access to various resources like users, personas, scenarios, and tools for managing PeakMojo functionality.
          Last updated -
          Python
          MIT License
          • Linux
        • A
          security
          A
          license
          A
          quality
          A server that provides a persistent Python REPL environment through the MCP protocol, allowing execution of Python code, variable management, and package installation.
          Last updated -
          3
          3
          Python
          MIT License

        View all related MCP servers

        ID: p0tkd4xtmu