Skip to main content
Glama

EPICS MCP Server

by Jacky1-Jiang

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

local-only server

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

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

  1. 개요
    1. 특징
      1. Langchain과 함께 사용
        1. 테스트 결과

          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

          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