IBM Db2 for i

io.github.Strom-Capital由 GitHub 帳號 Strom-Capital 發布v3.8.6更新於 Nov 7, 2026

Read-only SQL queries and schema inspection for IBM Db2 for i over ODBC, JT400 or Mapepire (SSH).

已驗證STDIO僅桌面資料庫資料與分析

概覽

AI 產生的概覽

為 IBM i 上的 Db2 for i 提供唯讀 SQL 查詢與結構檢視,讓助理瀏覽資料庫、資料表與檢視表並執行 SELECT 語句。

可以做什麼
  • 執行具結果筆數上限與逾時的唯讀 SELECT 查詢,並可將完整結果匯出為 CSV 或 XLSX
  • 列出並搜尋各資料庫中的 schema、資料表與欄位,檢視資料表的欄位資訊
  • 檢視檢視表、索引、限制條件、常式及其參數,以及物件 DDL 與相依物件
  • 在不執行的情況下驗證語句,分析資料表統計資訊,檢視日誌設定與索引建議
  • 從 YAML 載入業務說明與審核過的 SQL 工具,並搜尋 IBM i 服務
適用情境
適合需要探索 IBM i ERP 或 Db2 for i 資料庫的情境:撰寫 API 前找出資料表與主鍵、為 ETL 與 BI 剖析來源資料表、複寫前檢查日誌設定,或以自然語言回答業務問題。
執行需求
需要 Node.js 22 以上版本,以 stdio 在本機執行。預設 odbc 驅動需要 unixODBC 與 IBM i Access ODBC 驅動;選用的 jt400 驅動安裝時需 JDK、執行時需 JRE 11 以上;選用的 mapepire 驅動需 SSH 存取及 IBM i 上的 Java 8 以上。需設定 DB2I_HOSTNAME、DB2I_USERNAME 與 DB2I_PASSWORD,且 IBM i 版本須為 V7R3 以上。
安裝前請注意
伺服器持有 IBM i 憑證(DB2I_PASSWORD)並連線生產系統,應嚴格限制使用的使用者設定檔與 QUERY_ALLOWED_SCHEMAS。雖僅允許 SELECT,但啟用 EXPORT_ENABLED 後查詢結果可匯出為檔案或下載連結,稽核日誌會記錄工具呼叫。選用的 HTTP 傳輸會增加 OAuth 或 bearer 權杖登入。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 IBM Db2 for i,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[db2i/mcp logo: a route from a small round node to a blue square, next to the db2i/mcp wordmark]

Db2 for i MCP Server

[CI] [npm version] [License: MIT] [MCP] [IBM i] [TypeScript] [Node.js] [Docker] [npm downloads] [Sponsor]

mcp-server-db2i is a Model Context Protocol (MCP) server for IBM Db2 for i (Db2i) on IBM i (AS/400). It enables AI assistants like Claude and Cursor to query and inspect IBM i databases through the IBM i Access ODBC driver, or optionally the JT400 JDBC driver or Mapepire over SSH.

Listed in the MCP Registry as io.github.Strom-Capital/mcp-server-db2i.

Website: db2i-mcp.com, with a blog that explains each release. Docs: docs.db2i-mcp.com.

Architecture

AI clients connect to the MCP Server in one of two ways. Local clients such as Claude Desktop, Claude Code and Cursor can start it as a process and talk over stdio. Remote clients connect over Streamable HTTP at /mcp, signing in with OAuth 2.1 (claude.ai custom connectors) or a bearer token (custom agents). Local clients can also use the HTTP endpoint. The server executes read-only queries against Db2 for i using the IBM i Access ODBC driver (default, no Java), the optional JT400 JDBC driver (DB2I_DRIVER=jt400), or Mapepire over SSH (DB2I_DRIVER=mapepire) for systems where only SSH is reachable. One server can reach several IBM i systems through connection profiles, each with its own driver.

mermaid
graph LR    subgraph clients ["AI Clients"]        local("Claude Desktop, Claude Code, Cursor")        remote("claude.ai connectors")        agents("Custom Agents")    end
    subgraph server ["MCP Server"]        stdio["stdio"]        http["Streamable HTTP + Auth"]        tools[["MCP Tools"]]        profiles{{"System profiles"}}        odbc["IBM i Access ODBC"]        jdbc["JT400 JDBC (optional)"]        mapepire["Mapepire over SSH (optional)"]    end
    subgraph prod ["IBM i: prod"]        db2prod[("Db2 for i")]    end
    subgraph test ["IBM i: test"]        db2test[("Db2 for i")]    end
    subgraph dev ["IBM i: dev"]        db2dev[("Db2 for i")]    end
    local -->|local process| stdio    local -.->|remote URL| http    remote -->|OAuth 2.1| http    agents -->|bearer token| http    stdio & http --> tools    tools --> profiles    profiles --> odbc & jdbc & mapepire    odbc -->|ODBC| db2prod    jdbc -->|JDBC| db2test    mapepire -->|SSH| db2dev

Features

  • Read-only SQL queries - Execute SELECT statements safely with automatic result limiting, and a query timeout that cancels runaway statements on the IBM i
  • Schema inspection - List all schemas/libraries with optional filtering
  • Table metadata - List tables, describe columns, view indexes and constraints
  • View inspection - List and explore database views
  • Secure by design - Only SELECT queries allowed, credentials via environment variables
  • Docker support - Run as a container for easy deployment
  • HTTP Transport - MCP over Streamable HTTP with token authentication for remote clients and agents
  • OAuth for Remote Clients - Built-in OAuth 2.1 sign-in with the user's own IBM i profile, so claude.ai custom connectors can connect. The sign-in page can carry your company's name, logo, colors and language (Customize for your company)
  • Current MCP spec - Speaks 2026-07-28 and still serves stateless 2025-era clients
  • Dual Transport - Run stdio and HTTP simultaneously
  • Multiple systems - Reach several IBM i systems from one server with DB2I_PROFILES, each with its own driver, credentials, and library allowlist. Tools take an optional system argument. See Multiple systems
  • SSH-only systems - With DB2I_DRIVER=mapepire, reach an IBM i where only SSH is open. Mapepire starts inside the SSH session, with no server install and a host key check. See Using the Mapepire driver
  • Tool selection - Enable or disable individual tools, e.g. a metadata-only mode without execute_query
  • Business SQL tools - Load read-only ERP queries and table notes from YAML, and check the files with mcp-server-db2i validate-tools before the server starts. See Business SQL tools
  • Server instructions - Send the rules no query may miss, such as which flag marks a deleted row, to the model at the start of every session. See Instructions
  • Charts in the chat - Hosts that support MCP Apps show query results as a sortable grid under the tool call, with a chart one click away. When the user asks for a chart, or a YAML tool sets one, it opens on the chart. See Result view
  • Compact responses - Compact JSON by default, or markdown tables to save tokens
  • Statement checks and DDL - Validate object names, return the SQL that recreates an object, and list what depends on a table
  • Catalog search and profiling - Find tables and columns across libraries, check journaling, and profile a table's row counts and value ranges
  • Column masking - Redact sensitive columns, or show only their last four characters, in query results. See Column masking
  • Query exports - Hand the user a CSV or Excel file of a query's results, as a file path over stdio or a short-lived download link over HTTP. The rows never pass through the model. See Query exports
  • Audit log - Record every tool call and sign-in as one JSON line, with the SQL hashed by default. Optionally record the model's reason for each call (MCP_TOOL_INTENT). See Audit log
  • Tool reload - Reload YAML tool files when they change, with MCP_CUSTOM_TOOLS_WATCH=true
  • Resources and prompts - Read table columns and DDL as MCP resources, and start from prompts that explore a library, explain a table, or write a query. See Resources and prompts

Quick Start

Installation

bash
npm install -g mcp-server-db2i

The default odbc driver needs unixODBC and the IBM i Access ODBC Driver on the machine. No Java is needed. The other drivers' packages are not installed by default, so add them next to the server:

bash
npm install -g mcp-server-db2i node-jt400              # DB2I_DRIVER=jt400, needs a JDK to install and a JRE to runnpm install -g mcp-server-db2i @ibm/mapepire-js ssh2   # DB2I_DRIVER=mapepire, when only SSH reaches the IBM i

With npx, pass them with -p, for example npx -y -p mcp-server-db2i@latest -p node-jt400 mcp-server-db2i. See Installing the jt400 and mapepire packages.

Or with Docker:

bash
docker build -t mcp-server-db2i .                  # odbc image (amd64; add --platform linux/amd64 on arm64)docker build --target jt400 -t mcp-server-db2i .   # jt400 image (builds natively on arm64)

Configuration

Create a .env file with your IBM i credentials:

env
DB2I_HOSTNAME=your-ibm-i-host.comDB2I_USERNAME=your-usernameDB2I_PASSWORD=your-passwordDB2I_SCHEMA=your-default-schema  # Optional

Client Setup

Add to your MCP client config (e.g., ~/.cursor/mcp.json):

json
{  "mcpServers": {    "db2i": {      "command": "npx",      "args": ["-y", "mcp-server-db2i@latest"],      "env": {        "DB2I_HOSTNAME": "${env:DB2I_HOSTNAME}",        "DB2I_USERNAME": "${env:DB2I_USERNAME}",        "DB2I_PASSWORD": "${env:DB2I_PASSWORD}"      }    }  }}

This uses environment variable expansion to keep credentials out of config files. Set the variables in your shell profile (~/.zshrc or ~/.bashrc).

See the Client Setup Guide for Cursor, Claude Desktop, Claude Code, and Docker setup options.

No MCP client? The example web app is a browser chat with result tables, exports and the business SQL tools. Users sign in with their IBM i user profile and bring their own model API key.

Available Tools

ToolDescription
execute_queryExecute read-only SELECT queries, with an optional chart hint for the result view
export_queryWrite every row of a read-only query to a CSV or XLSX file: a path over stdio, a short-lived download link over HTTP. Off unless EXPORT_ENABLED is set
list_schemasList schemas/libraries (with optional filter)
list_tablesList tables in a schema (with optional filter)
search_tablesFind tables by name or description across libraries
search_columnsFind columns by name or description across libraries
describe_tableGet detailed column information
list_viewsList views in a schema (with optional filter)
list_indexesList SQL indexes for a table
get_table_constraintsGet primary keys, foreign keys, unique constraints
list_routinesList SQL procedures and functions in a library, with language, external program, and SQL data access
describe_routineParameters, return value or result columns, and a call template for a procedure or function
validate_queryCheck a statement without running it, including catalog names
get_object_ddlReturn the SQL DDL that recreates an object
get_related_objectsList objects that depend on a table
get_journal_infoList journal, images, and primary key per table, and flag tables a replication tool cannot read
index_adviceList the indexes the query optimizer asked for in a library, merged and ranked by temporary index use
profile_tableRow count, last change, and per-column distinct and null counts from stored statistics or a scan
get_business_contextList business descriptions, row filters and relations loaded from YAML
search_ibmi_servicesFind IBM i services by keyword or category, with the release that added each one and an example query

In hosts that support MCP Apps, results from execute_query, profile_table and business SQL tools open as a grid and a chart under the tool call. See Result view.

[Three result views: stacked bars of order lines by warehouse and status, a line chart of monthly totals for three statuses, and a doughnut of orders by status with the total in the middle]

Filter Syntax

The list tools support pattern matching:

  • CUST - Contains "CUST"
  • CUST* - Starts with "CUST"
  • *LOG - Ends with "LOG"

Resources and prompts

Clients that support MCP resources can read a table's context without a tool call, and complete library and table names as you type.

ResourceContentsRegistered when
db2i://{schema}/{table}Columns from the catalog, plus the YAML business description, column notes, and relationsdescribe_table is enabled
db2i://{schema}/{table}/ddlSQL from QSYS2.GENERATE_SQL that recreates the table, view, or aliasget_object_ddl is enabled
db2i://business-contextEvery annotation loaded from MCP_CUSTOM_TOOLSget_business_context is enabled
ui://db2i/resultThe result view MCP Apps hosts show under tool resultsMCP_UI_ENABLED is on (the default)

resources/list offers the annotated tables, for example db2i://MYLIB/ORDERS. Percent-encode # and other reserved characters in names (ORD%23X for ORD#X). A library outside QUERY_ALLOWED_SCHEMAS is rejected with the same message execute_query gives, and completion offers only allowed libraries. Reads and completions that query IBM i count against the rate limit, and reads are written to the audit log. Completion fetches a library's name list once and reuses it for 60 seconds, so typing a name costs one query rather than one per keystroke.

PromptArgumentsWhat it asks for
explore_libraryschemaList the tables, describe the central ones, and summarize how they join
explain_tableschema, tableExplain rows, columns, keys, and relations in plain language
write_queryquestion, schema, tableWrite one SELECT from the table's real columns and YAML relations, then validate and run it when those tools are enabled

A prompt is listed only when the tools it tells the model to call are enabled: explore_library needs list_tables and describe_table, and the other two need describe_table. None of them asks for a write.

Use cases

I've used this server on projects where the source system was the Iptor DC1 ERP on IBM i. The same patterns work with any IBM i ERP.

  • Building REST APIs - The agent finds the ERP tables and keys, checks its SQL with validate_query, tests it on sample rows, and then writes the endpoint.
  • ETL and ELT pipelines for BI - Profile source tables, generate staging DDL with get_object_ddl, and draft incremental extracts and code mappings for the warehouse.
  • Near-real-time replication to BI - Check which tables are journaled, and with which images, before a journal-based tool such as Fivetran streams changes to the warehouse.
  • Ad-hoc analysis - Connect Claude or Cursor directly to the ERP and ask business questions in plain language, with vetted Business SQL tools and column masking for sensitive fields.

See Use cases for sample prompts and the guardrails that go with each one.

Example Usage

Once connected, you can ask the AI assistant:

  • "List all schemas that contain 'PROD'"
  • "Show me the tables in schema MYLIB"
  • "Describe the columns in MYLIB/CUSTOMERS"
  • "What indexes exist on the ORDERS table?"
  • "Run this query: SELECT * FROM MYLIB.CUSTOMERS WHERE STATUS = 'A'"
  • "Find the order header and line tables in MYLIB and write a GET /orders/:orderNo endpoint"
  • "Draft an incremental extract of MYLIB.ORDERHDR rows changed since yesterday"

Documentation

GuideDescription
Tools, resources, and promptsBuilt-in tools, filter syntax, MCP resources, and prompts
HTTP TransportHTTP API, auth, and protocol versions
ConfigurationAll environment variables and driver options
SecurityCredentials, rate limiting, query validation
Business SQL toolsYAML tools for orders, ledgers, and master data
Use casesREST APIs, BI pipelines, replication, and ad-hoc analysis
Client SetupCursor, Claude, Claude Code setup
Example web appBrowser chat with your own model key and IBM i sign-in
Docker GuideContainer deployment
DevelopmentContributing and local setup

Compatibility

  • IBM i V7R3 and later (V7R5 recommended)
  • validate_query and the execute_query parse check need QSYS2.PARSE_STATEMENT (IBM i 7.3 with Db2 PTF group SF99703 level 3, or 7.4 and later)
  • get_related_objects needs IBM i 7.3 Technology Refresh 9, IBM i 7.4 Technology Refresh 3, or a later release
  • get_journal_info needs the journal columns of QSYS2.OBJECT_STATISTICS (IBM i 7.3 Technology Refresh 2 or later)
  • search_ibmi_services needs QSYS2.SERVICES_INFO, which ships with the Db2 for i PTF group
  • The cause and recovery on a failed statement come from SYSTOOLS.SQLCODE_INFO. Without it, errors return the SQLSTATE, SQLCODE and message only
  • Node.js 22 or higher
  • unixODBC with the IBM i Access ODBC Driver for the default odbc driver, a JDK at install time and a JRE 11 or higher at runtime for the optional jt400 driver, or SSH access and Java 8 or higher on the IBM i for the optional mapepire driver (see Database Drivers)
  • MCP spec 2026-07-28, plus stateless clients from the 2025-era revisions (through 2025-11-25)

Related Projects

  • IBM ibmi-mcp-server - IBM's official MCP server for IBM i systems. Offers YAML-based SQL tool definitions and AI agent frameworks. Requires Mapepire. This project's mapepire driver uses Mapepire's SSH mode, which needs no Mapepire server running on the IBM i.

Contributing

Contributions are welcome! See the Development Guide for setup instructions.

License

MIT License - see LICENSE for details.

Trademarks

IBM, IBM i and Db2 are trademarks of International Business Machines Corporation. This project is not affiliated with or endorsed by IBM.

Acknowledgments

來源:README.md,提交 4e1a16d

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

21
  1. v3.8.6最新Nov 7, 2026
  2. v3.8.5Oct 29, 2026
  3. v3.8.3Oct 25, 2026
  4. v3.8.2Oct 25, 2026
  5. v3.8.1Oct 16, 2026
  6. v3.7.0Oct 15, 2026
  7. v3.6.1Oct 9, 2026
  8. v3.5.0Oct 1, 2026
  9. v3.4.0Sep 30, 2026
  10. v3.3.0Sep 30, 2026
  11. v3.1.0Sep 30, 2026
  12. v3.0.1Sep 29, 2026
  13. v3.0.0Sep 27, 2026
  14. v2.12.0Sep 27, 2026
  15. v2.11.0Sep 25, 2026
  16. v2.9.0Sep 25, 2026
  17. v2.8.0Sep 25, 2026
  18. v2.5.1Sep 24, 2026
  19. v2.5.0Sep 24, 2026
  20. v2.3.0Sep 24, 2026
  21. v2.2.1Sep 23, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分