v0.5.1 #147
ajshedivy
announced in
Announcements
v0.5.1
#147
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
IBM i MCP Server v0.5.1
This release consolidates everything shipped on top of v0.4.5 into the first GitHub Release of the 0.5.x line — the v0.5.0 tag was cut but never published as a GitHub Release, so the notes below cover the full
v0.4.5...v0.5.1span.Overview
@ibm/ibmi-cli— Theibmicommand-line tool now ships as its own npm package with a stable public API surface on the serverrowsToFetch/fetchAllRows) — per-tool config for explicit page sizesJDBCOptionsthrough per-source YAML (or theDB2i_JDBC_OPTIONSenv var) for naming convention, library list, isolation level, and other connection tunablesibmi toolexecution — YAML tool runs now flow through the sameSqlSecurityValidatoras the built-inexecute_sqltool, blocking write statements in read-only contexts before they reach the databaseIBMI_PAGINATION_DEFAULT_PAGE_SIZE/IBMI_PAGINATION_MAX_ROWSconfigure the page size and max row ceiling for paginated toolsDocumentation | CLI Guide | SQL Tools Reference
New Features
Monorepo split —
@ibm/ibmi-mcp-serverand@ibm/ibmi-cliThe repository is now an npm workspaces monorepo shipping two co-versioned packages. The
ibmibinary no longer ships with@ibm/ibmi-mcp-server— install each package for the surface you want:Documentation: CLI Guide
Reference: #144
JDBC connection options on YAML sources
Source definitions now accept a passthrough
jdbc-optionsblock mapped directly to Mapepire'sJDBCOptions. Customize the underlying JDBC connection (naming convention, library list, transaction isolation, date format, or any other JDBC tunable) without forking the pool.For containerized deployments that can't ship YAML, the same options can be supplied via the
DB2i_JDBC_OPTIONSenvironment variable as a JSON object. The env var merges into each source on a per-key basis, with YAML taking precedence when both set the same key.Documentation: Sources configuration
Reference: #141
Row fetch controls:
rowsToFetchandfetchAllRowsTool authors can now decide per-tool whether a query runs with an explicit page size, streams every matching row, or combines both for custom paginated streaming. The two fields compose instead of colliding —
fetchAllRows: trueis the pagination policy, and whenrowsToFetchis also set it becomes the per-fetch page size.Both fields are optional and can be omitted for the pool default. Streaming is bounded by the new pagination ceiling (below), so
fetchAllRows: truecan't accidentally pull an unbounded result set.Documentation: Tools parameter reference
Reference: #142, #146
Pagination safety ceiling and tunables
Paginated tools now terminate at a row-based ceiling rather than a fixed iteration count. Previously the internal loop stopped after 100
fetchMorecalls, so a larger per-fetch page size implicitly granted a proportionally larger cap. The ceiling is now measured in accumulated rows, so behavior is deterministic regardless of page size. Two new env vars let developers tune both values:When a result hits the ceiling, the server logs a warning, flags the response with
truncated: true, and the CLI footer shows(result capped — raise IBMI_PAGINATION_MAX_ROWS or narrow the query)so callers know output was clipped. The built-inexecute_sqltool now inherits the same ceiling — previously it hard-coded a 1000-row page size with an effective ~100,000-row cap, inconsistent with YAML tools.Reference: #146
SQL security validation on
ibmi toolexecutionYAML tool runs now flow through the same
SqlSecurityValidatorused by the built-inexecute_sqltool. Write statements in read-only contexts are rejected before they reach the database — an additional safety layer on top of existingreadOnlyHinttool configuration.No action required for existing YAML tools. Tools declared with
readOnlyHint: true(or run under the CLI's--read-onlyflag) are validated automatically.Reference: #136
Breaking Changes
ibmibinary moved to@ibm/ibmi-cliThe CLI no longer ships with
@ibm/ibmi-mcp-server. Upgrading from 0.4.x requires installing@ibm/ibmi-cliseparately. Runtime MCP server usage vianpx -y @ibm/ibmi-mcp-server@latest ...is unchanged — only local CLI installs are affected.Migration:
The two packages co-version on every release — installing
@ibm/ibmi-cli@0.5.1always pulls in@ibm/ibmi-mcp-server@0.5.1.What's Changed
Full Changelog: v0.4.5...v0.5.1
This discussion was created from the release v0.5.1: fix(docker): build from repo root for npm workspaces layout.
All reactions