kiro-ibmi-mcp-bridge
by dibari62
README.md
<p align="center">
<img src="icon.png" width="120" alt="Kiro IBM i MCP Bridge" />
</p>
# Kiro IBM i MCP Bridge
A Kiro (and VS Code) extension that bridges Kiro's AI (via the Model Context Protocol) with IBM i (AS/400) systems, enabling AI-powered development workflows for RPG, COBOL, CL, and other IBM i languages.
## Features
- **Read/Write Source Members**: AI can read and modify IBM i source code directly
- **Execute SQL**: Run queries against DB2 for IBM i
- **Table Schema Inspection**: Retrieve column definitions and metadata
- **Intelligent Editing**: Partial source edits without full rewrites
- **Standalone MCP Server**: A self-contained Node.js MCP server (`out/server.js`) that connects to IBM i directly over SSH — launched by Kiro (or any MCP client) as a separate process.
- **Editor auto-refresh**: The bundled VS Code extension reloads any open source member as soon as the server writes to it.
## Prerequisites
- VS Code 1.85.0 or higher
- Node.js 18+ (used by Kiro to launch the MCP server)
- [Code for IBM i](https://marketplace.visualstudio.com/items?itemName=halcyontechltd.code-for-ibmi) extension (used to browse/open members and to receive editor auto-refresh)
- Network/SSH access to your IBM i system
## Installation
1. Install from VS Code Marketplace (search for "IBM i MCP Bridge")
2. Or download the `.vsix` file and install manually:
```bash
code --install-extension kiro-ibmi-mcp-bridge-0.3.2.vsix
```
## Usage with Kiro
The extension bundles the MCP server and configures Kiro for you — no manual `mcp.json` editing required.
### 1. Install prerequisites
1. Install the **Code for IBM i** extension in Kiro.
2. Install this extension (`kiro-ibmi-mcp-bridge`) from the VSIX (Extensions → `...` → *Install from VSIX…*).
### 2. Configure your IBM i connection
Open the Command Palette and run **`IBM i MCP: Configure Connection`**. Enter host, user, password and SSH port.
The extension then:
- Saves the credentials locally in its per-user storage (not in `mcp.json`, not in your repo).
- Registers the `ibmi-bridge` MCP server in `~/.kiro/settings/mcp.json`, pointing to the server bundled inside the extension.
Reconnect the `ibmi-bridge` server from the Kiro **MCP Servers** panel to apply.
> The registration only stores a reference to the credentials file (`IBMI_CRED_FILE`); your password is never written into `mcp.json`.
>
> Available settings: `ibmiMcpBridge.registerScope` (`global` or `workspace`), `ibmiMcpBridge.serverName`, `ibmiMcpBridge.runtime` (`kiro` or `node`), `ibmiMcpBridge.autoApprove`.
> By default the server runs on Kiro's own bundled Node runtime, so **no separate Node.js installation is required**. Set `ibmiMcpBridge.runtime` to `node` to use a `node` binary from your `PATH` instead.
### 3. Start Using AI with IBM i
Once configured, you can interact with IBM i sources naturally:
```
You: "Read the source code from MYLIB/QRPGLESRC/MYPGM"
AI: [reads and displays the RPG source]
You: "Add error handling to the SQL statements"
AI: [modifies the source with proper error handling]
You: "Show me the schema for MYLIB/CUSTOMERS"
AI: [displays table columns and types]
```
## Available MCP Tools
| Tool | Description |
|------|-------------|
| `get_active_member` | Read the member currently open in Code for IBM i (automatic context) |
| `read_member_source` | Read source code from a member |
| `write_member_source` | Overwrite entire source member |
| `edit_member_source` | Partial edit using find/replace |
| `run_sql_query` | Execute SQL (mutations require flag) |
| `get_table_schema` | Retrieve table column definitions |
### Automatic context (open member)
You don't have to type `library/file/member` every time. When you open a source member in **Code for IBM i**, the extension tracks it (shown in the status bar as `IBM i: LIB/FILE(MBR)`) and the MCP server uses it automatically. So you can just say:
```
"Analyze this program"
"Add error handling to the open source"
"Explain what this member does"
```
The `read_member_source`, `edit_member_source` and `write_member_source` tools fall back to the open member when you omit the coordinates.
## Running the server manually
The MCP server communicates via stdio. Kiro normally launches it for you (see config above), but you can also run it directly for testing:
```bash
export IBMI_HOST=your-ibm-i-hostname
export IBMI_USER=your-username
export IBMI_PASSWORD=your-password
export IBMI_PORT=22
node out/server.js
```
## Security Notes
- SQL mutations (`INSERT`, `UPDATE`, `DELETE`) are blocked by default
- Use `allow_mutating: true` parameter to enable (use with caution)
- Credentials are entered via the `IBM i MCP: Configure Connection` command and stored in the extension's per-user global storage, **not** in `mcp.json` and **not** in your workspace/repo
- `mcp.json` only stores a path reference (`IBMI_CRED_FILE`) to that local credentials file
- Run `IBM i MCP: Clear Saved Credentials` to remove the stored credentials
## Development
```bash
# Clone the repository
git clone https://github.com/dibari62/kiro-ibmi-mcp-bridge
cd kiro-ibmi-mcp-bridge
# Install dependencies
npm install
# Compile TypeScript
npm run compile
# Watch mode for development
npm run watch
# Build standalone server
npm run build
# Package VSIX
npx vsce package
```
## Requirements
- Node.js 18+
- TypeScript 5.3+
- Code for IBM i extension (for VS Code mode)
## Known Issues
- `edit_member_source` requires exact whitespace matching for fixed-format sources
- Large source members may take longer to process
- SQL execution timeout is 30 seconds
## Contributing
Contributions welcome! Please open issues or PRs on [GitHub](https://github.com/dibari62/kiro-ibmi-mcp-bridge).
## License
MIT License - see [LICENSE](LICENSE) file for details
## Credits
Built by [dibari62](https://github.com/dibari62) for the IBM i development community.
Powered by:
- [Model Context Protocol](https://modelcontextprotocol.io/)
- [Code for IBM i](https://github.com/halcyon-tech/vscode-ibmi)
- [Kiro IDE](https://kiro.ai/)
---
**Enjoy AI-powered IBM i development!** 🚀
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues