cx-programmer-mcp
cx-programmer-mcp
Un servidor MCP (Model Context Protocol) para editar programas de lógica ladder de OMRON CX-Programmer de forma programática, sin abrir la GUI.
Funciona con archivos .CXP / .CXT para PLC de las series CJ/CP/CS de OMRON.
Alcance: Solo programas, secciones, mnemónicos ladder, comentarios de rung y tabla de símbolos.
No toca PLC Setup, I/O Table, configuración de red, contraseñas ni transferencia al PLC.
Cómo funciona
OMRON documenta .CXP como una versión comprimida de .CXT. .CXT es un formato basado en texto que CX-Programmer puede importar/exportar. Este servidor lee .CXP o .CXT, edita el programa en memoria y guarda el resultado como .CXT / .CXP para su revisión en CX-Programmer antes de desplegarlo en un PLC real.
Usa el SDK de Python MCP v2 (MCPServer) con transporte stdio.
Related MCP server: TwinCAT Validator MCP Server
Requisitos
Python >= 3.10
Gestor de paquetes uv
CX-Programmer instalado (para abrir la salida
.cxpy descargar al PLC)
Instalación
cd cx-programmer-mcp
uv sync
uv run cx-programmer-mcpConfiguración de plantilla de proyecto
Plantilla integrada (CJ2M CPU11)
Se incluye una plantilla integrada CJ2M CPU11. Genera un proyecto en blanco:
uv run python make_template.pyOtros modelos de PLC
Cada modelo de PLC tiene una configuración binaria diferente. Para modelos distintos del CJ2M CPU11:
Abre CX-Programmer en tu máquina
Crea un nuevo proyecto vacío para tu modelo de PLC (CP1L, CS1G, etc.)
Guárdalo como
.CXPo.CXTColoca el archivo en la carpeta
project/Actualiza
make_template.pypara que apunte a tu archivo:
SRC = Path(__file__).parent / "project" / "your_blank_template.cxp"Ejecuta
make_template.pyuna vez
Programa de ejemplo
Se incluye un programa ladder de ejemplo: project/example_basic_io.cxp
Demuestra un controlador de cinta transportadora/E/S sencillo con:
Control manual de salida (mantener para ejecutar)
Ejecución automática programada mediante RTC (configurable vía DM)
Duración basada en temporizador
Bloqueo SET/RSET
Reinicio de emergencia
Para reconstruirlo desde el código fuente:
uv run python make_template.py
uv run python build_program.pySalida: project/example_basic_io.cxp — ábrelo en CX-Programmer para revisarlo y descargarlo.
Revisar programa
uv run python review_program.pyConfiguración del cliente MCP
Añade a la configuración de tu cliente MCP (Claude Desktop, Kiro, Cline, etc.):
{
"mcpServers": {
"cx-programmer": {
"command": "uv",
"args": ["run", "cx-programmer-mcp"],
"cwd": "ABSOLUTE_PATH_TO_THIS_FOLDER"
}
}
}Ejemplo en Windows:
"cwd": "C:\\Users\\yourname\\cx-programmer-mcp"Opcional — restringe el acceso a archivos a carpetas específicas:
CX_MCP_ALLOWED_ROOTS=C:\PLC_ProjectsCambios de horario en tiempo de ejecución
Usa CX-Programmer Modo en línea → Memoria del PLC → Área DM:
DM | Función | Valor predeterminado |
| Horario 1 — hora | 6 |
| Horario 1 — minuto | 0 |
| Horario 2 — hora | 16 |
| Horario 2 — minuto | 0 |
| Duración de ejecución x100ms | 300 (=30 s) |
Los cambios surten efecto de inmediato sin reiniciar el PLC.
Ejecutar pruebas
uv run pytest -qHerramientas MCP disponibles
Herramienta | Descripción |
| Carga un archivo |
| Lista todos los programas del proyecto |
| Lista las secciones de un programa |
| Obtiene el contenido ladder completo de un programa |
| Obtiene los rungs de una sección |
| Reemplaza las instrucciones de un rung |
| Inserta un nuevo rung |
| Elimina un rung |
| Establece un comentario de rung |
| Aplica varias ediciones de rung de forma atómica |
| Añade una nueva sección |
| Renombra una sección existente |
| Añade o actualiza un símbolo |
| Borra todos los símbolos de un ámbito |
| Lista todos los símbolos |
| Valida la estructura XML |
| Guarda como |
| Re-codifica y guarda como |
| Lista las plantillas integradas disponibles |
| Crea un nuevo proyecto en blanco a partir de una plantilla |
| Valida las instrucciones mnemónicas |
| Simulación booleana de un rung |
| Analiza la estructura de un rung |
| Diagnóstico completo del programa |
| Instantánea JSON semántica para revisión por IA |
| Guarda y abre en CX-Programmer (Windows) |
Estructura del proyecto
cx-programmer-mcp/
├── src/cx_programmer_mcp/ # MCP server and CXT library
│ ├── server.py # MCP tool definitions
│ ├── cxt.py # CXT/CXP parser and editor
│ ├── ladder.py # Mnemonic compiler and simulator
│ ├── diagnostics.py # Program diagnostics
│ ├── recipes.py # Reusable ladder patterns
│ ├── templates/ # Built-in PLC templates
│ │ └── CJ2M_CPU11.cxt # Native CJ2M CPU11 template
│ └── ...
├── tests/ # Test suite (16 tests)
├── project/ # Output folder
│ └── example_basic_io.cxp # Example ladder program
├── build_program.py # Builds the example ladder program
├── write_build.py # Regenerates build_program.py
├── make_template.py # Generates blank template from base
├── review_program.py # Prints program content to console
└── pyproject.tomlNotas
Ejecuta siempre la comprobación de programa en CX-Programmer antes de descargar a un PLC real.
Esta herramienta solo edita la lógica del programa — la tabla de I/O, la configuración de la unidad y la configuración del PLC se conservan tal cual de la plantilla.
La salida
.CXPes compatible a nivel binario con CX-Programmer 9.73 en CJ2M CPU11.Para otros modelos de PLC, proporciona tu propia plantilla
.CXPen blanco (consulta Configuración de plantilla de proyecto).
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceA Model Context Protocol server that enables seamless interaction between MCP clients (like Claude Desktop) and CODESYS V3 programming environments, allowing automation of project management, POU creation, code editing, and compilation tasks.131114MIT
- AlicenseBqualityCmaintenanceAn MCP server for validating, auto-fixing, and scaffolding TwinCAT 3 XML files using deterministic code quality tools and IEC 61131-3 OOP checks. It enables AI assistants to perform structural validation, apply safe fixes, and generate canonical code skeletons for industrial automation projects.1633MIT
- FlicenseNot gradedqualityAmaintenanceMCP server that connects AI assistants to Siemens TIA Portal via the Openness API. AI-assisted PLC programming, project management, hardware configuration, cross-reference analysis, and deployment. 16 tools, 166 actions.27
- AlicenseBqualityBmaintenanceMCP server that enables AI agents to read, edit, and create PLC projects in EcoStruxure Control Expert via COM automation.52MIT
Related MCP Connectors
MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.
MCP server for generating rough-draft project plans from natural-language prompts.
2,000+ MCP servers read at source level. Know what one does before you connect. Free, no key.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/BlackUppsss/Cx-Proggrammer-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server