modbus-mcp

MIT License
  • Linux
  • Apple

Integrations

  • Uses environment variables specified in a .env file for configuration of Modbus connection parameters.

Modbus MCP 서버

Modbus 데이터를 표준화하고 상황에 맞게 조정하여 AI 에이전트와 산업용 IoT 시스템의 원활한 통합을 지원하는 MCP 서버입니다.

특징

  • Modbus 도구 :
    • 읽기/쓰기 홀딩 레지스터( read_register , write_register ).
    • 코일 읽기/쓰기( read_coils , write_coil ).
    • 입력 레지스터를 읽습니다( read_input_registers ).
    • 여러 개의 홀딩 레지스터를 읽습니다( read_multiple_holding_registers ).
  • 프롬프트 : 사용자 정의 가능한 프롬프트( analyze_register )를 사용하여 Modbus 레지스터 값을 분석합니다.
  • 유연한 연결 : 환경 변수를 통해 구성된 TCP, UDP 또는 직렬을 통한 Modbus를 지원합니다.

요구 사항

  • 파이썬 : 3.10
  • 종속성 및 가상 환경 관리를 위한 uv .

설치

  1. uv 설치 :지엑스피1
  2. 저장소 복제 :
    git clone https://github.com/kukapay/modbus-mcp.git cd modbus-mcp
  3. 종속성 설치 :
    uv sync

구성

서버는 환경 변수를 통해 지정된 매개변수를 사용하여 Modbus 장치에 연결합니다. 이러한 변수는 .env 파일이나 셸 환경에서 설정하세요.

환경 변수

변하기 쉬운설명기본필수의
MODBUS_TYPE연결 유형: tcp , udp 또는 serialtcp
MODBUS_HOSTTCP/UDP의 호스트 주소127.0.0.1TCP/UDP의 경우
MODBUS_PORTTCP/UDP용 포트502TCP/UDP의 경우
MODBUS_SERIAL_PORT직렬 포트(예: /dev/ttyUSB0 , COM1 )/dev/ttyUSB0직렬용
MODBUS_BAUDRATE직렬 통신 속도9600직렬용
MODBUS_PARITY직렬 패리티: N (없음), E (짝수), O (홀수)N직렬용
MODBUS_STOPBITS직렬 정지 비트1직렬용
MODBUS_BYTESIZE직렬 바이트 크기8직렬용
MODBUS_TIMEOUT직렬 시간 초과(초)1직렬용

예제 .env 파일

TCP의 경우:

MODBUS_TYPE=tcp MODBUS_HOST=192.168.1.100 MODBUS_PORT=502

직렬의 경우:

MODBUS_TYPE=serial MODBUS_SERIAL_PORT=/dev/ttyUSB0 MODBUS_BAUDRATE=9600 MODBUS_PARITY=N MODBUS_STOPBITS=1 MODBUS_BYTESIZE=8 MODBUS_TIMEOUT=1

용법

Claude Desktop 설치

구성 파일:

{ "mcpServers": { "Modbus MCP Server": { "command": "uv", "args": [ "--directory", "/path/to/modbus-mcp", "run", "modbus-mcp" ], "env": { "MODBUS_TYPE": "tcp", "MODBUS_HOST": "127.0.0.1", "MODBUS_PORT": 502 }, } } }

도구 사용

참고 : 자연어 지원은 클라이언트가 프롬프트를 구문 분석하고 도구에 매핑하는 능력에 따라 달라집니다. MCP Inspector는 구조화된 JSON을 요구하지만, 아래 예시에서는 대화형 입력이 어떻게 변환되는지 보여줍니다.

  1. 보류 등록부 읽기 :
    • 즉각적인 :
      Please read the value of Modbus holding register 0.
    • MCP 검사기 JSON :
      { "tool": "read_register", "parameters": {"address": 0} }
    • 예상 출력 : Value: <register_value>
  2. 보류 등록부에 쓰기 :
    • 즉각적인 :
      Set Modbus holding register 10 to the value 100.
    • MCP 검사기 JSON :
      { "tool": "write_register", "parameters": {"address": 10, "value": 100} }
    • 예상 출력 : Successfully wrote 100 to register 10
  3. 코일 읽기 :
    • 즉각적인 :
      Check the status of the first 5 Modbus coils starting at address 0.
    • MCP 검사기 JSON :
      { "tool": "read_coils", "parameters": {"address": 0, "count": 5} }
    • 예상 출력 : Coils 0 to 4: [False, False, False, False, False]
  4. 코일에 쓰기 :
    • 즉각적인 :
      Turn on Modbus coil 5.
    • MCP 검사기 JSON :
      { "tool": "write_coil", "parameters": {"address": 5, "value": true} }
    • 예상 출력 : Successfully wrote True to coil 5
  5. 입력 레지스터 읽기 :
    • 즉각적인 :
      Read the values of 3 Modbus input registers starting from address 2.
    • MCP 검사기 JSON :
      { "tool": "read_input_registers", "parameters": {"address": 2, "count": 3} }
    • 예상 출력 : Input Registers 2 to 4: [<value1>, <value2>, <value3>]
  6. 여러 개의 보류 레지스터 읽기 :
    • 즉각적인 :
      Get the values of Modbus holding registers 0 through 2.
    • MCP 검사기 JSON :
      { "tool": "read_multiple_holding_registers", "parameters": {"address": 0, "count": 3} }
    • 예상 출력 : Holding Registers 0 to 2: [<value1>, <value2>, <value3>]

특허

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 라이선스를 참조하세요.

-
security - not tested
A
license - permissive license
-
quality - not tested

모드버스-MCP

  1. Features
    1. Requirements
      1. Installation
        1. Configuration
          1. Environment Variables
          2. Example .env File
        2. Usage
          1. Installing for Claude Desktop
          2. Using Tools
        3. License

          Related MCP Servers

          View all related MCP servers

          ID: sgp6ly1fkx