MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

I
Ibmi MCP Server
by @IBM

MCP server(s) for agentic AI with IBM i

Created 10/1/2025
Updated 3 months ago
Repository documentation and setup instructions

alt text

TypeScript Model Context Protocol SDK MCP Spec Version License Status Ask DeepWiki NPM Version

📚 Documentation | ⚠️ Docs are under active development

MCP server for IBM i


Overview

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.

MCP Architecture

How it works: AI clients connect via MCP → Server executes YAML-defined SQL tools → Results stream back to the AI agent through Mapepire.

📁 Repository Structure

| Directory | Purpose | Documentation | |-----------|---------|---------------| | server/ | MCP server implementation (TypeScript) | Server 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 |

📖 Quick Navigation


🚀 MCP Server

The MCP Server enables AI agents to execute SQL queries on IBM i systems through YAML-defined SQL tools.

Quick Start

Prerequisites:

  • Mapepire installed on IBM i
  • Node.js 18+ installed

Steps:

  1. Create configuration file:

    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
    
  2. Run the server:

    export MCP_SERVER_CONFIG=.env
    npx -y @ibm/ibmi-mcp-server@latest --transport http --tools ./tools
    
  3. Verify it's running:

    curl http://localhost:3010/healthz
    

What You Can Do

  • Connect AI Clients: Claude Desktop, VSCode Copilot, Cursor, Windsurf, and more
  • Execute SQL Tools: Run pre-configured or custom SQL queries via MCP (--tools)
  • Monitor IBM i Systems: Performance, jobs, security, storage, and more
  • Build Custom Tools: Create YAML-based SQL tools for your specific needs

[!NOTE] 📖 Full Documentation: Server README →

Quick Links:


🧩 SQL Tools

YAML-based SQL tool configurations that define what queries AI agents can execute on your IBM i system.

Quick Start

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

Available Tool Collections

The tools/ directory includes ready-to-use configurations:

  • Performance Monitoring - System status, active jobs, CPU/memory metrics
  • Security & Audit - User profiles, authorities, security events
  • Job Management - Active jobs, job queues, subsystems
  • Storage & IFS - Disk usage, IFS objects, save files
  • Database - Tables, indexes, constraints, statistics

[!NOTE] 📖 Full Documentation: Tools Guide →


🤖 AI Agents

Pre-built AI agent examples using popular frameworks to interact with IBM i systems through the MCP Server.

Available Agent Frameworks

| 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 |

What Agents Can Do

  • System Monitoring: Real-time performance analysis and health checks
  • Troubleshooting: Diagnose issues using natural language queries
  • Reporting: Generate system reports and insights
  • Automation: Execute administrative tasks through conversation

[!NOTE] 📖 Full Documentation: Agents Guide →


🐍 Python Clients

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 →


📦 Deployment

Production-ready deployment configurations for containerized environments.

Deployment Options

  • Docker & Podman - Complete stack with MCP Context Forge Gateway
  • OpenShift - Kubernetes deployment with S2I builds
  • Production Features - HTTPS, authentication, monitoring, caching

[!NOTE] 📖 Full Documentation: Deployment Guide →


📡 Setup Mapepire

Before you can use the ibmi-mcp-server, you must install and configure Mapepire on your IBM i system.

What is Mapepire?

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.

Why Mapepire Enables AI and MCP Workloads

Traditional IBM i database access methods (ODBC, JDBC) don't align well with modern AI and MCP architectures that require:

  • Fast, lightweight connections: AI agents make frequent, short-lived database queries
  • WebSocket support: Enables real-time, bidirectional communication for streaming results
  • Modern JSON-based protocols: Simplifies integration with TypeScript/JavaScript ecosystems
  • Low-latency responses: Essential for interactive AI conversations and tool executions

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.

Installation

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 the DB2i_PORT variable in your .env file.
  • Ensure your IBM i firewall allows inbound connections on port 8076
  • For production deployments, configure SSL/TLS certificates (see official guide)


📜 License

This project is licensed under the Apache License 2.0. See the LICENSE file for details.