Skip to main content
Glama
NotHarshhaa

mainframe-mcp-server

by NotHarshhaa

read_dataset

Read-onlyIdempotent

Reads sequential dataset or PDS member content with optional member, line limit, and EBCDIC encoding hints, helping agents inspect mainframe data while capping output.

Instructions

Read the content of a sequential dataset or a PDS member (output is line-capped). Supports custom line limits and EBCDIC encoding hints.

Input Schema

NameRequiredDescriptionDefault
dsnYesDataset name, e.g. "SYS1.PROCLIB".
memberNoPDS member name (1–8 chars). Omit for a sequential dataset.
encodingNoText encoding hint. Use "ibm1047" for EBCDIC datasets that the Zowe SDK may not auto-convert.
maxLinesNoMaximum lines to return (caps at server configuration maximum).
environmentNoNamed target environment (see list_environments), e.g. "dev", "prod". Omit to use the server default.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv3.0.0

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, open-world behavior, so the safety profile is covered. The description contributes beyond that with the line-capped output constraint and the EBCDIC conversion caveat, which are real operational traits an agent would not otherwise know.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, with the primary action and scope front-loaded and the notable behaviors (line cap, encoding) second. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a five-parameter read tool with full schema coverage and annotations, the description covers mode selection, output size, and encoding well. It is slightly incomplete in not mentioning error behavior (e.g., missing dataset or member) or how the line cap interacts with the server maximum, but these are minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so dsn, member, encoding, maxLines, and environment are already documented, including the ibm1047 example and the server-configuration cap. The description restates 'custom line limits' and 'EBCDIC encoding hints' without adding format or limit semantics, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (read) and resource (sequential dataset or PDS member) and scopes the result ('output is line-capped'). This clearly separates it from siblings such as list_datasets, search_dataset, and get_dataset_info, which enumerate or describe rather than return content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: 'Omit for a sequential dataset' tells the agent how to pick between two modes, but nothing says when to prefer this over search_dataset (to locate content) or get_dataset_info (to inspect metadata) first. The agent can infer the workflow but is not guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.