mcp-snap7
March 28, 2026 ยท View on GitHub
MCP server for python-snap7, enabling MCP clients to interact with Siemens PLCs
Install
pip install mcp-snap7
Requirements
- python-snap7 requires the libsnap7 library to be installed on your system. See python-snap7 documentation for installation instructions.
Usage
As MCP Server
Configure your MCP client to use mcp-snap7 as a stdio server:
{
"mcpServers": {
"mcp-snap7": {
"command": "mcp-snap7"
}
}
}
Available Tools
connect_plc- Connect to a Siemens PLCdisconnect_plc- Disconnect from PLCget_connected- Check connection statusdb_read/db_write- Read/write data blocksmb_read/mb_write- Read/write memory bytestm_read/tm_write- Read/write timersct_read/ct_write- Read/write counterseb_read/eb_write- Read/write edge inputsab_read/ab_write- Read/write absolute bytesget_cpu_info- Get CPU informationget_cpu_state- Get CPU stateget_protection- Get PLC protection levelplc_cold_start- Trigger cold startplc_hot_start- Trigger hot startplc_stop- Stop PLCget_error_text- Get error description
Development
git clone https://github.com/daedalus/mcp-snap7.git
cd mcp-snap7
pip install -e ".[test]"
# run tests
pytest
# format
ruff format src/ tests/
# lint
ruff check src/ tests/
# type check
mypy src/