loading…
Search for a command to run...
loading…
Enables AI agents to interact with IBM i systems through the Model Context Protocol, providing secure SQL-based access to Db2 for i databases for querying, moni
Enables AI agents to interact with IBM i systems through the Model Context Protocol, providing secure SQL-based access to Db2 for i databases for querying, monitoring, and executing operations.

TypeScript
Model Context Protocol SDK
MCP Spec Version
License
Status
Ask DeepWiki
MCP server and CLI for IBM i
The IBM i MCP Server enables AI agents to interact with IBM i systems through the Model Context Protocol (MCP). It provides secure, SQL-based access to Db2 for i databases, allowing AI applications like Claude, VSCode Copilot, Bob, and custom agents to query system information, monitor performance, and execute database operations.
This repo also ships the ibmi CLI (@ibm/ibmi-cli) — a terminal-first sibling that shares the same YAML-driven SQL tool engine, so the same tool definitions work in both the MCP server and the CLI.

How it works: AI clients connect via MCP → Server executes YAML-defined SQL tools → Results stream back to the AI agent through Mapepire.
[!TIP] 📚 Official Documentation | ⚠️ Docs are under active development
The Docs are continuously evolving. Please check back frequently for updates and new guides. If there's something missing, feel free to open an issue!
| Directory | Purpose | Documentation |
|---|---|---|
packages/server/ |
MCP server implementation (TypeScript) — @ibm/ibmi-mcp-server on npm |
Server README |
packages/cli/ |
ibmi command-line interface — @ibm/ibmi-cli on npm, co-versioned with the server |
CLI README |
tools/ |
YAML-based SQL tool configurations | Tools Guide |
agents/ |
AI agent examples and integrations | Agents Guide |
client/ |
Python client examples for testing | Client README |
deployment/ |
Docker, Podman, OpenShift configs | Deployment Guide |
app/ |
Example Full stack Agent app (AgentOS) | App README |
The MCP Server enables AI agents to execute SQL queries on IBM i systems through YAML-defined SQL tools.
Prerequisites:
Get Started:
Clone the repository:
git clone https://github.com/IBM/ibmi-mcp-server.git
cd ibmi-mcp-server
Configure your IBM i connection:
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
Start the server:
npx -y @ibm/ibmi-mcp-server@latest \
--transport http \
--tools ./tools/performance/performance.yaml
The server will use our pre-configured tools for:
- 📊 Performance monitoring (system status, memory pools, active jobs)
- See the Tools Guide for more toolsets.
The MCP server can also run in a Docker container:
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
Replace the volume paths with your actual local paths to the tools directory and
.envfile.
Verify it's running:
# 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
[!NOTE] 📖 Full Server Quickstart →
Next Steps:
- Create Custom Tools - Build your own SQL tools
- Connect AI Clients - Integrate with Claude, VSCode, Bob, etc.
Additional links:
- Server README
- Server Configuration
- Looking for the terminal CLI instead? Jump to IBM i CLI.
A terminal-first sibling to the MCP server. The ibmi command shares the same YAML-driven SQL tool engine and is designed for local exploration, ad-hoc queries, scripted automation, and CI/CD — no MCP client required.
# 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
Both tools sit on top of the same YAML tool engine. The MCP Server is the de facto interface for building AI agents and multi-client AI workloads. The CLI covers everything else — and also serves as a lightweight, process-local alternative when a full MCP server is overkill.
| Use the CLI when… | Use the MCP Server when… |
|---|---|
| You need developer ergonomics — an interactive terminal experience for querying Db2 for i, exploring schemas, scripting in shell/CI, or piping results into other tools | You are building AI agents or AI-powered applications that should call IBM i tools conversationally (Claude Desktop, VSCode Copilot, Bob, Agno, LangChain, custom agents) |
You are running a local AI agent and want the CLI as a lightweight, in-process alternative to a long-lived MCP server — e.g., a coding agent that shells out to ibmi sql or ibmi tool as part of its loop |
You need remote server support over the MCP protocol, including stdio or HTTP transports |
You want fast synchronous execution against one or many systems with rich output formats (table, json, csv, markdown, NDJSON) and no server process to manage |
You need shared, networked access with auth, rate limiting, structured telemetry, and session handling |
See the CLI Agent Integration guide for concrete examples of wiring the
ibmiCLI into local AI agents.
[!NOTE] 📖 Full Documentation: CLI Guide →
Additional links:
YAML-based SQL tool configurations that define what queries AI agents can execute on your IBM i system.
Create a custom tool file 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
Run the server with your tools:
npx -y @ibm/ibmi-mcp-server@latest --tools ./tools/my-tools.yaml --transport http
The tools/ directory includes ready-to-use configurations:
[!NOTE] 📖 Full Documentation: Tools Guide →
Additional links:
Pre-built AI agent examples using popular frameworks to interact with IBM i systems through the MCP Server.
| Framework | Language | Use Case | Documentation |
|---|---|---|---|
| Agno | Python | Production-ready agents with built-in observability | Agno README |
| LangChain | Python | Complex workflows and tool chaining | LangChain README |
| Google ADK | Python | Google AI ecosystem integration | Google ADK README |
[!NOTE] 📖 Full Documentation: Agents Guide →
Additional links:
Simple Python client examples for testing and interacting with the MCP Server.
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())
[!NOTE] 📖 Full Documentation: Client README →
Additional links:
Production-ready deployment configurations for containerized environments.
Before you can use the ibmi-mcp-server, you must install and configure Mapepire on your IBM i system.
Mapepire is a modern, high-performance database server for IBM i that provides SQL query execution capabilities over WebSocket connections. It acts as a gateway between modern application architectures (like MCP servers, AI agents, and REST APIs) and IBM i's Db2 for i database.
Traditional IBM i database access methods (ODBC, JDBC) don't align well with modern AI and MCP architectures that require:
Mapepire bridges this gap by providing a modern, WebSocket-based SQL query interface that's optimized for the request/response patterns of AI agents and MCP tools.
Quick Install (IBM i SSH Session):
# 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
[!NOTE] 📚 Full Documentation: Mapepire System Administrator Guide →
[!IMPORTANT] Important Notes:
- By default, Mapepire runs on port
8076. You'll need this port number when configuring theDB2i_PORTvariable in your.envfile.- Ensure your IBM i firewall allows inbound connections on port 8076
- For production deployments, configure SSL/TLS certificates (see official guide)
This project is licensed under the Apache License 2.0. See the LICENSE file for details.
Выполни в терминале:
claude mcp add ibm-i-mcp-server -- npx