This is a community-driven toolkit separate from the Oracle SQLcl MCP Server, which is Oracle’s fully supported product with MCP capabilities.
Architecture
- Custom Tool Framework: Define SQL-based tools using YAML configuration
- Built-in Tools: Pre-built tools for log analysis, vector search, and performance tuning
- Flexible Deployment: stdio, HTTP, or Docker with TLS and OAuth2 support
- Connection Pooling: UCP (Universal Connection Pool) for efficient resource management
Key Features
1. YAML-Based Custom Tools
Define your own MCP tools without writing Java code:2. Oracle JDBC Log Analysis
Analyze JDBC thin client logs:- get-jdbc-stats: Performance statistics, error counts, packet/byte counts
- get-jdbc-queries: All executed SQL queries with timestamps
- get-jdbc-errors: Server and client errors
- get-jdbc-connection-events: Connection lifecycle events
- jdbc-log-comparison: Compare two log files
- list-log-files-from-directory: List available log files
3. RDBMS/SQLNet Trace Analysis
Parse Oracle RDBMS and SQLNet trace files:- get-rdbms-errors: Extract errors from trace files
- get-rdbms-packet-dumps: Extract packet dumps by connection ID
4. Vector Similarity Search
similarity_search: Perform semantic search using Oracle’s vector features:- Uses
VECTOR_EMBEDDINGfor text-to-vector conversion - Uses
VECTOR_DISTANCEfor similarity calculation - Configurable table, columns, and models
- Returns top-K similar results with scores
5. SQL Execution Plan Analysis
explain_plan: Generate and analyze Oracle execution plans:- Static mode: Uses
EXPLAIN PLAN(estimated, doesn’t execute) - Dynamic mode: Uses
DBMS_XPLAN.DISPLAY_CURSOR(actual runtime plan) - Returns formatted plan + LLM-ready prompt for tuning suggestions
Deployment Modes
stdio (Default)
The MCP client spawns the JVM process and communicates via stdin/stdout. Use for: Claude Desktop, local development, single-user scenariosHTTP
The server runs as an HTTP service with optional TLS and OAuth2. Use for: Remote access, multi-user environments, production deployments Features:- HTTPS with PKCS12 certificates
- OAuth2 introspection-based authentication
- Token-based auth for development
- CORS configuration
Docker
Containerized deployment using Podman or Docker. Use for: Cloud deployments, microservices architectures, CI/CD pipelines Learn more about Deployment →Prerequisites
- JDK 17+
- Maven 3.9+ (for building from source)
- Oracle Database access (for database tools)
- Database credentials or token-based authentication
- MCP client (Claude Desktop, Cline, etc.)
Quick Start
1. Build the JAR
target/oracle-db-mcp-toolkit-1.0.0.jar
2. Configure for Claude Desktop
3. Start Using
Configuration Options
System Properties
| Property | Description | Example |
|---|---|---|
db.url | JDBC URL | jdbc:oracle:thin:@host:1521/service |
db.user | Database username | ADMIN |
db.password | Database password | secretpass |
tools | Comma-separated tool allow-list | get-jdbc-stats,similarity_search |
configFile | Path to YAML config | /opt/mcp/config.yaml |
transport | Transport mode (stdio/http) | http |
ojdbc.ext.dir | Directory for extra JARs | /opt/oracle/ext-jars |
YAML Configuration
Define datasources and custom tools:Built-in Tools Overview
Log Analysis Tools
No database connection required:- JDBC log parsing and statistics
- RDBMS/SQLNet trace file analysis
- Log file comparison
- Error extraction
Database-Powered Tools
Require database connection:- Vector similarity search
- SQL execution plan analysis
- Custom YAML-defined SQL tools
DataSource Resolution
When executing a tool, the server determines which datasource to use:- Tool-specific datasource: If the tool specifies a datasource in YAML
- System properties:
db.url,db.user,db.password(highest priority) - YAML default: First datasource defined in the YAML file
- Error: If no datasource can be resolved for SQL-based tools
Log analysis tools don’t require database configuration. You can run the server with only
-Dtools=get-jdbc-stats,get-jdbc-queries without setting db.url.Security Features
Authentication Options
- Database authentication: Username/password
- Token-based auth: IAM tokens via
ojdbc.ext.dirJARs - OAuth2: Introspection-based authentication for HTTP mode
- Development tokens: UUID tokens for testing
Network Security
- TLS/SSL: PKCS12 certificate support
- HTTPS: Configurable port
- CORS: Configurable allowed origins
- Token validation: OAuth2 introspection endpoint
Use Cases
Performance Analysis
Troubleshooting
Semantic Search
Custom Business Logic
Comparison: Toolkit vs SQLcl MCP Server
| Feature | Oracle DB Toolkit | SQLcl MCP Server |
|---|---|---|
| Support | Community | Official Oracle Product |
| Custom Tools | YAML-based | Not available |
| Log Analysis | JDBC + RDBMS traces | Not available |
| Vector Search | Built-in | Via SQL |
| Execution Plans | Built-in with LLM prompts | Via SQL |
| Deployment | stdio, HTTP, Docker | stdio |
| Authentication | DB, OAuth2, tokens | Database only |
| Language | Java | Java |
Example Workflows
Performance Tuning Workflow
Semantic Search Integration
Custom Tool Development
Next Steps
Custom Tools
Create YAML-based SQL tools
Built-in Tools
Explore log analysis and database tools
Deployment
Deploy with stdio, HTTP, or Docker
Compare to MySQL
Compare database servers
