Rocannon on the mainframe

Rocannon started with IBM z/OS. The creator (Adam) works on IBM Z software. Browsing the ibm.ibm_zos_core module catalog through ansible-doc is what made the idea of turning every Ansible module into a typed MCP tool feel worth building. The collection has one of the richest, most consistently documented parameter surfaces in the entire Ansible ecosystem. It was a natural fit.

Why z/OS has been underserved by AI tooling

Configuration management and conversational AI tools tend to assume POSIX systems. z/OS is POSIX-capable through USS, but its native interfaces (SYSFS, JES, the operator console, VSAM, SMS-managed data sets) have no parallel in Linux abstractions. Tools designed for Linux either break or simply don't exist for z/OS.

Ansible changed the automation story. The IBM z/OS collections provide idempotent, typed interfaces for everything from job submission to data set management to HMC operations. Rocannon adds an MCP layer on top of that investment, so any LLM can call those modules against a real z/OS system.

IBM z/OS collections Rocannon supports

ibm.ibm_zos_core

The primary collection for z/OS automation. Install it with ansible-galaxy collection install ibm.ibm_zos_core and Rocannon registers all its modules as typed MCP tools.

ModuleWhat it does
zos_job_submitSubmit JCL from a data set or USS path, return the job ID
zos_job_queryQuery job status by name or ID
zos_job_outputRetrieve spool output for a completed job
zos_data_setCreate, delete, and manage MVS data sets including PDS and VSAM
zos_copyCopy between data sets, USS paths, and the control node
zos_fetchRetrieve a data set or USS file to the control node
zos_operatorIssue an operator command and return the console response
zos_findSearch for data sets or USS files by name pattern
zos_archiveArchive data sets into a portable format
zos_unarchiveRestore an archive to data sets on a target z/OS system

ibm.ibm_zos_zosmf

Automation through the z/OSMF REST interface. Useful for provisioning workflows, software instance management, and cloud-style lifecycle operations on z/OS without direct SSH access to individual LPARs.

ibm.ibm_zos_hmc

Hardware Management Console automation: LPAR management, CPC operations, and system-level configuration changes through the HMC API.

What this looks like in practice

A session with Rocannon and ibm.ibm_zos_core against a real z/OS system:

Submit the job in HLQ.TEST.JCL(IEFBR14), wait for it to complete, and show me the spool output.

Rocannon calls zos_job_submit, polls with zos_job_query, then fetches output with zos_job_output. Each step is a typed module call. The LLM sees actual return codes, step names, and DD output, not a raw shell scrape.

Check if HLQ.PROD.LOAD exists and if it does, copy it to HLQ.PROD.LOAD.BKUP before we make changes.

That's zos_data_set with state: query, then zos_copy. Add check=true to preview the copy before committing it.

Issue a D IPLINFO operator command and tell me when this system was last IPLed.

One call to zos_operator. The response comes back as structured text; the LLM parses the IPL date out of it and answers in plain English.

LinuxONE control node. Rocannon runs on the Ansible control node, which can be LinuxONE (RHEL for s390x) for a fully on-premises setup. Managed nodes are z/OS systems reached via SSH through IBM z/OS OpenSSH.

Why the module model fits z/OS

z/OS operations are structured in a way that maps well to typed tools. A job submission has a known schema. A data set operation has documented parameters. An operator command returns formatted console output. These aren't open-ended shell commands that could do anything; they're declared interfaces with known inputs and outputs.

That matters for safety. Rocannon tags zos_find and zos_job_query as read-only. Data set operations expose check mode. The profile restricts which hosts and module combinations the agent can reach. Compare that to raw SSH access to an operator console, where a single mistyped command can affect the entire system.

The broader picture

z/OS still runs a substantial share of global financial transactions, healthcare records, and government systems. The people maintaining those systems have had solid Ansible support since the IBM collections matured. They have had essentially no AI-native interactive tooling.

Rocannon doesn't replace z/OS expertise. It brings that expertise into conversational sessions. An LLM that can call zos_job_output against a real system, read the return code, and suggest what to check next is more useful than one that generates hypothetical JCL and stops there.