PluginBench
MCP Server

io.github.NotHarshhaa/mainframe-mcp-server MCP Server

io.github.NotHarshhaa/mainframe-mcp-server

What is the io.github.NotHarshhaa/mainframe-mcp-server MCP server?

MCP server for IBM z/OS jobs, datasets, USS, and operational diagnostics via Zowe SDK.

How to install io.github.NotHarshhaa/mainframe-mcp-server

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • ZOSMF_HOST
    required

    z/OSMF hostname or IP address

  • ZOSMF_PORT

    z/OSMF HTTPS port (default 443)

  • ZOSMF_BASE_PATH

    Optional API gateway or mediation layer prefix for z/OSMF

  • ZOSMF_USER

    z/OS user id (required with ZOSMF_PASSWORD unless ZOSMF_TOKEN is set)

  • ZOSMF_PASSWORD
    secret

    Password for basic auth (required with ZOSMF_USER unless ZOSMF_TOKEN is set)

  • ZOSMF_TOKEN
    secret

    Auth token (alternative to user/password)

  • ZOSMF_TOKEN_TYPE

    Token type when using ZOSMF_TOKEN (e.g. LTPA2)

  • ZOSMF_REJECT_UNAUTHORIZED

    Verify TLS certificates (true in production)

  • LOG_LEVEL

    Log level: fatal, error, warn, info, debug, trace, silent

  • MCP_TRANSPORT

    Transport: stdio (IDE) or sse (container/network)

  • MCP_SSE_PORT

    Listen port when MCP_TRANSPORT=sse

  • MAX_JOB_OUTPUT_LINES

    Max lines returned from a single spool DD

  • MAX_DATASET_READ_LINES

    Max lines returned from dataset or USS reads

  • MAX_JES_SPOOL_FILES

    Max spool files fetched during diagnostics

  • MAX_AUDIT_LINES

    Max RACF audit log lines per query

  • CMCI_CONTEXT

    CICSplex name or region APPLID (required for CICS tools)

  • CMCI_HOST

    CMCI hostname (defaults to ZOSMF_HOST)

  • CMCI_PORT

    CMCI HTTPS port (default 1490)

  • CMCI_BASE_PATH

    CMCI REST base path

  • DB2_LOCATION

    Db2 subsystem location name (required for Db2 tools)

  • DB2_HOST

    Db2 REST hostname (defaults to ZOSMF_HOST)

  • DB2_PORT

    Db2 REST port (default 50400)

  • DB2_BASE_PATH

    Db2 REST base path

  • SMF_SUMMARY_DATASET

    Optional SMF summary dataset for offline metrics

  • RMF_METRICS_ENABLED

    Query z/OSMF RMF metrics when available

  • RACF_AUDIT_USS_PATH

    USS path to RACF audit log file

  • RACF_AUDIT_DATASET

    Sequential dataset containing RACF audit records

  • SECURITY_READ_ONLY

    When true, blocks write tools such as submit_jcl

  • SECURITY_ALLOWED_TOOLS

    Comma-separated allowlist of MCP tool names

  • SECURITY_BLOCKED_TOOLS

    Comma-separated blocklist of MCP tool names

  • SECURITY_ALLOWED_DATASET_PATTERNS

    Comma-separated dataset patterns (e.g. USERDEV.*,SYS1.*)

  • SECURITY_ALLOWED_USS_PATHS

    Comma-separated USS path prefixes

  • SECURITY_AUDIT_LOGGING

    Log every tool invocation to stderr (SIEM-friendly JSON)

  • SECURITY_MAX_JCL_BYTES

    Maximum inline JCL size for submit_jcl

Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "mainframe-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@notharshhaa/mainframe-mcp-server"
      ],
      "env": {
        "ZOSMF_HOST": "<YOUR_ZOSMF_HOST>",
        "ZOSMF_PORT": "<YOUR_ZOSMF_PORT>",
        "ZOSMF_BASE_PATH": "<YOUR_ZOSMF_BASE_PATH>",
        "ZOSMF_USER": "<YOUR_ZOSMF_USER>",
        "ZOSMF_PASSWORD": "<YOUR_ZOSMF_PASSWORD>",
        "ZOSMF_TOKEN": "<YOUR_ZOSMF_TOKEN>",
        "ZOSMF_TOKEN_TYPE": "<YOUR_ZOSMF_TOKEN_TYPE>",
        "ZOSMF_REJECT_UNAUTHORIZED": "<YOUR_ZOSMF_REJECT_UNAUTHORIZED>",
        "LOG_LEVEL": "<YOUR_LOG_LEVEL>",
        "MCP_TRANSPORT": "<YOUR_MCP_TRANSPORT>",
        "MCP_SSE_PORT": "<YOUR_MCP_SSE_PORT>",
        "MAX_JOB_OUTPUT_LINES": "<YOUR_MAX_JOB_OUTPUT_LINES>",
        "MAX_DATASET_READ_LINES": "<YOUR_MAX_DATASET_READ_LINES>",
        "MAX_JES_SPOOL_FILES": "<YOUR_MAX_JES_SPOOL_FILES>",
        "MAX_AUDIT_LINES": "<YOUR_MAX_AUDIT_LINES>",
        "CMCI_CONTEXT": "<YOUR_CMCI_CONTEXT>",
        "CMCI_HOST": "<YOUR_CMCI_HOST>",
        "CMCI_PORT": "<YOUR_CMCI_PORT>",
        "CMCI_BASE_PATH": "<YOUR_CMCI_BASE_PATH>",
        "DB2_LOCATION": "<YOUR_DB2_LOCATION>",
        "DB2_HOST": "<YOUR_DB2_HOST>",
        "DB2_PORT": "<YOUR_DB2_PORT>",
        "DB2_BASE_PATH": "<YOUR_DB2_BASE_PATH>",
        "SMF_SUMMARY_DATASET": "<YOUR_SMF_SUMMARY_DATASET>",
        "RMF_METRICS_ENABLED": "<YOUR_RMF_METRICS_ENABLED>",
        "RACF_AUDIT_USS_PATH": "<YOUR_RACF_AUDIT_USS_PATH>",
        "RACF_AUDIT_DATASET": "<YOUR_RACF_AUDIT_DATASET>",
        "SECURITY_READ_ONLY": "<YOUR_SECURITY_READ_ONLY>",
        "SECURITY_ALLOWED_TOOLS": "<YOUR_SECURITY_ALLOWED_TOOLS>",
        "SECURITY_BLOCKED_TOOLS": "<YOUR_SECURITY_BLOCKED_TOOLS>",
        "SECURITY_ALLOWED_DATASET_PATTERNS": "<YOUR_SECURITY_ALLOWED_DATASET_PATTERNS>",
        "SECURITY_ALLOWED_USS_PATHS": "<YOUR_SECURITY_ALLOWED_USS_PATHS>",
        "SECURITY_AUDIT_LOGGING": "<YOUR_SECURITY_AUDIT_LOGGING>",
        "SECURITY_MAX_JCL_BYTES": "<YOUR_SECURITY_MAX_JCL_BYTES>"
      }
    }
  }
}
Cursor
~/.cursor/mcp.json
{
  "mcpServers": {
    "mainframe-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@notharshhaa/mainframe-mcp-server"
      ],
      "env": {
        "ZOSMF_HOST": "<YOUR_ZOSMF_HOST>",
        "ZOSMF_PORT": "<YOUR_ZOSMF_PORT>",
        "ZOSMF_BASE_PATH": "<YOUR_ZOSMF_BASE_PATH>",
        "ZOSMF_USER": "<YOUR_ZOSMF_USER>",
        "ZOSMF_PASSWORD": "<YOUR_ZOSMF_PASSWORD>",
        "ZOSMF_TOKEN": "<YOUR_ZOSMF_TOKEN>",
        "ZOSMF_TOKEN_TYPE": "<YOUR_ZOSMF_TOKEN_TYPE>",
        "ZOSMF_REJECT_UNAUTHORIZED": "<YOUR_ZOSMF_REJECT_UNAUTHORIZED>",
        "LOG_LEVEL": "<YOUR_LOG_LEVEL>",
        "MCP_TRANSPORT": "<YOUR_MCP_TRANSPORT>",
        "MCP_SSE_PORT": "<YOUR_MCP_SSE_PORT>",
        "MAX_JOB_OUTPUT_LINES": "<YOUR_MAX_JOB_OUTPUT_LINES>",
        "MAX_DATASET_READ_LINES": "<YOUR_MAX_DATASET_READ_LINES>",
        "MAX_JES_SPOOL_FILES": "<YOUR_MAX_JES_SPOOL_FILES>",
        "MAX_AUDIT_LINES": "<YOUR_MAX_AUDIT_LINES>",
        "CMCI_CONTEXT": "<YOUR_CMCI_CONTEXT>",
        "CMCI_HOST": "<YOUR_CMCI_HOST>",
        "CMCI_PORT": "<YOUR_CMCI_PORT>",
        "CMCI_BASE_PATH": "<YOUR_CMCI_BASE_PATH>",
        "DB2_LOCATION": "<YOUR_DB2_LOCATION>",
        "DB2_HOST": "<YOUR_DB2_HOST>",
        "DB2_PORT": "<YOUR_DB2_PORT>",
        "DB2_BASE_PATH": "<YOUR_DB2_BASE_PATH>",
        "SMF_SUMMARY_DATASET": "<YOUR_SMF_SUMMARY_DATASET>",
        "RMF_METRICS_ENABLED": "<YOUR_RMF_METRICS_ENABLED>",
        "RACF_AUDIT_USS_PATH": "<YOUR_RACF_AUDIT_USS_PATH>",
        "RACF_AUDIT_DATASET": "<YOUR_RACF_AUDIT_DATASET>",
        "SECURITY_READ_ONLY": "<YOUR_SECURITY_READ_ONLY>",
        "SECURITY_ALLOWED_TOOLS": "<YOUR_SECURITY_ALLOWED_TOOLS>",
        "SECURITY_BLOCKED_TOOLS": "<YOUR_SECURITY_BLOCKED_TOOLS>",
        "SECURITY_ALLOWED_DATASET_PATTERNS": "<YOUR_SECURITY_ALLOWED_DATASET_PATTERNS>",
        "SECURITY_ALLOWED_USS_PATHS": "<YOUR_SECURITY_ALLOWED_USS_PATHS>",
        "SECURITY_AUDIT_LOGGING": "<YOUR_SECURITY_AUDIT_LOGGING>",
        "SECURITY_MAX_JCL_BYTES": "<YOUR_SECURITY_MAX_JCL_BYTES>"
      }
    }
  }
}
Windsurf
~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mainframe-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@notharshhaa/mainframe-mcp-server"
      ],
      "env": {
        "ZOSMF_HOST": "<YOUR_ZOSMF_HOST>",
        "ZOSMF_PORT": "<YOUR_ZOSMF_PORT>",
        "ZOSMF_BASE_PATH": "<YOUR_ZOSMF_BASE_PATH>",
        "ZOSMF_USER": "<YOUR_ZOSMF_USER>",
        "ZOSMF_PASSWORD": "<YOUR_ZOSMF_PASSWORD>",
        "ZOSMF_TOKEN": "<YOUR_ZOSMF_TOKEN>",
        "ZOSMF_TOKEN_TYPE": "<YOUR_ZOSMF_TOKEN_TYPE>",
        "ZOSMF_REJECT_UNAUTHORIZED": "<YOUR_ZOSMF_REJECT_UNAUTHORIZED>",
        "LOG_LEVEL": "<YOUR_LOG_LEVEL>",
        "MCP_TRANSPORT": "<YOUR_MCP_TRANSPORT>",
        "MCP_SSE_PORT": "<YOUR_MCP_SSE_PORT>",
        "MAX_JOB_OUTPUT_LINES": "<YOUR_MAX_JOB_OUTPUT_LINES>",
        "MAX_DATASET_READ_LINES": "<YOUR_MAX_DATASET_READ_LINES>",
        "MAX_JES_SPOOL_FILES": "<YOUR_MAX_JES_SPOOL_FILES>",
        "MAX_AUDIT_LINES": "<YOUR_MAX_AUDIT_LINES>",
        "CMCI_CONTEXT": "<YOUR_CMCI_CONTEXT>",
        "CMCI_HOST": "<YOUR_CMCI_HOST>",
        "CMCI_PORT": "<YOUR_CMCI_PORT>",
        "CMCI_BASE_PATH": "<YOUR_CMCI_BASE_PATH>",
        "DB2_LOCATION": "<YOUR_DB2_LOCATION>",
        "DB2_HOST": "<YOUR_DB2_HOST>",
        "DB2_PORT": "<YOUR_DB2_PORT>",
        "DB2_BASE_PATH": "<YOUR_DB2_BASE_PATH>",
        "SMF_SUMMARY_DATASET": "<YOUR_SMF_SUMMARY_DATASET>",
        "RMF_METRICS_ENABLED": "<YOUR_RMF_METRICS_ENABLED>",
        "RACF_AUDIT_USS_PATH": "<YOUR_RACF_AUDIT_USS_PATH>",
        "RACF_AUDIT_DATASET": "<YOUR_RACF_AUDIT_DATASET>",
        "SECURITY_READ_ONLY": "<YOUR_SECURITY_READ_ONLY>",
        "SECURITY_ALLOWED_TOOLS": "<YOUR_SECURITY_ALLOWED_TOOLS>",
        "SECURITY_BLOCKED_TOOLS": "<YOUR_SECURITY_BLOCKED_TOOLS>",
        "SECURITY_ALLOWED_DATASET_PATTERNS": "<YOUR_SECURITY_ALLOWED_DATASET_PATTERNS>",
        "SECURITY_ALLOWED_USS_PATHS": "<YOUR_SECURITY_ALLOWED_USS_PATHS>",
        "SECURITY_AUDIT_LOGGING": "<YOUR_SECURITY_AUDIT_LOGGING>",
        "SECURITY_MAX_JCL_BYTES": "<YOUR_SECURITY_MAX_JCL_BYTES>"
      }
    }
  }
}
VS Code
.vscode/mcp.json
{
  "servers": {
    "mainframe-mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@notharshhaa/mainframe-mcp-server"
      ],
      "env": {
        "ZOSMF_HOST": "<YOUR_ZOSMF_HOST>",
        "ZOSMF_PORT": "<YOUR_ZOSMF_PORT>",
        "ZOSMF_BASE_PATH": "<YOUR_ZOSMF_BASE_PATH>",
        "ZOSMF_USER": "<YOUR_ZOSMF_USER>",
        "ZOSMF_PASSWORD": "<YOUR_ZOSMF_PASSWORD>",
        "ZOSMF_TOKEN": "<YOUR_ZOSMF_TOKEN>",
        "ZOSMF_TOKEN_TYPE": "<YOUR_ZOSMF_TOKEN_TYPE>",
        "ZOSMF_REJECT_UNAUTHORIZED": "<YOUR_ZOSMF_REJECT_UNAUTHORIZED>",
        "LOG_LEVEL": "<YOUR_LOG_LEVEL>",
        "MCP_TRANSPORT": "<YOUR_MCP_TRANSPORT>",
        "MCP_SSE_PORT": "<YOUR_MCP_SSE_PORT>",
        "MAX_JOB_OUTPUT_LINES": "<YOUR_MAX_JOB_OUTPUT_LINES>",
        "MAX_DATASET_READ_LINES": "<YOUR_MAX_DATASET_READ_LINES>",
        "MAX_JES_SPOOL_FILES": "<YOUR_MAX_JES_SPOOL_FILES>",
        "MAX_AUDIT_LINES": "<YOUR_MAX_AUDIT_LINES>",
        "CMCI_CONTEXT": "<YOUR_CMCI_CONTEXT>",
        "CMCI_HOST": "<YOUR_CMCI_HOST>",
        "CMCI_PORT": "<YOUR_CMCI_PORT>",
        "CMCI_BASE_PATH": "<YOUR_CMCI_BASE_PATH>",
        "DB2_LOCATION": "<YOUR_DB2_LOCATION>",
        "DB2_HOST": "<YOUR_DB2_HOST>",
        "DB2_PORT": "<YOUR_DB2_PORT>",
        "DB2_BASE_PATH": "<YOUR_DB2_BASE_PATH>",
        "SMF_SUMMARY_DATASET": "<YOUR_SMF_SUMMARY_DATASET>",
        "RMF_METRICS_ENABLED": "<YOUR_RMF_METRICS_ENABLED>",
        "RACF_AUDIT_USS_PATH": "<YOUR_RACF_AUDIT_USS_PATH>",
        "RACF_AUDIT_DATASET": "<YOUR_RACF_AUDIT_DATASET>",
        "SECURITY_READ_ONLY": "<YOUR_SECURITY_READ_ONLY>",
        "SECURITY_ALLOWED_TOOLS": "<YOUR_SECURITY_ALLOWED_TOOLS>",
        "SECURITY_BLOCKED_TOOLS": "<YOUR_SECURITY_BLOCKED_TOOLS>",
        "SECURITY_ALLOWED_DATASET_PATTERNS": "<YOUR_SECURITY_ALLOWED_DATASET_PATTERNS>",
        "SECURITY_ALLOWED_USS_PATHS": "<YOUR_SECURITY_ALLOWED_USS_PATHS>",
        "SECURITY_AUDIT_LOGGING": "<YOUR_SECURITY_AUDIT_LOGGING>",
        "SECURITY_MAX_JCL_BYTES": "<YOUR_SECURITY_MAX_JCL_BYTES>"
      }
    }
  }
}
Claude Code
claude mcp add mainframe-mcp-server --env ZOSMF_HOST=<YOUR_ZOSMF_HOST> --env ZOSMF_PORT=<YOUR_ZOSMF_PORT> --env ZOSMF_BASE_PATH=<YOUR_ZOSMF_BASE_PATH> --env ZOSMF_USER=<YOUR_ZOSMF_USER> --env ZOSMF_PASSWORD=<YOUR_ZOSMF_PASSWORD> --env ZOSMF_TOKEN=<YOUR_ZOSMF_TOKEN> --env ZOSMF_TOKEN_TYPE=<YOUR_ZOSMF_TOKEN_TYPE> --env ZOSMF_REJECT_UNAUTHORIZED=<YOUR_ZOSMF_REJECT_UNAUTHORIZED> --env LOG_LEVEL=<YOUR_LOG_LEVEL> --env MCP_TRANSPORT=<YOUR_MCP_TRANSPORT> --env MCP_SSE_PORT=<YOUR_MCP_SSE_PORT> --env MAX_JOB_OUTPUT_LINES=<YOUR_MAX_JOB_OUTPUT_LINES> --env MAX_DATASET_READ_LINES=<YOUR_MAX_DATASET_READ_LINES> --env MAX_JES_SPOOL_FILES=<YOUR_MAX_JES_SPOOL_FILES> --env MAX_AUDIT_LINES=<YOUR_MAX_AUDIT_LINES> --env CMCI_CONTEXT=<YOUR_CMCI_CONTEXT> --env CMCI_HOST=<YOUR_CMCI_HOST> --env CMCI_PORT=<YOUR_CMCI_PORT> --env CMCI_BASE_PATH=<YOUR_CMCI_BASE_PATH> --env DB2_LOCATION=<YOUR_DB2_LOCATION> --env DB2_HOST=<YOUR_DB2_HOST> --env DB2_PORT=<YOUR_DB2_PORT> --env DB2_BASE_PATH=<YOUR_DB2_BASE_PATH> --env SMF_SUMMARY_DATASET=<YOUR_SMF_SUMMARY_DATASET> --env RMF_METRICS_ENABLED=<YOUR_RMF_METRICS_ENABLED> --env RACF_AUDIT_USS_PATH=<YOUR_RACF_AUDIT_USS_PATH> --env RACF_AUDIT_DATASET=<YOUR_RACF_AUDIT_DATASET> --env SECURITY_READ_ONLY=<YOUR_SECURITY_READ_ONLY> --env SECURITY_ALLOWED_TOOLS=<YOUR_SECURITY_ALLOWED_TOOLS> --env SECURITY_BLOCKED_TOOLS=<YOUR_SECURITY_BLOCKED_TOOLS> --env SECURITY_ALLOWED_DATASET_PATTERNS=<YOUR_SECURITY_ALLOWED_DATASET_PATTERNS> --env SECURITY_ALLOWED_USS_PATHS=<YOUR_SECURITY_ALLOWED_USS_PATHS> --env SECURITY_AUDIT_LOGGING=<YOUR_SECURITY_AUDIT_LOGGING> --env SECURITY_MAX_JCL_BYTES=<YOUR_SECURITY_MAX_JCL_BYTES> -- npx -y @notharshhaa/mainframe-mcp-server

Related MCP servers

Unified MCP server for Kubernetes, ArgoCD, Prometheus, PagerDuty, and Loki

2
TypeScript
MIT
View repository →