mcpField
I
IBM AS400 ISeries MCP Server

IBM AS400 ISeries MCP Server

本地服务
github.com/abstracta开发工具2266 周前更新

关于 IBM AS400 ISeries MCP Server

IBM AS/400 ISeries MCP Server 是一个基于 Java 的 MCP 服务,用于通过 RTE 协议与 AS/400 及 iSeries 终端会话交互。项目通过 YAML 定义连接参数和操作步骤,便于开发者扩展自定义工具。

主要功能

  1. 01支持 TN5250、TN3270 和 VT420 协议
  2. 02通过 YAML 定义连接与操作流程
  3. 03提供 RteUtils 类用于连接和执行步骤
  4. 04同时支持 SSE 与 STDIO 运行模式
  5. 05可配置终端类型与 SSL/TLS 设置

适用场景

  1. 01为 AS/400 终端流程封装为 MCP 工具
  2. 02自动化 iSeries 屏幕的登录与事务操作
  3. 03基于 Mock 的 RTE 流程集成测试

MCP 相关

该项目是 MCP 服务,将 RTE 终端事务以 MCP 工具的形式暴露给 MCP 客户端调用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

IBM AS/400 ISeries MCP Server

此项目实现了一个可自定义的 MCP 服务,用于执行 RTE 协议。

示例

演示

屏幕 1

屏幕 2

开发

要求
  • 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: 下表列出了每种协议支持的终端类型:

    协议终端类型
    TN5250IBM-3477-FC: 27x132
    IBM-3179-2: 24x80
    TN3270IBM-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
    VT420VT420-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 对其进行模拟。

有关如何测试和调试服务的更多信息,请参阅此处

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。