Codesys-mcp-toolkit
Un servidor del Protocolo de Contexto de Modelo (MCP) para entornos de programación CODESYS V3.
Documentación
@codesys/mcp-toolkit
Un servidor de Model Context Protocol (MCP) para entornos de programación CODESYS V3. Este kit de herramientas permite una interacción fluida entre clientes MCP (como Claude Desktop) y CODESYS, permitiendo la automatización de la gestión de proyectos, creación de POU, edición de código y tareas de compilación a través del Motor de Scripting de CODESYS.
🌟 Características
-
Gestión de Proyectos
- Abrir proyectos CODESYS existentes (
open_project) - Crear nuevos proyectos a partir de plantillas estándar (
create_project) - Guardar cambios del proyecto (
save_project)
- Abrir proyectos CODESYS existentes (
-
Gestión de POU
- Crear Programas, Bloques de Función y Funciones (
create_pou) - Establecer código de declaración e implementación (
set_pou_code) - Crear propiedades para Bloques de Función (
create_property) - Crear métodos para Bloques de Función (
create_method) - Compilar proyectos (
compile_project)
- Crear Programas, Bloques de Función y Funciones (
-
Recursos MCP
codesys://project/status: Verificar el estado de scripting y el estado del proyecto actualmente abierto.codesys://project/{+project_path}/structure: Obtener la estructura de objetos de un proyecto especificado.codesys://project/{+project_path}/pou/{+pou_path}/code: Leer el código de declaración e implementación de un POU, Método o accessor de Propiedad especificado.
📋 Requisitos previos
- CODESYS V3: Una instalación funcional de CODESYS V3 (probado con 3.5 SP21) con el componente Scripting Engine habilitado durante la instalación.
- Node.js: Se recomienda la versión 18.0.0 o posterior.
- Cliente MCP: Una aplicación compatible con MCP (por ejemplo, Claude Desktop).
(Nota: CODESYS utiliza Python 2.7 internamente para su motor de scripting, pero este kit de herramientas maneja la interacción; no necesita gestionar Python por separado).
🚀 Instalación
La forma recomendada de instalar es globalmente usando npm:
npm install -g @codesys/mcp-toolkit
Esto instala el paquete globalmente, haciendo que el comando codesys-mcp-tool esté disponible en el PATH del terminal de su sistema.
(Los usuarios avanzados también pueden instalar desde el código fuente para desarrollo - ver CONTRIBUTING.md si está disponible).
🔧 Configuración (¡IMPORTANTE!)
Este kit de herramientas necesita saber dónde está su instalación de CODESYS y qué perfil utilizar. La configuración se realiza típicamente dentro de su aplicación cliente MCP (como Claude Desktop).
Método de configuración recomendado (Comando directo)
Debido a posibles problemas con variables de entorno (especialmente con PATH) al lanzar herramientas de Node.js mediante envoltorios como npx dentro de ciertas aplicaciones host (por ejemplo, Claude Desktop), se recomienda encarecidamente configurar su cliente MCP para ejecutar el comando instalado codesys-mcp-tool directamente.
Ejemplo para Claude Desktop (settings.json -> mcpServers):
{
"mcpServers": {
// ... other servers ...
"codesys_local": {
"command": "codesys-mcp-tool", // <<< Use the direct command name
"args": [
// Pass arguments directly to the tool using flags
"--codesys-path", "C:\\Program Files\\Path\\To\\Your\\CODESYS\\Common\\CODESYS.exe",
"--codesys-profile", "Your CODESYS Profile Name"
// Optional: Add --workspace "/path/to/your/projects" if needed
]
}
// ... other servers ...
}
}
Pasos clave:
- Reemplace
"C:\\Program Files\\Path\\To\\Your\\CODESYS\\Common\\CODESYS.exe"con la ruta completa y correcta a su archivoCODESYS.exeespecífico. - Reemplace
"Your CODESYS Profile Name"con el nombre exacto del perfil de CODESYS que desea usar (visible en la interfaz de CODESYS). - Asegúrese de que el comando
codesys-mcp-toolsea accesible en el PATH del sistema donde se ejecuta la aplicación cliente MCP. La instalación global mediantenpm install -gusualmente maneja esto. - Reinicie su aplicación cliente MCP (por ejemplo, Claude Desktop) para aplicar los cambios de configuración.
Configuración alternativa (usando npx - No recomendada)
Lanzar con npx ha mostrado causar errores inmediatos ('C:\Program' is not recognized...) en algunos entornos, probablemente debido a cómo npx maneja el entorno de ejecución. Use el método de comando directo si es posible. Si debe usar npx:
// Example using npx (POTENTIALLY PROBLEMATIC - USE WITH CAUTION):
{
"mcpServers": {
"codesys_local": {
"command": "npx",
"args": [
"-y", // Tells npx to install temporarily if not found globally
"@codesys/mcp-toolkit",
// Arguments for the tool MUST come AFTER the package name
"--codesys-path", "C:\\Program Files\\Path\\To\\Your\\CODESYS\\Common\\CODESYS.exe",
"--codesys-profile", "Your CODESYS Profile Name"
]
}
}
}
(Nota: El separador -- después del nombre del paquete a veces puede ayudar a npx, pero no se garantiza que solucione el problema de entorno).
🛠️ Argumentos de línea de comandos
Al ejecutar codesys-mcp-tool directamente o configurarlo, puede usar estos argumentos:
-p, --codesys-path <path>: Ruta completa aCODESYS.exe. (Requerido, anula la variable de entornoCODESYS_PATH, tiene un valor predeterminado pero no se recomienda confiar en él).-f, --codesys-profile <profile>: Nombre del perfil de CODESYS. (Requerido, anula la variable de entornoCODESYS_PROFILE, tiene un valor predeterminado pero no se recomienda confiar en él).-w, --workspace <dir>: Directorio de trabajo para resolver rutas de proyecto relativas pasadas a las herramientas. Por defecto es el directorio donde se lanzó el comando (lo que puede ser impredecible cuando lo ejecuta otra aplicación). Establecer esto explícitamente podría ser necesario si se usan rutas relativas.-h, --help: Mostrar mensaje de ayuda.--version: Mostrar versión del paquete.
🔍 Solución de problemas
-
Error
'C:\Program' is not recognized...inmediatamente después de conectarse:- Causa: Esto generalmente ocurre cuando la herramienta se lanza mediante
npxdentro de un entorno como Claude Desktop. El entorno de ejecución (variablePATH) proporcionado al proceso probablemente provoca que un comando interno de CODESYS (como ejecutar Python) falle. - Solución: Configure su cliente MCP para ejecutar el comando directamente (
"command": "codesys-mcp-tool") en lugar de usar"command": "npx". Vea la sección Método de configuración recomendado arriba.
- Causa: Esto generalmente ocurre cuando la herramienta se lanza mediante
-
La herramienta falla / errores en la salida:
- Revise los registros de su aplicación cliente MCP (por ejemplo, registros de Claude Desktop). Busque mensajes
INTEROP:o mensajes de PythonDEBUG:/ERROR:impresos en stderr desde la ejecución del script de CODESYS. - Asegúrese de que los argumentos
--codesys-pathy--codesys-profilepasados al comando sean correctos y apunten a una instalación válida de CODESYS con scripting habilitado. - Verifique que las rutas de proyecto y las rutas de objetos que pasa a las herramientas sean correctas (use barras diagonales
/). - Asegúrese de que no haya otras instancias de CODESYS ejecutándose de maneras conflictivas (por ejemplo, manteniendo un bloqueo sobre el perfil).
- Revise los registros de su aplicación cliente MCP (por ejemplo, registros de Claude Desktop). Busque mensajes
-
command not found: codesys-mcp-tool:- Asegúrese de que el paquete se haya instalado globalmente (
npm install -g @codesys/mcp-toolkit). - Asegúrese de que el directorio bin global de npm esté en la variable de entorno
PATHde su sistema. Encuéntrelo connpm config get prefixy agregue el subdirectoriobin(o el directorio principal mismo en Windows) a su PATH.
- Asegúrese de que el paquete se haya instalado globalmente (
-
Verificar registros:
- Registros de Claude Desktop:
C:\Users\<YourUsername>\AppData\Roaming\Claude\logs\(Windows)
- Registros de Claude Desktop:
🤝 Contribuciones
¡Las contribuciones, problemas y solicitudes de características son bienvenidos! Siéntase libre de consultar la página de problemas. (Opcionalmente, agregue un archivo CONTRIBUTING.md con más detalles).
📝 Licencia
Este proyecto está licenciado bajo la Licencia MIT - vea el archivo LICENSE para más detalles.
🙏 Agradecimientos
- El equipo de CODESYS GmbH por la potente plataforma CODESYS y su motor de scripting.
- El proyecto Model Context Protocol por definir el estándar de interacción.
- Todos los contribuyentes y usuarios que ayudan a mejorar este kit de herramientas.