Modbus MCP-Server
Ein MCP-Server, der Modbus-Daten standardisiert und kontextualisiert und so eine nahtlose Integration von KI-Agenten in industrielle IoT-Systeme ermöglicht.
Merkmale
Modbus-Tools :
Halteregister lesen/schreiben (
read_register,write_register).Spulen lesen/schreiben (
read_coils,write_coil).Eingaberegister lesen (
read_input_registers).Lesen Sie mehrere Halteregister (
read_multiple_holding_registers).
Eingabeaufforderung : Analysieren Sie Modbus-Registerwerte mit einer anpassbaren Eingabeaufforderung (
analyze_register).Flexible Verbindungen : Unterstützt Modbus über TCP, UDP oder seriell, konfiguriert über Umgebungsvariablen.
Anforderungen
Python : 3.10
UV für Abhängigkeits- und virtuelles Umgebungsmanagement.
Installation
uv:curl -LsSf https://astral.sh/uv/install.sh | shKlonen Sie das Repository :
git clone https://github.com/kukapay/modbus-mcp.git cd modbus-mcpAbhängigkeiten installieren :
uv sync
Konfiguration
Der Server stellt über Umgebungsvariablen eine Verbindung zu einem Modbus-Gerät her. Legen Sie diese Variablen in einer .env Datei oder in Ihrer Shell-Umgebung fest.
Umgebungsvariablen
Variable  | Beschreibung  | Standard  | Erforderlich  | 
  | Verbindungstyp: 
 , 
 oder 
  | 
  | Ja  | 
  | Hostadresse für TCP/UDP  | 
  | Für TCP/UDP  | 
  | Port für TCP/UDP  | 
  | Für TCP/UDP  | 
  | Slave-ID  | 
  | Für TCP/UDP  | 
  | Serieller Anschluss (z. B. 
 , 
 )  | 
  | Für serielle  | 
  | Serielle Baudrate  | 
  | Für serielle  | 
  | Serielle Parität: 
 (keine), 
 (gerade), 
 (ungerade)  | 
  | Für serielle  | 
  | Serielle Stoppbits  | 
  | Für serielle  | 
  | Serielle Bytegröße  | 
  | Für serielle  | 
  | Serielles Timeout (Sekunden)  | 
  | Für serielle  | 
Beispiel .env -Datei
Für TCP:
Für Serien:
Verwendung
Installation für Claude Desktop
Die Konfigurationsdatei:
Werkzeuge verwenden
Hinweis : Die Unterstützung natürlicher Sprache hängt von der Fähigkeit des Clients ab, Eingabeaufforderungen zu analysieren und Tools zuzuordnen. Der MCP Inspector erfordert strukturiertes JSON. Die folgenden Beispiele zeigen jedoch, wie Konversationseingaben übersetzt werden.
Lesen eines Holdingregisters :
Eingabeaufforderung :
Please read the value of Modbus holding register 0.MCP-Inspektor JSON :
{ "tool": "read_register", "parameters": {"address": 0, "slave_id": 1} }Erwartete Ausgabe :
Value: <register_value>
Schreiben in ein Holdingregister :
Eingabeaufforderung :
Set Modbus holding register 10 to the value 100.MCP-Inspektor JSON :
{ "tool": "write_register", "parameters": {"address": 10, "value": 100, "slave_id": 1} }Erwartete Ausgabe :
Successfully wrote 100 to register 10
Spulen lesen :
Eingabeaufforderung :
Check the status of the first 5 Modbus coils starting at address 0.MCP-Inspektor JSON :
{ "tool": "read_coils", "parameters": {"address": 0, "count": 5, "slave_id": 1} }Erwartete Ausgabe :
Coils 0 to 4: [False, False, False, False, False]
In eine Spule schreiben :
Eingabeaufforderung :
Turn on Modbus coil 5.MCP-Inspektor JSON :
{ "tool": "write_coil", "parameters": {"address": 5, "value": true, "slave_id": 1} }Erwartete Ausgabe :
Successfully wrote True to coil 5
Eingaberegister lesen :
Eingabeaufforderung :
Read the values of 3 Modbus input registers starting from address 2.MCP-Inspektor JSON :
{ "tool": "read_input_registers", "parameters": {"address": 2, "count": 3, "slave_id": 1} }Erwartete Ausgabe :
Input Registers 2 to 4: [<value1>, <value2>, <value3>]
Mehrere Holding-Register lesen :
Eingabeaufforderung :
Get the values of Modbus holding registers 0 through 2.MCP-Inspektor JSON :
{ "tool": "read_multiple_holding_registers", "parameters": {"address": 0, "count": 3, "slave_id": 1} }Erwartete Ausgabe :
Holding Registers 0 to 2: [<value1>, <value2>, <value3>]
Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert. Weitere Informationen finden Sie unter LIZENZ .
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Modbus-MCP
Related MCP Servers
- MIT License