Skip to main content
Glama
BlackUppsss

cx-programmer-mcp

by BlackUppsss

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 .cxp y descargar al PLC)


Instalación

cd cx-programmer-mcp
uv sync
uv run cx-programmer-mcp

Configuració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.py

Otros modelos de PLC

Cada modelo de PLC tiene una configuración binaria diferente. Para modelos distintos del CJ2M CPU11:

  1. Abre CX-Programmer en tu máquina

  2. Crea un nuevo proyecto vacío para tu modelo de PLC (CP1L, CS1G, etc.)

  3. Guárdalo como .CXP o .CXT

  4. Coloca el archivo en la carpeta project/

  5. Actualiza make_template.py para que apunte a tu archivo:

SRC = Path(__file__).parent / "project" / "your_blank_template.cxp"
  1. Ejecuta make_template.py una 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.py

Salida: project/example_basic_io.cxp — ábrelo en CX-Programmer para revisarlo y descargarlo.


Revisar programa

uv run python review_program.py

Configuració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_Projects

Cambios de horario en tiempo de ejecución

Usa CX-Programmer Modo en línea → Memoria del PLC → Área DM:

DM

Función

Valor predeterminado

D0

Horario 1 — hora

6

D1

Horario 1 — minuto

0

D2

Horario 2 — hora

16

D3

Horario 2 — minuto

0

D4

Duración de ejecución x100ms

300 (=30 s)

Los cambios surten efecto de inmediato sin reiniciar el PLC.


Ejecutar pruebas

uv run pytest -q

Herramientas MCP disponibles

Herramienta

Descripción

load_project

Carga un archivo .cxp o .cxt en una sesión

list_programs

Lista todos los programas del proyecto

list_sections

Lista las secciones de un programa

get_program_context

Obtiene el contenido ladder completo de un programa

get_rungs

Obtiene los rungs de una sección

replace_rung

Reemplaza las instrucciones de un rung

insert_rung

Inserta un nuevo rung

delete_rung

Elimina un rung

set_rung_comment

Establece un comentario de rung

patch_program

Aplica varias ediciones de rung de forma atómica

create_section

Añade una nueva sección

rename_section

Renombra una sección existente

upsert_symbol

Añade o actualiza un símbolo

clear_symbols

Borra todos los símbolos de un ámbito

list_symbols

Lista todos los símbolos

validate_program

Valida la estructura XML

save_cxt

Guarda como .cxt

save_cxp

Re-codifica y guarda como .cxp

list_project_templates

Lista las plantillas integradas disponibles

create_project_from_template

Crea un nuevo proyecto en blanco a partir de una plantilla

compile_rung

Valida las instrucciones mnemónicas

simulate_rung

Simulación booleana de un rung

analyze_rung

Analiza la estructura de un rung

program_diagnostics

Diagnóstico completo del programa

semantic_snapshot

Instantánea JSON semántica para revisión por IA

launch_in_cx_programmer

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.toml

Notas

  • 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 .CXP es compatible a nivel binario con CX-Programmer 9.73 en CJ2M CPU11.

  • Para otros modelos de PLC, proporciona tu propia plantilla .CXP en blanco (consulta Configuración de plantilla de proyecto).

Install Server
F
license - not found
B
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    B
    quality
    C
    maintenance
    An 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.
    16
    33
    MIT
  • F
    license
    Not graded
    quality
    A
    maintenance
    MCP 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

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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