Token导航 LogoToken导航TokenDH.com
Zos Ftp MCP logo
运维云端stdio官方级别未说明来源级核验

Zos Ftp MCP

MCP Server

一个通过FTP与z/OS大型机系统交互的模型上下文协议(MCP)服务器,支持数据集列表、下载、JCL作业提交和监控等功能。

工具数

12

提示词数

0

GitHub Stars

1

资源数

0
Python云端部署Docker

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

arunkumars-mf

提供方

arunkumars-mf

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install zos-ftp-mcp

详细介绍

z/OS FTP MCP服务器

](https://pypi.org/project/zos-ftp-mcp/) ](https://pepy.tech/projects/zos-ftp-mcp) ](https://pypi.org/project/zos-ftp-mcp/) ![License: MIT](https://opensource.org/licenses/MIT)

用于通过FTP与z/OS大型机系统交互的模型上下文协议(MCP)服务器。

特性

  • 使用模式匹配从大型机目录中列出数据集
  • 下载二进制和文本格式的数据集,并进行编码转换
  • 从具有并行支持的分区数据集(PDS)下载成员
  • 提交并监控JCL作业
  • 高级文本处理:编码转换、行尾控制、尾随空格处理
  • 可配置的写保护,安全生产使用
  • 通过环境变量进行连接管理

安装

MCP服务器使用情况

无需安装!MCP配置 uvx 将自动下载并运行该包。

Python库用法

pip install zos-ftp-mcp

配置

设置连接的环境变量:

export ZFTP_HOST="your-mainframe-host"
export ZFTP_PORT="21"
export ZFTP_USER="your-username"
export ZFTP_PASSWORD="your-password"
export ZFTP_TIMEOUT="600.0"
export ZFTP_DOWNLOAD_PATH="/path/to/downloads"
export ZFTP_DEBUG="false"  # Set to "true" for detailed FTP protocol logging
export ZFTP_ALLOW_WRITE="false"  # Set to "true" to enable upload/submit operations

高级文本处理

控制文本文件如何从EBCDIC主机下载到ASCII/UTF-8:

# Character encoding conversion (EBCDIC to ASCII/UTF-8)
export ZFTP_DEFAULT_ENCODING="IBM-037,UTF-8"  # US/Canada EBCDIC to UTF-8
# Other options: IBM-1047,UTF-8 (Latin-1), IBM-285,UTF-8 (UK)

# Line ending format
export ZFTP_DEFAULT_LINE_ENDING="LF"  # Unix/Linux style
# Options: CRLF (Windows), LF (Unix), CR (old Mac), NONE

# Preserve trailing spaces in fixed-length records
export ZFTP_PRESERVE_TRAILING_SPACES="false"  # Strip trailing spaces
# Set to "true" to keep 80-character fixed-length records intact

何时使用这些设置:

  • 编码:对于正确的字符转换(JCL、COBOL、日志)至关重要
  • 行尾:跨平台兼容性、版本控制(Git)
  • 尾部空格:对于大多数文本文件保持“false”,对于固定格式数据保持“true”

写入操作

默认情况下,MCP服务器为 只读 为了安全。要启用写入操作,请执行以下操作:

export ZFTP_ALLOW_WRITE="true"

启用后,您可以:

  • 将文件上传到大型机数据集(upload_dataset)
  • 提交JCL作业(submit_job)

在生产环境中小心使用。只读操作(列表、下载、监视作业)始终可用。

用法

作为MCP服务器

{
  "mcpServers": {
    "zos-ftp-mcp": {
      "command": "uvx",
      "args": ["zos-ftp-mcp"],
      "env": {
        "ZFTP_HOST": "your-mainframe-host",
        "ZFTP_USER": "your-username",
        "ZFTP_PASSWORD": "your-password",
        "ZFTP_DOWNLOAD_PATH": "/path/to/downloads"
      }
    }
  }
}

直接命令行

zos-ftp-mcp

可用工具

数据集操作

  • list_catalog(pattern, limit, offset) -列出与分页模式匹配的数据集
  • download_binary(source_dataset, target_file) -以二进制模式下载数据集
  • download_text(source_dataset, target_file, encoding, line_ending, preserve_trailing_spaces) -带文本处理的下载
  • download_pds_members(dataset, target_dir, members, encoding, line_ending, ...) -使用高级选项下载PDS成员
  • upload_dataset(source_file, target_dataset, binary, lrecl, blksize, recfm, space) -将文件上传到数据集(要求ZFTP_ALLOW_WRITE=true)
  • get_vsam_info(dataset, limit, offset) -通过分页获取VSAM数据集信息(要求ZFTP_ALLOW_WRITE=true)
  • get_gdg_info(gdg_base, limit, offset) -通过分页获取GDG基本属性和生成(需要ZFTP_ALLOW_WRITE=true)

作业操作

  • submit_job(jcl, jobname) -提交JCL作业(要求ZFTP_ALLOW_WRITE=true)
  • list_jes_jobs(jobmask, owner, status, limit, offset) -列出具有筛选和分页功能的作业
  • get_job_info(jobid) -获取作业详细信息
  • download_job_spool(jobid, target_file) -下载带有返回代码提取的作业输出

连接管理

  • get_connection_info() -显示当前连接设置

示例使用提示

配置后,您可以使用以下提示:

数据集发现

“列出从SYS1开始的所有数据集以探索系统数据集”

“显示与MYUSER.\*模式匹配的所有用户数据集”

数据下载

“使用UTF-8编码将数据集MYUSER.COBOL.SOURCE下载到我的本地下载文件夹”

“将PDS MYUSER.COBOL.COPYLIB中的所有成员下载到本地目录”

数据上传(要求ZFTP_ALLOW_WRITE=true)

“将我的本地文件test.jcl上传到数据集MYUSER.jcl.test,lrecl=80,recfm=FB”

“将本地文件member.cbl上载到PDS成员MYUSER.COBOL.SOURCE(TESTPGM)”

作业操作

“提交此JCL作业并等待完成”(要求ZFTP_ALLOW_WRITE=true)

“列出我所有处于输出状态的作业”

“下载作业JOB12345的线轴输出,并向我显示返回代码”

连接管理

“显示当前FTP连接设置”

依赖项

  • 主控程序 -模型上下文协议
  • Python 3.10+标准库(ftplib、pathlib等)

高级功能

分页支持

为了避免大结果集的上下文窗口过多,有几个工具支持分页:

带分页的工具:

  • list_catalog -通过数据集进行分页
  • list_jes_jobs -通过工作进行分页
  • get_vsam_info -通过VSAM数据集进行分页
  • get_gdg_info -通过GDG世代传诵

用途:

# Get first 50 datasets
list_catalog('USER.*', limit=50)

# Get next 50 datasets
list_catalog('USER.*', limit=50, offset=50)

# Get first 20 jobs
list_jes_jobs(status='OUTPUT', limit=20)

# Get first 10 GDG generations
get_gdg_info('AWS.M2.CARDDEMO.TRANSACT.BKUP', limit=10)

答复包括:

  • count -此页面中返回的项目数
  • total -可用项目总数
  • offset -当前偏移量
  • has_more -如果有更多项目可用,则为True

JESINTERFACE级别限制

服务器会自动检测大型机的JES接口级别。随着 jesinterfaceelevel=1 (常见于旧系统):

职位提交:

  • JCL中的作业名必须为 userid + exactly one character
  • 示例:如果用户ID为 USER123,作业名称必须为 USER123J
  • 服务器会自动验证并提供明确的错误消息

职位列表:

  • 服务器端过滤可能不起作用
  • 客户端过滤是自动应用的
  • 作业可能会很快从卷轴中清除

解决方法: 服务器透明地处理这些限制。请注意,如果作业被快速清除,则作业检索可能会失败。

并行PDS下载

使用多个FTP连接更快地下载PDS成员:

# Sequential (default)
download_pds_members(dataset, target_dir, members, ftp_threads=1)

# Parallel (2-16 threads)
download_pds_members(dataset, target_dir, members, ftp_threads=4)

对于大型PDS(>10个成员),并行下载速度要快得多。

每次操作超限

虽然默认值是通过环境变量设置的,但您可以在每次操作中覆盖它们:

# Use different line ending for specific file
download_text(dataset, target_file, line_ending='CRLF')

# Preserve trailing spaces for fixed-format data
download_text(dataset, target_file, preserve_trailing_spaces=True)

# Use different encoding
download_pds_members(dataset, target_dir, members, encoding='IBM-1047,UTF-8')

许可证

MIT许可证-有关详细信息,请参阅许可证文件。

目录标签

目录标签

Python云端部署Docker大型机交互本地部署FTP服务器数据集管理JCL作业处理编码转换

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

12

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP