ThinkPLC-MCP
Interfaz con SIEMENS PLC S7-1500/1200 usando su API JSON-RPC 2.0, exponiendo funcionalidades del PLC como herramientas MCP para interacción programática.
Documentación
ThinkPLC-MCP
ThinkPLC-MCP es un servidor diseñado para interactuar con SIEMENS PLC S7-1500/1200 mediante su API JSON-RPC 2.0. Expone las funcionalidades de la API como herramientas MCP, permitiendo que asistentes de IA y otros clientes compatibles con MCP interactúen con el PLC de forma programática.
🔧 Características
- Se conecta a un endpoint de la API SIEMENS PLC (Webserver)
- Proporciona herramientas MCP para:
- ✅ Autenticación de usuario (
login,logout,ChangePassword-user) - ✅ Verificar la conectividad del PLC (
ping) - ✅ Obtener permisos de usuario mediante
Api-GetPermissionsdespués del inicio de sesión - ✅ Obtener la versión de la API con
Api-Version - ✅ Listar los métodos disponibles de la API usando
Api-Browse - ✅ Obtener información de estructura con
Api-GetQuantityStructures - ✅ Obtener políticas de seguridad de contraseñas con
Api-GetPasswordPolicy - ✅ Explorar etiquetas y metadatos usando
PlcProgram-Browse - ✅ Leer variables individuales mediante
PlcProgram-Read - ✅ Escribir etiquetas Boolean, Number o String con
PlcProgram-Write-* - ✅ Leer el modo de operación actual de la CPU con
Plc-ReadOperatingMode - ✅ Solicitar un cambio de modo de operación usando
Plc-RequestChangeOperatingMode - ✅ Leer la hora del sistema de la CPU (
Plc-ReadSystemTime) - ✅ Establecer la hora del sistema de la CPU (
Plc-SetSystemTime) - ✅ Leer los idiomas disponibles del proyecto (
Project-ReadLanguages) - ✅ Explorar alarmas activas (
Alarms-Browse) - ✅ Confirmar alarmas (
Alarms-Acknowledge) - ✅ Explorar entradas del buffer de diagnóstico (
DiagnosticBuffer-Browse)
- ✅ Autenticación de usuario (
- 🔄 Opcional: inicio de sesión automático de cuenta de servicio con renovación de token
⚙️ Requisitos previos
- Node.js (se recomienda v18.x o posterior)
- npm (incluido con Node.js)
- Acceso a una API SIEMENS PLC (Webserver) en ejecución
⚙️ Configuración
Este servidor utiliza un archivo config.js escrito en sintaxis de Módulo ES.
Ejemplo config.js:
export const config = {
URL: "https://<PLC-IP-Address>/api/jsonrpc", // required
userName: "your-username", // optional
pwr: "your-password", // optional
};
🚀 Primeros pasos
- Navegue a la carpeta del proyecto:
cd your-project-directory
- Instale las dependencias:
npm install
-
Edite config.js como se muestra arriba.
-
Inicie el servidor
node start
🖥️ Conexión con Claude Desktop
Para usar este servidor MCP con Claude AI (versión de escritorio):
-
Busque o cree el archivo claude_desktop_config.json (normalmente en la carpeta de configuración de la aplicación Claude).
-
Agregue o actualice lo siguiente:
{
"mcpServers": {
"ThinkPLC-MCP": {
"command": "npx",
"args": ["mcp-remote", "http://localhost:5000/mcp"]
}
}
}
- Asegúrese de que @modelcontextprotocol/tools esté instalado:
npm install -g @modelcontextprotocol/tools