IBM i MCP服务器

IBM i MCP服务器通过Model Context Protocol (MCP)使AI代理能够与IBM i系统交互,提供对Db2 for i数据库的安全SQL访问。

  • by IBM
  • TypeScript
  • 本地部署
  • 89 星标
  • 更新于
在 GitHub 查看 IBM/ibmi-mcp-server

使用说明

IBM i的MCP服务器和CLI


概述

这 IBM i MCP服务器 使AI代理能够通过模型上下文协议(MCP)与IBM i系统进行交互。它提供了对Db2 for i数据库的安全、基于SQL的访问,允许Claude、VSCode Copilot、Bob和自定义代理等AI应用程序查询系统信息、监控性能和执行数据库操作。

该回购还提供 ibmi 命令行界面 (@ibm/ibmi-cli)--一个终端第一兄弟,共享相同的YAML驱动的SQL工具引擎,因此相同的工具定义在MCP服务器和CLI中都适用。

它是如何工作的: AI客户端通过MCP连接→ 服务器执行YAML定义的SQL工具→ 结果通过Mapepire流回到AI代理。

[!提示] 📚 官方文件 | ⚠️ 文档正在积极开发中

文档在不断发展。请经常回来查看更新和新指南。如果缺少什么,请随时打开问题!

仓库结构

目录 目的 文档
packages/server/ MCP服务器实现(TypeScript)-- @ibm/ibmi-mcp-server 在npm上 服务器README
packages/cli/ ibmi 命令行界面-- @ibm/ibmi-cli 在npm上,与服务器共同版本 CLI自述文件
tools/ 基于YAML的SQL工具配置 工具指南
agents/ AI代理示例和集成 代理商指南
client/ Python客户端测试示例 客户端自述
deployment/ Docker、Podman、OpenShift配置 部署指南
app/ 示例全栈代理应用程序(AgentOS) 应用程序自述

快速导航


MCP服务器

MCP服务器使AI代理能够通过YAML定义的SQL工具在IBM i系统上执行SQL查询。

快速开始

先决条件:

  • Mapepire 在IBM i(端口8076)上运行
  • 已安装Node.js 18+

开始:

  1. 克隆存储库:

    git clone https://github.com/IBM/ibmi-mcp-server.git
    cd ibmi-mcp-server
    
  2. 配置您的IBM i连接:

    cat > .env << 'EOF'
    DB2i_HOST=your-ibmi-host.com
    DB2i_USER=your-username
    DB2i_PASS=your-password
    DB2i_PORT=8076
    DB2i_IGNORE_UNAUTHORIZED=true
    EOF
    
  3. 启动服务器:

    npx -y @ibm/ibmi-mcp-server@latest \
       --transport http \
       --tools ./tools/performance/performance.yaml
    

    服务器将使用我们预先配置的工具:

    • 📊 性能监控(系统状态、内存池、活动作业)
    • 请参阅 工具指南 了解更多工具集。

    MCP服务器也可以在Docker容器中运行:

    docker run --rm --name ibmi-mcp-server \
      -v /path/to/tools/:/tools \
      -v /path/to/.env/:/.env \
      -e MCP_SERVER_CONFIG=/.env \
      -p 3010:3010 ghcr.io/ibm/ibmi-mcp-server:latest
    

    将卷路径替换为工具目录的实际本地路径 .env 文件。

  4. 验证它是否正在运行:

    # Check server health
    curl http://localhost:3010/healthz
    
    # List available tools
    curl -X POST http://localhost:3010/mcp \
      -H "Content-Type: application/json" \
      -H "Accept: application/json, text/event-stream" \
      -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | \
      grep -o '"name":"[^"]*"' | sed 's/"name":"//g' | sed 's/"//g' | head -20
    

[!注意] 📖 完整服务器快速入门→

下一步:

其他链接:


IBM i命令行界面

MCP服务器的第一个兄弟终端。这 ibmi 命令共享相同的YAML驱动的SQL工具引擎,专为本地探索、即席查询、脚本自动化和CI/CD而设计,不需要MCP客户端。

快速开始

# Install
npm i -g @ibm/ibmi-cli

# Run a query
ibmi sql "SELECT * FROM SAMPLE.EMPLOYEE FETCH FIRST 5 ROWS ONLY"

# Run a YAML-defined tool
ibmi tool system_status --tools ./tools/work-management.yaml

何时使用CLI与MCP服务器

这两个工具都位于同一个YAML工具引擎之上。这 MCP服务器 是构建AI代理和多客户端AI工作负载的事实上的接口。这 命令行界面 涵盖了其他所有内容,并且在一个完整的MCP服务器被过度使用时,也可以作为一个轻量级的、进程本地的替代方案。

使用CLI时… 使用MCP服务器时
你需要 开发人员工效学 --一种交互式终端体验,用于查询Db2中的i、探索模式、在shell/CI中编写脚本或将结果导入其他工具 您 构建人工智能代理或人工智能驱动的应用程序 应该以对话方式调用IBM i工具(Claude Desktop、VSCode Copilot、Bob、Agno、LangChain、自定义代理)
你正在运行一个 本地AI代理 并希望CLI作为长期使用的MCP服务器的轻量级、进程内替代品,例如,一个为 ibmi sql 或 ibmi tool 作为其循环的一部分 您需要通过MCP协议获得远程服务器支持,包括 stdio 或HTTP传输
你想要 快速同步执行 针对具有丰富输出格式的一个或多个系统(table, json, csv, markdown,NDJSON),无需管理服务器进程 您需要 共享网络访问 具有身份验证、速率限制、结构化遥测和会话处理功能

请参阅 CLI代理集成指南 对于布线的具体示例 ibmi CLI进入本地AI代理。

[!注意] 📖 完整文档:CLI指南→

其他链接:


SQL工具

基于YAML的SQL工具配置,定义AI代理可以在IBM i系统上执行哪些查询。

快速开始

创建自定义工具文件 tools/my-tools.yaml:

sources:
  my-system:
    host: ${DB2i_HOST}
    user: ${DB2i_USER}
    password: ${DB2i_PASS}
    port: 8076
    ignore-unauthorized: true

tools:
  system_status:
    source: ibmi-system
    description: "Overall system performance statistics with CPU, memory, and I/O metrics"
    parameters: []
    statement: |
      SELECT * FROM TABLE(QSYS2.SYSTEM_STATUS(RESET_STATISTICS=>'YES',DETAILED_INFO=>'ALL')) X

toolsets:
  performance:
    tools:
      - system_status

使用您的工具运行服务器:

npx -y @ibm/ibmi-mcp-server@latest --tools ./tools/my-tools.yaml --transport http

可用工具集合

这 tools/ 目录包括即用型配置:

  • 性能监控 -系统状态、活动作业、CPU/内存指标
  • 安全与审计 -用户配置文件、权限、安全事件
  • 作业管理 -活动作业、作业队列、子系统
  • 存储和IFS -磁盘使用率、IFS对象、保存文件
  • 数据库 -表、索引、约束、统计

[!注意] 📖 完整文档:工具指南→

其他链接:


AI代理

使用流行框架通过MCP服务器与IBM i系统交互的预构建AI代理示例。

可用代理框架

框架 语言 用例 文档
AgNO Python 具有内置可观察性的生产就绪代理 Agno自述
LangChain Python 复杂的工作流程和工具链 LangChain自述
谷歌ADK Python 谷歌AI生态系统集成 谷歌ADK自述

代理人可以做什么

  • 系统监控:实时性能分析和健康检查
  • 故障排除:使用自然语言查询诊断问题
  • 报告:生成系统报告和见解
  • 自动化:通过对话执行管理任务

[!注意] 📖 完整文档:代理商指南→

其他链接:


Python客户端

用于测试和与MCP服务器交互的简单Python客户端示例。

import asyncio
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client

async def main():
    # Connect to the IBM i MCP server with authentication
    async with streamablehttp_client("http://localhost:3010/mcp") as (
        read_stream,
        write_stream,
        _,
    ):
        # Create a session using the authenticated streams
        async with ClientSession(read_stream, write_stream) as session:
            # Initialize the connection
            await session.initialize()

            # List available tools (now authenticated with your IBM i credentials)
            tools = await session.list_tools()
            for i, tool in enumerate(tools.tools, 1):
                print(f"{i:2d}. {tool.name}")
                print(f"    └─ {tool.description}")

            # Execute a tool with authenticated IBM i access
            print("\n" + "=" * 80)
            print("SYSTEM ACTIVITY RESULT")
            print("=" * 80)
            result = await session.call_tool("system_activity", {})

            print(result)


if __name__ == "__main__":
    asyncio.run(main())

[!注意] 📖 完整文档:客户端自述→

其他链接:


部署

容器化环境的生产就绪部署配置。

部署选项

  • Docker和Podman -使用MCP Context Forge网关完成堆栈
  • OpenShift -Kubernetes部署与S2I构建
  • 生产特点 -HTTPS、身份验证、监控、缓存

[!注意] 📖 完整文档:部署指南→


设置Mapepire

在使用ibmi-mcp服务器之前,必须在ibmi系统上安装和配置Mapepire。

什么是Mapepire?

Mapepire 是用于IBMi的现代高性能数据库服务器,它通过WebSocket连接提供SQL查询执行功能。它充当现代应用程序架构(如MCP服务器、AI代理和REST API)和IBM i的Db2 for i数据库之间的网关。

为什么Mapepire支持AI和MCP工作负载

传统的IBM i数据库访问方法(ODBC、JDBC)与现代AI和MCP架构不太匹配,后者需要:

  • 快速、轻便的连接:AI代理进行频繁、短暂的数据库查询
  • WebSocket支持:实现流式传输结果的实时双向通信
  • 基于JSON的现代协议:简化了与Types/JavaScript生态系统的集成
  • 低延迟响应:对于交互式人工智能对话和工具执行至关重要

Mapepire通过提供一个现代的、基于WebSocket的SQL查询接口来弥合这一差距,该接口针对AI代理和MCP工具的请求/响应模式进行了优化。

安装

快速安装(IBM i SSH会话):

# 1. Install Mapepire using yum
yum install mapepire-server

# 2. Install Service Commander (if not already installed)
yum install service-commander

# 3. Start Mapepire service
sc start mapepire

[!注意] 📚 完整文档:Mapepire系统管理员指南→

[!重要] 重要提示:

  • 默认情况下,Mapepire在端口上运行 8076。配置时需要此端口号 DB2i_PORT 变量在你的 .env 文件。
  • 确保您的IBM i防火墙允许端口8076上的入站连接
  • 对于生产部署,配置SSL/TLS证书(请参阅官方指南)


许可证

此项目根据Apache许可证2.0获得许可。请参阅 许可证 文件以获取详细信息。