关于 IBM AS400 ISeries MCP Server
IBM AS/400 ISeries MCP Server 是一个基于 Java 的 MCP 服务,用于通过 RTE 协议与 AS/400 及 iSeries 终端会话交互。项目通过 YAML 定义连接参数和操作步骤,便于开发者扩展自定义工具。
主要功能
- 01支持 TN5250、TN3270 和 VT420 协议
- 02通过 YAML 定义连接与操作流程
- 03提供 RteUtils 类用于连接和执行步骤
- 04同时支持 SSE 与 STDIO 运行模式
- 05可配置终端类型与 SSL/TLS 设置
适用场景
- 01为 AS/400 终端流程封装为 MCP 工具
- 02自动化 iSeries 屏幕的登录与事务操作
- 03基于 Mock 的 RTE 流程集成测试
MCP 相关
该项目是 MCP 服务,将 RTE 终端事务以 MCP 工具的形式暴露给 MCP 客户端调用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
IBM AS/400 ISeries MCP Server
此项目实现了一个可自定义的 MCP 服务,用于执行 RTE 协议。
示例



开发
要求
- Java 21+*
运行
-
编译项目
./mvnw clean package -
以 SSE 模式运行服务
java -jar target/rte-mcp-server-0.0.1-SNAPSHOT.jar -
以 STDIO 模式运行服务
java -jar -Dspring.ai.mcp.server.stdio=true rte-mcp-server-0.0.1-SNAPSHOT.jar
RteUtils
此项目旨在便于扩展。你可以使用 RteUtils 类添加自己的 MCP 工具。
还需要以 yaml 格式定义 RTE 连接参数和 RTE 流程。
RteUtils 已实现以下方法:
static RteProtocolClient connect(RteConfig config):使用提供的 yaml 连接到 RTE 服务。static String executeSteps(RteProtocolClient client, List<RteStep> steps):在 RTE 服务上执行所提供的步骤,并使用提供的 yaml 以字符串形式返回屏幕结果。
作为 MCP 工具公开的方法应使用 @Tool 注解,类应使用 @Services 注解,如以下示例所示:
@Service
public class RteServiceLoginTool implements RteTool {
private static final Logger logger = LoggerFactory.getLogger(RteServiceLoginTool.class);
@Tool(description = "Execute an RTE transaction in a given server", name = "TN5250 Login")
public String executeRteTransaction(String server, int port) {
try {
RteFlow flow = RteYamlLoader.load("/flow.yaml");
RteProtocolClient client = RteTool.connect(flow.getConfig(), server, port);
return RteTool.executeSteps(client, flow.getSteps());
} catch (IOException | RteIOException | InterruptedException | TimeoutException e) {
logger.error("Error executing RTE flow", e);
return "Error executing RTE flow: " + e.getMessage();
}
}
}
yaml 定义了连接参数以及要在 RTE 服务上执行的步骤。此 * yaml* 文件应具有以下结构
config:
server: localhost
port: 2324
protocol: TN5250
terminalType: 'IBM-3477-FC: 27x132'
sslType: None
steps:
- actions:
- label: User
input: TESTUSR
- label: Password
input: TESTPSW
attentionKey: ENTER
yaml 文件中可以定义任意数量的步骤。
-
server: 要连接的 RTE 服务地址。
-
port: 要连接的 RTE 服务端口。
-
protocol: 支持的协议包括 TN5250、TN3270 和 VT420
-
terminalType: 下表列出了每种协议支持的终端类型:
协议 终端类型 TN5250 IBM-3477-FC: 27x132 IBM-3179-2: 24x80 TN3270 IBM-3278-M2: 24x80 IBM-3278-M2-E: 24x80 IBM-3278-M3: 32x80 IBM-3278-M3-E: 32x80 IBM-3278-M4: 43x80 IBM-3278-M4-E: 43x80 IBM-3278-M5: 27x132 IBM-3278-M5-E: 27x132 VT420 VT420-7: 24x80 -
sslType: 支持的 SSL 类型包括 None、TLS 和 SSLv3。
-
steps: 表示要在 RTE 服务上执行步骤的操作列表。
-
actions: 要在当前屏幕上执行的所有操作,可以添加任意数量的 label/input 对。
- label: 要在 RTE 屏幕中填写的字段标签。
- input: 要填入字段的值。
- attentionKey: 填写字段后要按下的按键,可以是 ENTER、F1、 F2、F3、F4、F5、F6、F7、F8、F9、F10、F11、 F12、F13、F14、F15、F16、F17、F18、F19、F20、F21、 F22、F23、F24、ATTN、CLEAR、SYSRQ、RESET、ROLL_UP、 ROLL_DN、PA1、PA2 或 PA3。
测试
RteServiceLoginToolTest 类中提供了一个集成测试示例。此测试使用
MCPClient 验证工具列表并执行工具。
注意:要测试工具的行为,建议生成待执行的 RTE 流程转储,并使用 wiresham 对其进行模拟。
有关如何测试和调试服务的更多信息,请参阅此处
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。