mainframe mcp server for VS Code
io.github.notharshhaa/mainframe-mcp-server
MCP server for IBM z/OS jobs, datasets, USS, and operational diagnostics via Zowe SDK.
client:VS Code
transport:stdio
runtime:npm
Install mainframe mcp server in VS Code
.vscode/mcp.json
{
"inputs": [
{
"type": "promptString",
"id": "zosmf-host",
"description": "ZOSMF_HOST",
"password": true
},
{
"type": "promptString",
"id": "zosmf-port",
"description": "ZOSMF_PORT",
"password": true
},
{
"type": "promptString",
"id": "zosmf-base-path",
"description": "ZOSMF_BASE_PATH",
"password": true
},
{
"type": "promptString",
"id": "zosmf-user",
"description": "ZOSMF_USER",
"password": true
},
{
"type": "promptString",
"id": "zosmf-password",
"description": "ZOSMF_PASSWORD",
"password": true
},
{
"type": "promptString",
"id": "zosmf-token",
"description": "ZOSMF_TOKEN",
"password": true
},
{
"type": "promptString",
"id": "zosmf-token-type",
"description": "ZOSMF_TOKEN_TYPE",
"password": true
},
{
"type": "promptString",
"id": "zosmf-reject-unauthorized",
"description": "ZOSMF_REJECT_UNAUTHORIZED",
"password": true
},
{
"type": "promptString",
"id": "log-level",
"description": "LOG_LEVEL",
"password": true
},
{
"type": "promptString",
"id": "mcp-transport",
"description": "MCP_TRANSPORT",
"password": true
},
{
"type": "promptString",
"id": "mcp-sse-port",
"description": "MCP_SSE_PORT",
"password": true
},
{
"type": "promptString",
"id": "max-job-output-lines",
"description": "MAX_JOB_OUTPUT_LINES",
"password": true
},
{
"type": "promptString",
"id": "max-dataset-read-lines",
"description": "MAX_DATASET_READ_LINES",
"password": true
},
{
"type": "promptString",
"id": "max-jes-spool-files",
"description": "MAX_JES_SPOOL_FILES",
"password": true
},
{
"type": "promptString",
"id": "max-audit-lines",
"description": "MAX_AUDIT_LINES",
"password": true
},
{
"type": "promptString",
"id": "cmci-context",
"description": "CMCI_CONTEXT",
"password": true
},
{
"type": "promptString",
"id": "cmci-host",
"description": "CMCI_HOST",
"password": true
},
{
"type": "promptString",
"id": "cmci-port",
"description": "CMCI_PORT",
"password": true
},
{
"type": "promptString",
"id": "cmci-base-path",
"description": "CMCI_BASE_PATH",
"password": true
},
{
"type": "promptString",
"id": "db2-location",
"description": "DB2_LOCATION",
"password": true
},
{
"type": "promptString",
"id": "db2-host",
"description": "DB2_HOST",
"password": true
},
{
"type": "promptString",
"id": "db2-port",
"description": "DB2_PORT",
"password": true
},
{
"type": "promptString",
"id": "db2-base-path",
"description": "DB2_BASE_PATH",
"password": true
},
{
"type": "promptString",
"id": "smf-summary-dataset",
"description": "SMF_SUMMARY_DATASET",
"password": true
},
{
"type": "promptString",
"id": "rmf-metrics-enabled",
"description": "RMF_METRICS_ENABLED",
"password": true
},
{
"type": "promptString",
"id": "racf-audit-uss-path",
"description": "RACF_AUDIT_USS_PATH",
"password": true
},
{
"type": "promptString",
"id": "racf-audit-dataset",
"description": "RACF_AUDIT_DATASET",
"password": true
},
{
"type": "promptString",
"id": "security-read-only",
"description": "SECURITY_READ_ONLY",
"password": true
},
{
"type": "promptString",
"id": "security-allowed-tools",
"description": "SECURITY_ALLOWED_TOOLS",
"password": true
},
{
"type": "promptString",
"id": "security-blocked-tools",
"description": "SECURITY_BLOCKED_TOOLS",
"password": true
},
{
"type": "promptString",
"id": "security-allowed-dataset-patterns",
"description": "SECURITY_ALLOWED_DATASET_PATTERNS",
"password": true
},
{
"type": "promptString",
"id": "security-allowed-uss-paths",
"description": "SECURITY_ALLOWED_USS_PATHS",
"password": true
},
{
"type": "promptString",
"id": "security-audit-logging",
"description": "SECURITY_AUDIT_LOGGING",
"password": true
},
{
"type": "promptString",
"id": "security-max-jcl-bytes",
"description": "SECURITY_MAX_JCL_BYTES",
"password": true
}
],
"servers": {
"mainframe-mcp-server": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@notharshhaa/mainframe-mcp-server"
],
"env": {
"ZOSMF_HOST": "${input:zosmf-host}",
"ZOSMF_PORT": "${input:zosmf-port}",
"ZOSMF_BASE_PATH": "${input:zosmf-base-path}",
"ZOSMF_USER": "${input:zosmf-user}",
"ZOSMF_PASSWORD": "${input:zosmf-password}",
"ZOSMF_TOKEN": "${input:zosmf-token}",
"ZOSMF_TOKEN_TYPE": "${input:zosmf-token-type}",
"ZOSMF_REJECT_UNAUTHORIZED": "${input:zosmf-reject-unauthorized}",
"LOG_LEVEL": "${input:log-level}",
"MCP_TRANSPORT": "${input:mcp-transport}",
"MCP_SSE_PORT": "${input:mcp-sse-port}",
"MAX_JOB_OUTPUT_LINES": "${input:max-job-output-lines}",
"MAX_DATASET_READ_LINES": "${input:max-dataset-read-lines}",
"MAX_JES_SPOOL_FILES": "${input:max-jes-spool-files}",
"MAX_AUDIT_LINES": "${input:max-audit-lines}",
"CMCI_CONTEXT": "${input:cmci-context}",
"CMCI_HOST": "${input:cmci-host}",
"CMCI_PORT": "${input:cmci-port}",
"CMCI_BASE_PATH": "${input:cmci-base-path}",
"DB2_LOCATION": "${input:db2-location}",
"DB2_HOST": "${input:db2-host}",
"DB2_PORT": "${input:db2-port}",
"DB2_BASE_PATH": "${input:db2-base-path}",
"SMF_SUMMARY_DATASET": "${input:smf-summary-dataset}",
"RMF_METRICS_ENABLED": "${input:rmf-metrics-enabled}",
"RACF_AUDIT_USS_PATH": "${input:racf-audit-uss-path}",
"RACF_AUDIT_DATASET": "${input:racf-audit-dataset}",
"SECURITY_READ_ONLY": "${input:security-read-only}",
"SECURITY_ALLOWED_TOOLS": "${input:security-allowed-tools}",
"SECURITY_BLOCKED_TOOLS": "${input:security-blocked-tools}",
"SECURITY_ALLOWED_DATASET_PATTERNS": "${input:security-allowed-dataset-patterns}",
"SECURITY_ALLOWED_USS_PATHS": "${input:security-allowed-uss-paths}",
"SECURITY_AUDIT_LOGGING": "${input:security-audit-logging}",
"SECURITY_MAX_JCL_BYTES": "${input:security-max-jcl-bytes}"
}
}
}
}
VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs