tools/ directory. These production-ready tools cover common IBM i operations from system monitoring to security analysis, allowing you to start building AI agents immediately without writing custom YAML configurations.
Prerequisites: This guide assumes you’ve completed the Quickstart and have:
- IBM i database credentials configured (
DB2i_HOST,DB2i_USER,DB2i_PASS) - Access to the pre-built tools directory (clone or download from GitHub)
Getting the Tools Directory
Download the pre-built tools from the repository:Available Tool Categories
Thetools/ directory contains pre-built tool configurations organized by functional domain:
| Directory | Category | Description | Key Tools |
|---|---|---|---|
| sample/ | Sample Data | Demonstration tools using IBM i SAMPLE schema (employee, department, project data) | Employee lookup, department analysis, project management |
| sys-admin/ | System Administration | High-level system service discovery and metadata exploration | Service catalogs, schema browsing, example queries |
| security/ | Security Analysis | Library list security assessment and vulnerability detection | Library list configuration, authority checks, security analysis |
| performance/ | Performance Monitoring | System performance metrics and resource utilization | System status, active jobs, memory pools, HTTP server stats |
| developer/ | Development Tools | Object statistics and dependency analysis for developers | Recently used objects, stale object detection, dependency tracking |
Loading Strategies
1. Load All Tools from Directory
Load every YAML file in thetools/ directory and all subdirectories:
.env file in your working directory:
- Recursively scans
tools/for all.yamlfiles - Loads all tools from all categories
- Makes every toolset available to AI agents
- Merges sources, tools, and toolsets across files
- Allows duplicate source definitions (e.g.,
ibmi-systemappears in multiple files)
Why Duplicate Sources? Each YAML file is designed to be self-contained with its own source definitions. When loading multiple files, the same database connection (like
ibmi-system) appears in multiple files. The YAML_ALLOW_DUPLICATE_SOURCES=true setting intelligently merges these duplicate definitions.2. Load Specific Configuration File
Target a single YAML file for focused operations:- Performance Monitoring
- Security Analysis
- Sample Data
- System status and health
- Active job monitoring
- Memory pool utilization
- HTTP server statistics
- Fast startup - Only loads tools from specified file
- Clear scope - Agent sees only relevant tools for the task
- Easy debugging - Isolated tool configuration
- Production ready - Minimal resource usage
- No duplicate sources - Single file = single source definition
3. Load Specific Toolsets
Select logical groups of tools across multiple files using toolset filtering:Single Toolset
- Performance Only
- Security Only
performance_monitoring toolset are loaded, even though all YAML files are scanned.Multiple Toolsets
Combine related toolsets for comprehensive operations:Toolset Names: Use the exact toolset identifiers from the YAML configurations. Run
--list-toolsets to see available names.Environment Variables
Configure database connections and runtime behavior:Required Database Credentials
Server Configuration
Complete Example
Usage Scenarios
Testing Your Server: Each scenario includes examples for testing with:
- MCP Inspector: Interactive browser-based tool for exploring and testing MCP tools
- Agno Agent (Python): Quick AI agent testing with natural language prompts (setup guide)
Scenario 1: Quick System Health Check
Goal: Monitor IBM i system health with AI assistance. Start the server:- Test with MCP Inspector
- Test with Agno Agent
Scenario 2: Security Audit
Goal: Perform comprehensive security analysis. Start the server:- Test with MCP Inspector
- Test with Agno Agent
Scenario 3: Development Workflow
Goal: Help developers find and manage IBM i objects. Start the server:- Test with MCP Inspector
- Test with Agno Agent
Scenario 4: Production Monitoring Dashboard
Goal: Create a monitoring agent with specific tool access. Start the server:- Test with MCP Inspector
- Test with Agno Agent
Command Reference
CLI Options
| Option | Alias | Description | Example |
|---|---|---|---|
--tools <path> | - | Path to YAML tools (file, directory, or glob pattern) | --tools tools/performance/performance.yaml |
--toolsets <list> | -ts | Comma-separated list of toolsets to load | --toolsets performance_monitoring,security_audit |
--transport <type> | -t | Transport protocol: stdio or http | --transport http |
--list-toolsets | - | Show all available toolsets and exit | --list-toolsets --tools tools |
--help | -h | Display help message and exit | --help |
Path Formats
The--tools argument accepts multiple formats:
- Single File
- Directory
- Glob Pattern
Troubleshooting
No Tools Loaded
Symptom: Server starts but no tools are available. Solutions:-
Verify path exists:
-
Check path is relative to current directory:
-
Check for duplicate source errors:
-
Review server logs:
The server outputs to console when using
--transport http. Look for YAML parsing errors in the startup output.
Connection Failures
Symptom: Tools load but queries fail with connection errors. Solutions:-
Verify environment variables:
-
Test connection manually:
-
Check SSL configuration:
Toolset Not Found
Symptom:--toolsets specified but tools don’t load.
Solutions:
-
List available toolsets:
-
Check exact toolset names:
- Toolset names are case-sensitive
- Use underscores, not spaces:
performance_monitoringnotperformance monitoring
-
Verify toolset exists in YAML:
Best Practices
Development vs Production
Development vs Production
Development:
- Use
--transport httpfor easier debugging - Load all tools:
--tools ./tools(no toolset filter) - Enable debug logging:
MCP_LOG_LEVEL=debug - Allow SSL bypass:
DB2i_IGNORE_UNAUTHORIZED=true - Set
YAML_ALLOW_DUPLICATE_SOURCES=truein.env
- Use
--transport stdiofor MCP client integration - Load specific toolsets:
--toolsets performance_monitoring - Use info logging:
MCP_LOG_LEVEL=info - Enforce SSL:
DB2i_IGNORE_UNAUTHORIZED=false - Still need
YAML_ALLOW_DUPLICATE_SOURCES=trueif loading from directory
Organize by Access Level
Organize by Access Level
Create environment-specific configurations:
Performance Optimization
Performance Optimization
- Load only needed tools: Use
--toolsetsto reduce memory - Use specific files: Target exact YAML files instead of directories
- Monitor resource usage: Check
logs/combined.logfor performance metrics - Cache connections: The server automatically pools database connections
Security Considerations
Security Considerations
- Credential management: Use environment variables, never hardcode
- Least privilege: Load only toolsets needed for the agent’s role
- Audit logging: Enable
MCP_LOG_LEVEL=infoin production - SSL enforcement: Set
DB2i_IGNORE_UNAUTHORIZED=falsefor production - Read-only tools: Prefer query-only tools for non-admin agents
Next Steps
Building Custom Tools
Learn to create your own YAML SQL tools for custom IBM i operations
Tools Reference
Complete YAML tools configuration reference with all options
Toolsets Guide
Organize tools into logical groups for better agent discovery
Configuration Guide
Complete server configuration and environment variables
Examples Repository
View Default Tools on GitHub
Browse the complete collection of pre-built YAML tools with documentation and examples →
Contributing: Found a bug or want to add a new default tool? Contributions are welcome! See the Contributing Guide for details.