Oracle MCP Server
A Model Context Protocol (MCP) server implementation for Oracle database operations
yyue9527
README
Oracle MCP Server
A Model Context Protocol (MCP) server implementation for Oracle database operations, built on top of spring-ai-mcp-server-webmvc-spring-boot-starter
. This service provides a set of tools for interacting with Oracle databases through MCP, utilizing Server-Sent Events (SSE) for real-time communication.
Features
- List all tables in the Oracle database
- Describe table structure (columns, data types, constraints)
- Execute SQL statements (SELECT, INSERT, UPDATE, DELETE)
- Secure database connection management
- Real-time communication via SSE
- Built on spring-ai-mcp-server-webmvc-spring-boot-starter
Technology Stack
Core Dependencies
- Spring Boot 3.2.0
- spring-ai-mcp-server-webmvc-spring-boot-starter
- Oracle JDBC Driver
- Model Context Protocol (MCP) Framework
- Lombok
Development Tools
- Java 17
- Maven 3.6+
- Spring Boot Test Framework
- JUnit 5
Getting Started
Prerequisites
- JDK 17
- Maven 3.6+
- Oracle Database instance
- MCP Server environment
- Cursor IDE
Configuration
1. Database Configuration
Create or modify application.properties
or application.yml
with the following settings:
oracle:
connectionString: jdbc:oracle:thin:@//your-oracle-host:1521/your-service-name
username: your-username
password: your-password
2. Cursor MCP Configuration
In your Cursor IDE, configure the MCP server in the settings:
{
"mcpServers": {
"oracle-mcp-server": {
"url": "http://{server-ip}:{server-port}/sse",
"enabled": true
}
}
}
This configuration:
- Sets the MCP server name as "oracle-mcp-server"
- Configures the server URL to "http://{server-ip}:{server-port}/sse"
- Replace {server-ip} with your server's IP address
- Replace {server-port} with your server's port number
- Enables the MCP server for use in Cursor
Building the Project
mvn clean install
Running the Application
mvn spring-boot:run
API Tools
1. List Tables Tool
- Name:
list_tables
- Description: Get a list of all tables in Oracle database
- Usage: No parameters required
- Returns: Newline-separated list of table names
2. Describe Table Tool
- Name:
describe_table
- Description: Get structure information of specified table
- Parameter:
tableName
- Name of the table to describe - Returns: CSV format of table structure including:
- Column names
- Data types
- Nullable status
- Data length
- Primary key information
3. Execute SQL Tool
- Name:
execute_sql
- Description: Execute Oracle SQL statement
- Parameter:
sql
- SQL statement to execute - Returns:
- For SELECT: CSV format of query results
- For INSERT/UPDATE/DELETE: Number of affected rows
Implementation Details
Architecture
com.mcp.oracle/
├── config/
│ └── OracleConfig.java # Database configuration
├── service/
│ └── OracleService.java # Core service implementation
└── OracleApplication.java # Application entry point
Key Components
-
OracleConfig
- Handles database connection configuration
- Uses Spring's @ConfigurationProperties
- Secure password management
-
OracleService
- Implements MCP tools for database operations
- Manages database connections
- Handles SQL execution and result formatting
- Implements error handling and logging
-
Connection Management
- Uses Oracle's connection pooling
- Implements auto-closing of resources
- Handles connection errors gracefully
Security Considerations
- Password encryption in configuration
- Connection pool management
- SQL injection prevention
- Error message sanitization
Testing
The project includes comprehensive unit tests:
mvn test
Test coverage includes:
- Database connection
- Table listing
- Table structure description
- SQL execution
- Error handling
Error Handling
The service implements robust error handling:
- Connection failures
- Invalid SQL statements
- Missing tables/columns
- Permission issues
Contributing
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
For support and questions, please create an issue in the repository.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
MCP Package Docs Server
Facilitates LLMs to efficiently access and fetch structured documentation for packages in Go, Python, and NPM, enhancing software development with multi-language support and performance optimization.
Claude Code MCP
An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.
@kazuph/mcp-taskmanager
Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.
Linear MCP Server
Enables interaction with Linear's API for managing issues, teams, and projects programmatically through the Model Context Protocol.
mermaid-mcp-server
A Model Context Protocol (MCP) server that converts Mermaid diagrams to PNG images.
Jira-Context-MCP
MCP server to provide Jira Tickets information to AI coding agents like Cursor

Linear MCP Server
A Model Context Protocol server that integrates with Linear's issue tracking system, allowing LLMs to create, update, search, and comment on Linear issues through natural language interactions.

Sequential Thinking MCP Server
This server facilitates structured problem-solving by breaking down complex issues into sequential steps, supporting revisions, and enabling multiple solution paths through full MCP integration.