内容
<p align="center">
<img src="icon.png" width="120" alt="Kiro IBM i MCP Bridge" />
</p>
# Kiro IBM i MCP Bridge
Kiro(和 VS Code)扩展,连接 Kiro 的 AI(通过模型上下文协议)与 IBM i(AS/400)系统,实现 RPG、COBOL、CL 等 IBM i 语言的 AI 开发工作流。
## 功能
- **读取/写入源成员**:AI 可以直接读取和修改 IBM i 源代码
- **执行 SQL**:运行针对 IBM i 的 DB2 查询
- **表模式检查**:检索列定义和元数据
- **智能编辑**:在不完全重写源代码的情况下进行部分编辑
- **独立 MCP 服务器**:自包含的 Node.js MCP 服务器(`out/server.js`),通过 SSH 直接连接到 IBM i - 由 Kiro(或任何 MCP 客户端)作为单独进程启动。
- **编辑器自动刷新**:捆绑的 VS Code 扩展在服务器写入时重新加载任何打开的源成员。
## 先决条件
- VS Code 1.85.0 或更高版本
- Node.js 18+(Kiro 用于启动 MCP 服务器)
- [Code for IBM i](https://marketplace.visualstudio.com/items?itemName=halcyontechltd.code-for-ibmi) 扩展(用于浏览/打开成员和接收编辑器自动刷新)
- 网络/SSH 访问您的 IBM i 系统
## 安装
1. 从 VS Code 市场安装(搜索“Kiro IBM i MCP Bridge”)
2. 或者下载 `.vsix` 文件并手动安装:
```bash
code --install-extension kiro-ibmi-mcp-bridge-0.3.2.vsix
```
## 与 Kiro 一起使用
该扩展程序捆绑了 MCP 服务器,并为您配置 Kiro - 无需手动编辑 `mcp.json`。
### 1. 安装先决条件
1. 在 Kiro 中安装 **Code for IBM i** 扩展。
2. 从 VSIX(扩展 → `...` → *从 VSIX 安装...*)安装此扩展(`kiro-ibmi-mcp-bridge`)。
### 2. 配置您的 IBM i 连接
打开命令面板并运行 **`IBM i MCP: Configure Connection`**。输入主机、用户、密码和 SSH 端口。
扩展程序然后:
- 在其每用户存储中本地保存凭证(不在 `mcp.json` 中,不在您的存储库中)。
- 在 `~/.kiro/settings/mcp.json` 中注册 `ibmi-bridge` MCP 服务器,指向扩展程序中捆绑的服务器。
重新连接 `ibmi-bridge` 服务器从 Kiro **MCP 服务器**面板应用。
> 注册仅存储凭证文件的引用(`IBMI_CRED_FILE`);您的密码永远不会写入 `mcp.json`。
>
> 可用设置:`ibmiMcpBridge.registerScope`(`global` 或 `workspace`),`ibmiMcpBridge.serverName`,`ibmiMcpBridge.runtime`(`kiro` 或 `node`),`ibmiMcpBridge.autoApprove`。
> 默认情况下,服务器在 Kiro 自己的捆绑 Node 运行时运行,因此 **不需要单独的 Node.js 安装**。将 `ibmiMcpBridge.runtime` 设置为 `node` 以使用 `PATH` 中的 `node` 二进制文件。
### 3. 开始使用 IBM i 的 AI
配置完成后,您可以自然地与 IBM i 源代码交互:
```
您: “读取 MYLIB/QRPGLESRC/MYPGM 的源代码”
AI: [读取并显示 RPG 源代码]
您: “为 SQL 语句添加错误处理”
AI: [修改源代码并添加正确的错误处理]
您: “显示 MYLIB/CUSTOMERS 的模式”
AI: [显示表列和类型]
```
## 可用的 MCP 工具
| 工具 | 描述 |
|------|-------------|
| `get_active_member` | 读取 Code for IBM i 中当前打开的成员(自动上下文) |
| `read_member_source` | 读取成员的源代码 |
| `write_member_source` | 覆盖整个源成员 |
| `edit_member_source` | 使用查找/替换进行部分编辑 |
| `run_sql_query` | 执行 SQL(需要标志的突变) |
| `get_table_schema` | 检索表列定义 |
### 自动上下文(打开成员)
您不必每次都输入 `library/file/member`。当您在 **Code for IBM i** 中打开源成员时,扩展程序会跟踪它(在状态栏中显示为 `IBM i: LIB/FILE(MBR)`),MCP 服务器会自动使用它。因此,您可以:
```
“分析此程序”
“为打开的源代码添加错误处理”
“解释此成员的作用”
```
`read_member_source`、`edit_member_source` 和 `write_member_source` 工具在您省略坐标时,会回退到打开的成员。
## 手动运行服务器
MCP 服务器通过 stdio 进行通信。Kiro 通常为您启动它(参见上面的配置),但您也可以直接运行它进行测试:
```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
```
## 安全注意事项
- 默认阻止 SQL 突变(`INSERT`、`UPDATE`、`DELETE`)
- 使用 `allow_mutating: true` 参数启用(谨慎使用)
- 通过 `IBM i MCP: Configure Connection` 命令输入凭证,并存储在扩展程序的每用户全局存储中,**不** 在 `mcp.json` 中,**不** 在您的 工作区/存储库中
- `mcp.json` 只存储凭证文件的路径引用(`IBMI_CRED_FILE`)
- 运行 `IBM i MCP: Clear Saved Credentials` 以删除存储的凭证
## 开发
```bash
# 克隆存储库
git clone https://github.com/dibari62/kiro-ibmi-mcp-bridge
cd kiro-ibmi-mcp-bridge
# 安装依赖项
npm install
# 编译 TypeScript
npm run compile
# 监视模式用于开发
npm run watch
# 构建独立服务器
npm run build
# 打包 VSIX
npx vsce package
```
## 需求
- Node.js 18+
- TypeScript 5.3+
- Code for IBM i 扩展(适用于 VS Code 模式)
## 已知问题
- `edit_member_source` 需要固定格式源的精确空格匹配
- 大型源成员可能需要更长时间才能处理
- SQL 执行超时为 30 秒
## 贡献
欢迎贡献!请在 [GitHub](https://github.com/dibari62/kiro-ibmi-mcp-bridge) 上打开问题或提交 PR。
## 许可证
MIT 许可证 - 有关详细信息,请参见 [LICENSE](LICENSE) 文件。
## 鸣谢
由 [dibari62](https://github.com/dibari62) 为 IBM i 开发社区构建。
支持:
- [模型上下文协议](https://modelcontextprotocol.io/)
- [Code for IBM i](https://github.com/halcyon-tech/vscode-ibmi)
- [Kiro IDE](https://kiro.ai/)
---
**享受 AI 驱动的 IBM i 开发!** 🚀