Skip to main content
Glama
dibari62

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!** 🚀