IBM AS400 ISeries MCP Server
@abstracta
This project implements a customizable MCP server to execute RTE protocol.
Overview
What is IBM AS400 ISeries MCP Server?
It is an MCP (Model Context Protocol) server that executes RTE (Remote Terminal Emulation) protocol transactions on IBM AS/400 iSeries systems. It uses customizable YAML-based flows to define connection parameters and interaction steps, and it supports multiple terminal protocols (TN5250, TN3270, VT420). The server is intended for developers who need to automate terminal interactions with legacy IBM midrange systems.
How to use IBM AS400 ISeries MCP Server?
You need Java 21+. Compile the project with ./mvnw clean package. Then run the server in SSE mode with java -jar target/rte-mcp-server-0.0.1-SNAPSHOT.jar or in STDIO mode by adding -Dspring.ai.mcp.server.stdio=true. Configure connection parameters and RTE flow steps in a YAML file (e.g., flow.yaml). The YAML defines server, port, protocol, terminalType, sslType, and a list of steps with actions (label/input pairs) and an attentionKey.
Key features of IBM AS400 ISeries MCP Server
- Customizable YAML-based RTE flow definitions.
- Supports TN5250, TN3270, and VT420 terminal protocols.
- Multiple terminal types (e.g., IBM-3477-FC, IBM-3278-M2) per protocol.
- SSL options: None, TLS, SSLv3.
- Extensible via
RteUtilsclass and@Tool/@Serviceannotations. - Supports a wide range of attention keys (ENTER, function keys, PA keys, etc.).
- Two transport modes: SSE (Server‑Sent Events) and STDIO.
Use cases of IBM AS400 ISeries MCP Server
- Automating login sequences on IBM iSeries systems.
- Executing repetitive transaction flows (e.g., data entry, queries).
- Testing terminal interactions by replaying YAML‑defined steps.
- Integrating legacy 5250/3270 applications into modern MCP workflows.
FAQ from IBM AS400 ISeries MCP Server
What dependencies does the server require?
The server requires Java 21+ and a Maven build system (./mvnw clean package). No other runtime dependencies are mentioned.
How do I configure the RTE flow?
Define a YAML file with a config section (server, port, protocol, terminalType, sslType) and a steps section. Each step contains a list of actions (label/input pairs) and an attentionKey (e.g., ENTER, F1). Place the file in the classpath (e.g., /flow.yaml).
Which terminal protocols and types are supported?
Supported protocols: TN5250, TN3270, and VT420. Terminal types vary per protocol; for example, TN5250 supports IBM-3477-FC: 27x132 and IBM-3179-2: 24x80. See the README table for full list.
Can I run the server in STDIO mode?
Yes. Add -Dspring.ai.mcp.server.stdio=true to the Java command. Otherwise, the server runs in SSE mode by default.
How can I add custom MCP tools?
Extend the server by creating a @Service class that implements RteTool. Use RteUtils.connect() and RteUtils.executeSteps() inside a @Tool‑annotated method. Load your YAML flow inside the method.