mcp-for-i
v0.1.13
Published
Local MCP server and control plane for IBM i workflows
Readme
MCP-for-i
mcp-for-i is a local MCP server + control plane for IBM i workflows. It provides secure connection onboarding, keychain-backed credentials, cross-platform runtime update controls, and IBM i tools for agent-driven operations.
Install
The npm package name is mcp-for-i.
Install globally from npm:
npm i -g mcp-for-iVerify commands:
mcp-for-i --help
mcp-for-i-control helpSupported shells and terminals include PowerShell, cmd, Git Bash, Bash, Zsh, and WSL shells, across Windows, macOS, and Linux.
Quick Start
- Open the local control plane:
mcp-for-i controlmcp-for-i control will start the control server in the background if needed, then open the UI. If a browser cannot be opened in the current environment, it prints the local URL instead.
- The default local UI URL is:
http://127.0.0.1:3980- Add IBM i connection profiles in the UI. Passwords are stored in the OS keychain, not plain config.
WSL note: persistent password storage requires a working Linux Secret Service inside the WSL distro. WSL does not automatically use Windows Credential Manager; when no keychain is available, MCP-for-i keeps passwords only for the current process and the control plane shows a warning.
Credential storage adapts to the Node runtime: Windows Node from PowerShell, cmd, or Git Bash uses Windows Credential Manager; macOS uses Keychain; Linux uses Secret Service; WSL uses the WSL distro's Linux Secret Service.
Control Commands
From an npm install or a git checkout build, these commands are the supported control entrypoints:
mcp-for-i control
mcp-for-i control status
mcp-for-i control enable
mcp-for-i control disableEquivalent direct control-plane binary commands:
mcp-for-i-control open
mcp-for-i-control status
mcp-for-i-control enable
mcp-for-i-control disable
mcp-for-i-control serveBehavior by environment:
- Windows:
enableregisters a Startup entry. - macOS:
enableregisters a LaunchAgent. - Linux:
enableuses a usersystemdservice when available. - WSL:
enableinstalls a guarded.bashrchook that starts the control plane on interactive Bash shell launch.
Add To Coding Clients
The control-plane UI now includes a Clients tab with one-click setup for:
Codex Desktop / CLIClaude Codewhen theclaudeCLI is installedVS Code / GitHub Copilotwhen thecodeCLI is installed
It also includes manual guidance for:
Project Bob- other MCP clients that use generic JSON/TOML stdio server configuration
The UI writes or invokes the local client-specific setup on the same machine where the control plane is running. If a client CLI is not installed, the UI falls back to showing the exact launch command/snippet to use manually.
Update and Version Management
Update to latest globally:
npm i -g mcp-for-i@latestInstall a specific version:
npm i -g [email protected]Rollback example:
npm i -g [email protected]Check current installed version:
mcp-for-i --versionControl Plane Updates
The control plane intentionally stays narrow:
Update MCP- If running from a git checkout: pulls latest changes from
origin/<current-branch>, then installs/builds. - If running as an npm-installed package: upgrades the global npm package to latest.
- On Windows global installs, update still runs in a detached updater to avoid file-lock (
EBUSY) errors during self-update.
- If running from a git checkout: pulls latest changes from
Update Skills- Pulls or clones the configured skills repository and branch into the local
skillsdirectory.
- Pulls or clones the configured skills repository and branch into the local
For npm installs and manual upgrades, prefer standard npm commands such as npm i -g mcp-for-i@latest.
Development (Git Checkout)
For contributors working from source:
npm install
npm run build
npm test
npm run start:controlplaneYou can also use the built artifacts directly after build:
node dist/index.js
node dist/index.js control
node dist/controlplane/index.js openAutomated Release (No Manual Version Bump)
Use the release script instead of raw npm publish. The script publishes the mcp-for-i npm package.
Before releasing, verify npm auth and the currently published version:
npm whoami
npm view mcp-for-i versionIf npm whoami fails, run npm login first.
Patch release:
npm run release:patchMinor release:
npm run release:minorMajor release:
npm run release:majorWhat it does:
- Verifies git working tree is clean.
- Runs
npm test(unless--skip-testsis passed). - Checks npm published version.
- Auto-bumps version only when local version is not ahead.
- Publishes to npm.
- Pushes commit/tag to GitHub.
Optional flags:
npm run release:patch -- --skip-tests
npm run release:patch -- --otp=123456
npm run release:patch -- --no-pushOTP is only needed when the npm account has two-factor authentication enabled for publishing. If npm asks for a one-time password, use the current code from the authenticator app or recovery method configured on the npm account, then rerun with --otp=<code>. If the account does not have publish-time 2FA enabled, no OTP is needed.
Security Model
- Credential-bearing direct tool arguments are blocked for connection creation/update flows.
- Passwords are stored in keychain when available; failed or missing keychain access falls back to process-only session storage with a visible control-plane warning.
- Control plane is local-first (
127.0.0.1by default). - Guarded policy profile is the default for operational safety.
- Tool schemas are strict (
additionalProperties: false) with runtime argument validation, including nested connection/action/filter/profile payloads. - QSYS object names and source settings are validated before command execution to reduce interpolation and injection risk.
Links
- Main repo: ashishthomas2202/mcp-for-i
- Skills repo: ashishthomas2202/mcp-for-i-skills
- Docs:
docs/ - Full capability guide:
docs/capabilities.md
