Skip to main content
Glama
Jacky1-Jiang

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

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