All notable changes to this project will be documented in this file. See standard-version for commit guidelines.
0.5.1 (2026-04-20)
Consolidates the fetch-limit UX introduced in 0.5.0 before downstream adoption locks in the current behavior (#146). Ships CI reliability fixes and root-level README coverage for the new two-package layout.
-
rowsToFetchandfetchAllRowsnow compose instead of colliding.fetchAllRows: trueis the pagination policy; whenrowsToFetchis also set it becomes the per-fetch page size. The previous "rowsToFetchwins,fetchAllRowsignored" precedence rule has been removed — the warning log it emitted is gone too, since the two fields no longer conflict. YAML tools that set only one field behave identically; tools that set both now paginate with a custom page size instead of silently ignoringfetchAllRows. -
Pagination safety ceiling is now row-based, not iteration-based. The internal loop now terminates at
IBMI_PAGINATION_MAX_ROWSrows of accumulated data rather than at 100fetchMoreiterations, so the effective row ceiling is stable regardless of per-fetch page size. Previously a larger page size implicitly granted a proportionally larger cap. When a result is truncated at the ceiling, the server emits a warning log and flags the response; the CLI surfaces the truncation in its output footer. -
execute_sqlbuilt-in tool inherits shared pagination defaults. Previously hard-coded a 1000-row page size, producing an effective ~100,000-row ceiling inconsistent with YAML tools. Now readsIBMI_PAGINATION_DEFAULT_PAGE_SIZE/IBMI_PAGINATION_MAX_ROWSfrom config — matching every YAML tool and the documented 30,000-row cap. Operators running bulk CLI exports can raiseIBMI_PAGINATION_MAX_ROWS.
-
Two new environment variables for tuning pagination:
IBMI_PAGINATION_DEFAULT_PAGE_SIZE(default1000) — rows perfetchMorecall when a tool paginates without specifying its own page size.IBMI_PAGINATION_MAX_ROWS(default30000) — hard upper bound on total rows from a paginated tool call.
-
CLI truncation display. The
ibmi tool runfooter now shows(result capped — raise IBMI_PAGINATION_MAX_ROWS or narrow the query)when a paginated result hits the ceiling, so callers know the output was clipped.
- Publish workflow is now idempotent. The release workflow skips
npm publishwhen the target version already exists in the registry, so re-running on a failed job won't collide with a successful upload. Adds aworkflow_dispatchtrigger for manual re-runs against an existing tag (e265a65).
- Root README rewritten for the two-package layout. Top-level README now explains the split between
@ibm/ibmi-mcp-serverand@ibm/ibmi-cli, clarifies install paths for each, and links into Mintlify + package READMEs as the authoritative deep-dive sources (c22ebf2).
No YAML changes required. Tools that set only rowsToFetch or only fetchAllRows behave as before. Tools that set both fields will now paginate with the custom page size instead of the previous "rowsToFetch wins" behavior — if that transition is undesirable, remove fetchAllRows. Callers relying on execute_sql to return up to ~100,000 rows should raise IBMI_PAGINATION_MAX_ROWS explicitly; otherwise the effective ceiling is now the documented 30,000.
0.5.0 (2026-04-20)
This release splits the ibmi command-line tool into its own @ibm/ibmi-cli npm package, adds first-class JDBC connection tuning to YAML sources, introduces per-tool row-fetch controls, and extends the SQL security validator to cover ibmi tool execution.
-
CLI split into
@ibm/ibmi-cli— Theibmibinary no longer ships with@ibm/ibmi-mcp-server. Upgrading from 0.4.x requires installing both packages. Runtime MCP server usage (npx -y @ibm/ibmi-mcp-server@latest ...) is unchanged.Migration:
# Before (v0.4.x) — one install, both binaries npm i -g @ibm/ibmi-mcp-server # After (v0.5.0) — separate packages npm i -g @ibm/ibmi-mcp-server # provides `ibmi-mcp-server` npm i -g @ibm/ibmi-cli # provides `ibmi`
@ibm/ibmi-cliexact-pins its@ibm/ibmi-mcp-serverdependency, so installing@ibm/ibmi-cli@0.5.0always pulls in@ibm/ibmi-mcp-server@0.5.0— the two packages co-version on every release (#144).
-
Monorepo split —
@ibm/ibmi-cliships as its own package. TheibmiCLI is now a standalone npm package.@ibm/ibmi-mcp-serverexposes a stable public API surface via subpath exports (/tools,/services,/context,/formatting) that downstream agents and the CLI import directly — treat these subpaths as the contract (#144) -
JDBC connection options on YAML sources. Sources now accept a
jdbc-optionspassthrough block mapped directly to Mapepire'sJDBCOptions— naming convention, library list, transaction isolation, date format, and any other JDBC-level tunable. Options may also be supplied via theDB2i_JDBC_OPTIONSenvironment variable for containerized deployments (env overrides YAML on a per-key basis) (#141) -
Per-tool row fetch controls (
rowsToFetch/fetchAllRows). SQL tools can now decide per-tool whether a query caps at a fixed page size (rowsToFetch: <n>) or streams every matching row (fetchAllRows: true). When both are set,rowsToFetchtakes precedence as the safer default and a warning is logged (#142, precedence clarified in #145) -
SQL security validation on
ibmi toolexecution. YAML tool runs now flow through the sameSqlSecurityValidatorused 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 (#136)
- Documentation: Updated installation commands and paths in the getting-started guide and configuration docs to match the new two-package layout (21a4c1c, 955e71e)
0.4.5 (2026-03-24)
ibmi describecommand: Generate DDL (CREATE statements) for one or more SQL objects usingQSYS2.GENERATE_SQL. Accepts comma-delimitedLIBRARY.OBJECTreferences with an optional--typeflag for views, indexes, procedures, and other object types (#132)- Multi-system SQL execution: Run the same SQL query against multiple IBM i systems in parallel with
ibmi sql "..." --system dev,prod. Results include aSYSTEMcolumn and per-system timing. JSON output provides an aggregate envelope withsystems_ok/systems_failedcounts (#132)
- Container security: Update Dockerfile base image and apply OS-level package upgrades to resolve CVEs in
libcrypto3,libssl3, and bundled npm dependencies (minimatch,tar,glob,cross-spawn,flatted) (#134)
0.4.4 (2026-03-15)
- CLI Database Commands: Fix
ibmi sqland other database commands failing with "Db2i configuration not found" when run from directories without a.envfile. The global config (~/.ibmi/config.yaml) now correctly provides credentials to all CLI commands regardless of working directory (#131)
0.4.3 (2026-03-15)
- audit npm security fixes (ecb451a)
0.4.2 (2026-03-09)
-
--builtin-toolsCLI Flag: Fix--builtin-toolsflag not registering the default text-to-SQL toolset. ES module evaluation timing caused tool definitions to be captured before CLI overrides were applied; tool registration now defers config evaluation to runtime (2134d79) -
UDTF Column Validation Transparency:
validate_querynow reports columns from UDTF output (e.g.,TABLE(SYSTOOLS.AUDIT_JOURNAL_CP(...))) as "skipped" instead of silently passing validation. Skipped columns are surfaced in the response so users can manually verify they match the function's result set (2134d79)
0.4.1 (2026-03-06)
- cli: IBMI_ENABLE_DEFAULT_TOOLS now defaults to false. Users who relied on the default text-to-SQL toolset must pass --builtin-tools or set IBMI_ENABLE_DEFAULT_TOOLS=true.
Signed-off-by: Adam Shedivy ajshedivyaj@gmail.com
- cli: add --builtin-tools and --execute-sql flags with opt-in defaults (4437369)
- env: update .env.example with new tool configurations and rate limiting settings (f2bbd12)
0.4.0 (2026-03-06)
- IBM i CLI: New command-line interface for querying and managing IBM i systems directly from the terminal. Includes multi-system configuration, YAML tool execution, and an interactive agent mode for natural language workflows (#126)
- Default Text-to-SQL Toolset: Ship a built-in toolset with paginated result support, enabling AI agents to query IBM i databases out of the box without custom YAML configuration (#120)
- Security Dependency Updates: Patch
hono(4.11.4 → 4.12.5) and@hono/node-server(1.19.7 → 1.19.11) to fix arbitrary file access via serveStatic, authorization bypass via encoded slashes, SSE injection, and cookie attribute injection vulnerabilities (#341, #342, #343, #344)
- CLI Reference Guide: Add comprehensive CLI documentation with 7 pages covering getting started, commands, configuration, YAML tools, output formats, and agent integration (#127)
0.3.2 (2026-03-04)
- Connection Pool Timeouts: Configure idle connection cleanup and per-query timeouts to prevent resource leaks and long-running queries. Set
IBMI_POOL_IDLE_TIMEOUT_MSandIBMI_POOL_QUERY_TIMEOUT_MSenvironment variables to tune pool behavior for your workload (#121), closes #117
- Container Deployment Guide: Add comprehensive instructions for running the MCP server in Docker, Podman, and OpenShift containers, including multi-architecture image support (#116)
0.3.1 (2026-02-22)
- Configurable Rate Limiting: Control request rate limits via environment variables (
RATE_LIMIT_MAX,RATE_LIMIT_WINDOW_MS,RATE_LIMIT_SKIP_IN_DEV) for fine-tuned protection in production deployments (#112) - Text-to-SQL Tools: Add pre-built Text-to-SQL toolset and sample employee information toolset for natural language database querying (#103)
- YAML Tool Security Validation: Enforce SQL security validation on authenticated IBM i HTTP routes, closing a gap where YAML-defined tools bypassed read-only checks (#108)
- Container Images: Build and publish multi-architecture container images with release-triggered CI workflows
0.3.0 (2026-01-26)
-
VS Code DB2i SQL Parser Integration: Integrate experimental SQL parser from Code for IBM i VS Code extension (#97) (f261684)
- Add comprehensive SQL parsing capabilities for Db2 for i syntax
- Refactor SQL Security Validator to use VS Code DB2i parser for improved accuracy
- Implement regex-based fallback validation for unparseable SQL queries
- Add extensive test coverage for SQL tokenization, statement parsing, and security validation
- Enhance SQL token and statement analysis with 2,000+ lines of parsing logic
- See language parser README for technical details
-
Read-Only SQL Execution Mode: Add security validation for read-only SQL operations (#92) (4f7b396)
- Introduce
IBMI_EXECUTE_SQL_READONLYenvironment variable to enforce read-only mode - Implement SQL syntax validation using IBM i's native
PARSE_STATEMENTstored procedure - Prevent execution of write operations (INSERT, UPDATE, DELETE, CREATE, etc.) when enabled
- Add comprehensive security checks to detect forbidden keywords and operations
- Include detailed documentation and configuration examples for security-conscious deployments
- Add 500+ lines of unit tests covering various SQL scenarios and validation cases
- Introduce
- SQL Template Syntax: Replace deprecated template syntax with named parameters (#95) (cac3c22), closes #94
- Update
check_command_audit_settingstool to use:command_namesnamed parameter syntax instead of deprecated{{command_names}}template syntax - Ensures compatibility with latest Mapepire query parameter handling
- Update
-
Tool Consolidation: Streamline default tools and implement factory pattern (#91) (3a5e1e6)
- Remove obsolete tools and test infrastructure (DuckDB service, cat fact fetcher, echo tool, image test tool)
- Consolidate
execute_sqlandgenerate_sqltools into single-file implementations - Implement centralized factory pattern for tool registration and management
- Add configuration support for built-in
execute_sqltool - Clean up codebase with net reduction of ~3,600 lines across 55 files
- Add comprehensive unit tests for tool factory functionality
-
Transport Layer Modernization: Update dependencies and refactor transport managers (#93) (d534e3c)
- Upgrade
@modelcontextprotocol/sdkto version 1.25.2 - Add OpenTelemetry dependencies (
@opentelemetry/api,@opentelemetry/sdk-node) for enhanced observability - Refactor transport managers to use
WebStandardStreamableHTTPServerTransport - Migrate from Node.js-specific APIs to Web Standards API for better cross-platform compatibility
- Remove deprecated utility files (
headerUtils.ts,honoNodeBridge.ts) - Implement cleanup transform stream for improved resource management
- Simplify request handling with unified
webRequestinterface
- Upgrade
-
Developer Tools: Add debug deployment script and update format script (3bd2d2e)
- Enhance development workflow with debugging utilities
- Update code formatting scripts for consistency
0.2.0 (2025-12-18)
-
OpenShift Deployment: Add complete OpenShift deployment configuration for both MCP server and gateway (#70) (b0a7550)
- Add Kubernetes manifests for OpenShift deployment (BuildConfig, Deployment, Service, Route, ImageStream)
- Configure MCP Context Forge gateway deployment with persistent volume claims
- Include health check endpoints and container orchestration
- Add comprehensive deployment documentation and instructions
-
Production Web Server Support: Add nginx configuration guide for production deployments (#72) (22c5153)
- Document nginx reverse proxy setup for MCP server
- Include WebSocket upgrade configuration
- Provide sample nginx configuration for production use
-
Major Documentation Reorganization: Comprehensive restructuring of documentation for improved clarity and usability (#83) (f3d5857)
- Reorganize README structure with clear navigation and table of contents
- Enhance quick start guide with detailed SQL tool creation examples
- Add documentation for pre-built toolsets and custom tool configuration
- Move server-specific documentation to server directory
- Simplify agent framework documentation
- Add IBM Bob integration documentation
- Update references to use latest npm package naming
- Remove outdated agent and response format documentation
- Add IBM i authentication guide
- Fix logo duplication and improve formatting
-
SQL Tools Documentation: Update quickstart guide with enhanced SQL tools section covering both pre-built and custom tool options (8ba6902)
-
Documentation Site Links: Add links to documentation site in README (76b0ceb)
-
README Improvements: Multiple formatting and content improvements
- Logging Configuration: Fix logging configuration and directory management (#84) (2bcaa1f)
- Update logging documentation for clarity on log levels and directory configurations
- Modify logger initialization to support reinitialization based on CLI arguments
- Improve directory handling for logs with home directory expansion support (~/)
- Add validation for log directory paths
-
Dependency Management: Optimize dependency classification for production builds (#75) (5dd16b3)
- Move glob from devDependencies to production dependencies
- Move vite to devDependencies for cleaner production builds
- Update Dockerfile to copy only production dependencies during image build
-
Developer Tools: Add script to list pull requests and categorize commits by conventional type (0447f1d)
- Facilitate release management and changelog generation
- Support analysis of commits between version tags
-
Issue Templates: Update and streamline GitHub issue templates (9e37c05, 1fdaf63)
- Remove outdated templates for bug reports, feature requests, and SQL tool requests
- Update remaining templates for current project structure
0.1.2 (2025-12-11)
First public release of the IBM i MCP Server - a Model Context Protocol server for IBM i database operations and AI agent workflows.
- Mapepire Connector: Integration with IBM i database via Mapepire for secure, efficient SQL execution
- Execute SQL Tool: Dynamic SQL execution against IBM i databases with comprehensive parameter handling
- YAML Tool Configuration: Support for YAML-based SQL tool definitions with parameter validation
- Connection Pooling: Efficient connection management for IBM i database access
- IBM i HTTP Authentication: Encrypted authentication handshake for secure IBM i connections
- Token Management: Secure token-based authentication with automatic renewal
- Multiple Auth Modes: Support for JWT and OAuth 2.1 authentication strategies
- Security Tools: IBM i system security operations and configuration tools
- Google ADK Integration: Support for Google Agent Development Kit workflows
- Agno Agent Examples: Pre-configured examples for Agno agent framework
- LangChain Support: Comprehensive integration with LangChain agents framework
- Agent Configuration: Unified AgentRunConfig for consistent agent setup
- Stdio Client: Example stdio client implementation for MCP server interaction
- Client Examples: Multiple client configuration examples and quickstart guides
- Client Logging: Support for client-side logging and setLevel requests
- MCP_SERVER_CONFIG Support: Enhanced .env loading with MCP_SERVER_CONFIG environment variable
- Flexible Configuration: Schema-based environment variable validation with string-to-boolean conversion
- Bob MCP Configuration: Tool builder instructions and configuration examples
- Comprehensive Guides: Detailed documentation for setup, configuration, and usage
- API Documentation: Complete API reference with examples
- Agent Examples: Multiple agent implementation examples and patterns
- Mint Documentation: Integration with Mintlify for enhanced documentation experience
- CLI Tools: MCP command-line tools for server management
- Dependabot: Automated dependency updates configured
- Release Automation: Standardized release process with semantic versioning
- Update OpenTelemetry dependencies and reorganize package structure
- Add missing dotenv dependency for access token script
- Remove duplicate security checks in system library tools
- Update path references from prebuiltconfigs to tools
- Add error handling for JSON parsing in MCP client
- Fix logger warnings and test assertions
- Fix server deployment issues on Power systems
- Update package name to @ibm/ibmi-mcp-server
- Configure GitHub Actions for npm publishing
- Add comprehensive testing infrastructure
- Update dependencies and development tooling