IBM AS/400 ISeries MCP服务器
该项目实现了一个可定制的MCP服务器来执行RTE协议。
示例
发展
需求
- *Java 21+*\*
跑
- 编译项目
./mvnw clean package
- 在上运行服务器 上海证券交易所 模式
java -jar target/rte-mcp-server-0.0.1-SNAPSHOT.jar- 在上运行服务器 工作室 模式
java -jar -Dspring.ai.mcp.server.stdio=true rte-mcp-server-0.0.1-SNAPSHOT.jarRteUtils
这个项目的目的是易于扩展。您可以通过以下方式添加自己的MCP工具 使用 RteUtils 类。
还需要定义RTE连接参数和RTE流 格式 格式。
RteUtils 已实施以下方法:
static RteProtocolClient connect(RteConfig config):使用连接到RTE服务器
提供 格式.
static String executeSteps(RteProtocolClient client, List steps):执行提供的
在RTE服务器上执行步骤,并使用提供的字符串返回屏幕结果 格式.
作为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();
}
}
}这 格式 定义连接参数和在RTE服务器中执行的步骤。这个\* *格式*\*文件应具有以下结构
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步骤中可以定义的任何数字 格式 文件。
- 服务器: 连接到RTE服务器的服务器地址。
- 端口: 连接到RTE服务器的端口。
- 协议: 支持的协议包括 TN5250, TN3270 和 VT420
- 终端类型: 下表显示了每种协议支持的终端类型:
| 协议 | 终端类型 |
|---|---|
| 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类型包括 无 传输层安全 和 SSLv3.
- 步骤: 表示要在RTE服务器中执行的步骤的操作列表。
- 行动: 当前屏幕中要执行的所有操作,任意数量的对 标签/输入
可以添加。
- 标签: 填写RTE屏幕的字段标签。 - 输入: 字段中要填写的值。 - 注意: 填写字段后按下的键,可以 进入, 一层楼, 地上二层, 功能3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15, 第16层, F17, F18, F19, F20, F21, F22, F23, F24, 收件人, 清除, SYSRQ, 重置, ROLL_UP, ROLL_DN, PA1, PA2 或 PA3.
测试
集成测试示例见 RteServiceLoginToolTest 类,此测试使用 这 MCPClient 验证工具列表并执行它。
*注意:为了测试to工具的行为,建议生成RTE流的转储 执行并模拟它 威舍姆*
可以找到有关如何测试和调试服务器的更多信息 这里
