ibm-i-5250-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| IBMI_HOST | Yes | IBM i host or IP address | |
| IBMI_USER | Yes | User profile for signing on | |
| IBMI_PASSWORD | Yes | Password for the user profile | |
| IBMI_5250_MENU | No | Menu to show at sign on | |
| IBMI_5250_PORT | No | Telnet port; 992 for TLS, 23 for plain | 23 |
| IBMI_5250_CCSID | No | EBCDIC code page | 37 |
| IBMI_ALLOWED_CL | No | Additional commands allowed in restricted mode | |
| IBMI_BLOCKED_CL | No | Commands blocked when restricted mode is off | |
| IBMI_RESTRICTED | No | Enable restricted mode (allowlist of commands) | true |
| IBMI_5250_CURLIB | No | Current library to set at sign on | |
| IBMI_5250_DEVICE | No | Virtual device to claim; if not set, the host picks a QPADEVxxxx | |
| IBMI_5250_VIEWER | No | Enable the live view page | false |
| IBMI_5250_PROGRAM | No | Program to call at sign on | |
| IBMI_5250_TERMINAL | No | Terminal type to negotiate | IBM-3477-FC |
| IBMI_MCP_CONFIG_DIR | No | Path to a folder containing configuration files | |
| IBMI_5250_VIEWER_PORT | No | Port for the live view page | 5250 |
| IBMI_5250_TLS_INSECURE | No | Accept any certificate when using TLS (992) | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| session_openA | Open a 5250 session to an IBM i and sign on, then return the first screen. Also starts a live view in the browser so a human can watch what you do. Returns a screen snapshot: the literal 24x80 screen plus a field list with refs you use in screen_do. |
| screen_snapshotA | Return the current screen without changing anything: the literal screen text, the field list with refs, the cursor position, the keyboard state and any message line. Use this to look before acting. |
| screen_doA | Drive the screen: type into fields, move the cursor and press keys, in one call. Actions run in order and only the final screen comes back, so put a whole interaction in one call instead of one action per call. Each action is a line: "type f1: ACME LTD" put text in a field, by ref from the snapshot, by "row,col", or by DDS name once known "key: Enter" Enter, F1 to F24, PageUp, PageDown, Help, Clear, Print "cursor: 6,53" move the cursor, which is an argument to the key: Help on a message line explains that message, Help anywhere else explains the field under it Typing sends nothing to the host. A 5250 holds it locally and transmits only on a key, so ["type f1: ACME", "type f2: 100", "key: Enter"] is one exchange with the box, not three. If an action fails the run stops there and the error names it, with the screen as it stands. |
| session_closeA | Sign off and close the session, releasing the virtual device. Always do this when finished: just dropping the connection leaves a disconnected interactive job on the box, so the next run meets an "Attempt to Recover Interactive Job" screen instead of the application, and it holds licensed interactive capacity. |
| run_testsA | Replay screen regression tests against a program and report what passed. A test is a Markdown file with |
| list_serversA | List the configured IBM i servers, named by the .env. files on disk, plus the keys screen_do accepts. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Each tool owns a distinct responsibility: session lifecycle (open/close), passive inspection (screen_snapshot), active interaction (screen_do), regression testing (run_tests), and configuration (list_servers). Even though screen_snapshot and screen_do both return screens, one is inspect-only and the other is action-driven, so there is no real ambiguity.
The resource-prefixed names like session_open, session_close, and screen_do are readablearke, but the convention is not uniform: screen_snapshot is a noun phrase while run_tests and list_servers use verb_noun order. All names share lowercase snake_case, but an agent cannot consistently predict whether the verb appears first or last.
Six tools is well-scoped for a 5250 automation server: session lifecycle, inspection, action, testing, and server discovery each get one clear tool. There is no redundancy or bloat, and each tool earns its place.
The surface covers the full session lifecycle and interaction loop: open, snapshot, act, close, plus regression testing and server discovery. screen_do's combined action syntax handles typing, cursor movement, and keys in one exchange, so there are no obvious dead ends for the intended domain.