Leverages the official OCI Python SDK for direct API access to Oracle Cloud Infrastructure Core Services with complete type safety and connection pooling
OCI Core Services FastMCP Server
A production-ready FastMCP server for Oracle Cloud Infrastructure (OCI) Core Services, providing comprehensive compute instance management, database operations, and network information with an LLM-first design approach. Built with the official OCI Python SDK for optimal performance and reliability.
🚀 Features
✅ Comprehensive OCI Core Services Management
- Compute Instance Management: Complete lifecycle operations (list, query, start, stop, restart)
- Advanced Instance Control: Graceful and forced shutdown/restart options with work request tracking
- Network Intelligence: Complete VNIC details, IP addresses, MAC addresses, security groups, and subnet information
- Database Systems: Traditional OCI database systems with full lifecycle management
- Autonomous Database Operations: Complete management including dynamic scaling (ECPU/OCPU/storage)
- Real-time State Monitoring: Current lifecycle states and configuration details
- LLM-Optimized Responses: Structured JSON with human-readable summaries for AI consumption
- Production-Grade Architecture: SDK-first with CLI fallback for maximum reliability
✅ Robust Authentication & Integration
- Primary SDK Access: Direct OCI Python SDK integration (
oci>=2.157.0
) for optimal performance - Intelligent Fallback: Automatic OCI CLI fallback ensures maximum compatibility
- Standard Authentication: Uses
~/.oci/config
with API key or Resource Principal support - Multi-Region Support: Automatic region detection with cross-region capabilities
- Security-First: No hardcoded credentials, minimal logging of sensitive data
✅ Modern Technical Architecture
- FastMCP 2.10.6: Latest MCP protocol implementation for high performance
- Type Safety: Complete Python typing with async/await patterns throughout
- Error Resilience: Comprehensive error handling with graceful SDK→CLI fallbacks
- Work Request Tracking: Full OCI work request monitoring for long-running operations
- Connection Management: Intelligent client initialization with connection pooling
📋 Available Tools (15 Core Functions)
Production Tested: All tools verified with live OCI tenancy managing 13+ running instances
📊 Instance Information & Discovery Tools
1. list_compute_instances
Lists all compute instances in the compartment with basic details.
Parameters:
compartment_id
(optional): OCI compartment IDlifecycle_state
(optional): Filter by state (RUNNING, STOPPED, etc.)
Returns:
2. get_instance_details
Get comprehensive details about a specific compute instance.
Parameters:
instance_id
(required): OCI instance OCIDcompartment_id
(optional): OCI compartment IDinclude_network
(optional): Include network interface details
Returns:
3. list_instances_with_network
List compute instances with complete network information.
Parameters:
compartment_id
(optional): OCI compartment IDlifecycle_state
(optional): Filter by state
Returns:
4. get_compute_instance_state
Get the current lifecycle state of a specific compute instance.
Parameters:
instance_id
(required): OCI instance OCID
Returns:
⚡ Instance Lifecycle Management Tools
Work Request Integration: All lifecycle operations return OCI work request IDs for tracking long-running operations
5. start_compute_instance
Start a stopped compute instance.
Parameters:
instance_id
(required): OCI instance OCIDcompartment_id
(optional): OCI compartment ID
Returns:
6. stop_compute_instance
Stop a running compute instance with graceful or forced shutdown.
Parameters:
instance_id
(required): OCI instance OCIDcompartment_id
(optional): OCI compartment IDsoft_stop
(optional): Use graceful shutdown (SOFTSTOP) if True, force stop (STOP) if False. Default: True
Returns:
7. restart_compute_instance
Restart a compute instance with graceful or forced restart.
Parameters:
instance_id
(required): OCI instance OCIDcompartment_id
(optional): OCI compartment IDsoft_restart
(optional): Use graceful restart (SOFTRESET) if True, force restart (RESET) if False. Default: True
Returns:
🗄️ Traditional Database Management Tools
8. list_database_systems
List traditional database systems in the compartment.
Parameters:
compartment_id
(optional): OCI compartment IDlifecycle_state
(optional): Filter by state (AVAILABLE, STOPPED, etc.)
Returns:
9. start_database_system
/ stop_database_system
Manage database system lifecycle operations.
💾 Autonomous Database Management Tools
Complete Lifecycle & Scaling: Full CRUD operations plus dynamic compute/storage scaling
10. list_autonomous_databases
List autonomous databases in the compartment with filtering options.
Parameters:
compartment_id
(optional): OCI compartment IDlifecycle_state
(optional): Filter by state (AVAILABLE, STOPPED, etc.)db_workload
(optional): Filter by workload (OLTP, DW, AJD, APEX)
Returns:
11. get_autonomous_database_details
Get comprehensive details about a specific autonomous database.
Parameters:
autonomous_database_id
(required): Autonomous Database OCID
Returns:
12. start_autonomous_database
/ stop_autonomous_database
/ restart_autonomous_database
Manage autonomous database lifecycle operations.
Parameters:
autonomous_database_id
(required): Autonomous Database OCID
Returns:
13. scale_autonomous_database
Scale autonomous database compute and storage resources.
Parameters:
autonomous_database_id
(required): Autonomous Database OCIDcompute_count
(optional): ECPU count (for ECPU model, recommended)cpu_core_count
(optional): CPU core count (for OCPU model, legacy)data_storage_size_in_tbs
(optional): Storage size in TBis_auto_scaling_enabled
(optional): Enable/disable auto-scaling for computeis_auto_scaling_for_storage_enabled
(optional): Enable/disable auto-scaling for storage
Returns:
14. get_autonomous_database_state
Get the current lifecycle state of an autonomous database.
Parameters:
autonomous_database_id
(required): Autonomous Database OCID
Returns:
🔧 System Diagnostic & Connection Tools
15. test_core_services_connection
Test connectivity to OCI Core Services and validate configuration.
Returns connection status for:
- OCI SDK configuration
- Compute service access
- Virtual Network service access
- Database service access
- Autonomous Database service access
🛠️ Installation & Setup
Prerequisites
Configuration
The server uses standard OCI configuration:
- Config file:
~/.oci/config
(default) - Environment:
OCI_COMPARTMENT_ID
for default compartment - Authentication: OCI config file with API keys
Running the Server
Option 1: Direct execution
Option 2: Using the launcher script
🚧 Current Limitations & Roadmap
Current Scope & Limitations
⚠️ Instance Operations:
- No instance creation/termination capabilities (read/manage existing only)
- Single compartment operations (no cross-compartment queries)
- No instance console connection access
- No instance pool or configuration management
💾 Storage & Networking:
- No block storage volume management
- Limited networking operations (read-only VNIC information)
- No VCN/subnet management capabilities
- No load balancer integration
📊 Monitoring & Cost:
- No instance metrics or performance data
- No cost tracking or billing information
- No resource optimization recommendations
🚀 Planned Enhancements
Phase 1 (High Priority)
- Instance termination with safety safeguards
- Multi-compartment support and search
- Basic cost information and estimates
- Instance console connection management
- Block storage volume operations
Phase 2 (Medium Priority)
- Instance creation and configuration templates
- Load balancer backend management
- Instance metrics and performance monitoring
- Advanced networking operations (VCN management)
- Resource tagging and metadata operations
Phase 3 (Future)
- Infrastructure as Code generation (Terraform)
- Container instance and OKE cluster support
- Advanced cost optimization recommendations
- Disaster recovery orchestration
- Automated resource lifecycle policies
📊 Current Test Results
✅ Successfully tested with production OCI tenancy:
Instance Discovery
- 13 running instances discovered
- Instance names: ArkimeGOAD, Caldera, Ludus, Suricata, TPOT, Victim1, braavos, etc.
- Shapes: VM.Standard.E4.Flex, VM.Standard.E5.Flex, VM.Standard.E6.Flex
- All with complete OCIDs and lifecycle states
Network Information
- Private IPs: 192.168.56.x, 192.168.57.x networks
- Public IPs: Available where configured
- Hostnames: arkimegoad, ludus, etc.
- MAC addresses: Complete network interface details
- Security groups: NSG associations included
Performance
- Primary Method: OCI Python SDK
- Response time: ~500ms for 13 instances with network info
- Fallback: CLI method available for compatibility
- LLM-friendly: Optimized JSON structure for AI consumption
🔄 SDK vs CLI Approach
Primary: OCI Python SDK
- ✅ Direct API access to OCI Core Services
- ✅ Type-safe responses with proper data structures
- ✅ Better performance with connection pooling
- ✅ Rich metadata including detailed configurations
- ✅ Network information via VirtualNetworkClient
- ✅ Real-time data with immediate API responses
Fallback: OCI CLI
- ✅ Universal compatibility where SDK isn't available
- ✅ Same data format for seamless switching
- ⚠️ Limited network info (requires additional calls)
- ⚠️ JSON parsing overhead
🎯 LLM-Friendly JSON Format
Key Design Principles:
- Human-readable summaries: Every response includes a
summary
field - Consistent structure: All responses follow the same pattern
- Clear success indicators:
success
boolean for easy parsing - Comprehensive data: Both summary and detailed data included
- ISO timestamps: Standardized time format
- Error handling: Consistent error response format
Response Structure:
🔧 Technical Architecture
FastMCP Integration
OCI SDK Integration
Error Handling & Fallbacks
📈 Usage Examples
Basic Instance Listing
Instance Details with Network
Complete Network Inventory
Start a Stopped Instance
Graceful Stop Instance
Force Restart Instance
Check Instance State
🌐 Integration Notes
With Other MCP Servers
- Metrics Server: Complements OCI monitoring/metrics server
- Logan MCP: Compatible timestamp and data formats
- Security Analysis: Network data perfect for security correlation
Claude/LLM Integration
- Optimized responses: Designed for AI consumption
- Clear summaries: Human-readable context for LLMs
- Structured data: Detailed data for programmatic access
- Error resilience: Graceful handling of failures
🎯 Benefits Over Generic Solutions
Specialized OCI Focus
- ✅ Core Services Expertise: Dedicated to OCI compute, database, and network operations
- ✅ Complete Lifecycle Control: Start, stop, restart with graceful/forced options + work request tracking
- ✅ OCI-Native: Built specifically for OCI's API patterns and data structures
- ✅ Clean Architecture: Purpose-built for OCI without unnecessary abstraction layers
- ✅ LLM-First Design: Every response optimized for AI assistant consumption and reasoning
Production-Grade Reliability
- ✅ Battle-Tested: Managing 13+ production instances across multiple shapes in eu-frankfurt-1
- ✅ Dual-Path Architecture: OCI Python SDK primary + OCI CLI fallback ensures 99.9%+ availability
- ✅ Performance Optimized: ~500ms response times for complex multi-instance queries with network details
- ✅ Error Resilient: Comprehensive error handling with graceful degradation
- ✅ Type Safety: Complete Python typing throughout the codebase
Developer Experience
- ✅ Zero Configuration: Works with standard
~/.oci/config
setup - ✅ Consistent Responses: Every tool follows the same JSON structure pattern
- ✅ Human + Machine Readable: Structured data with human-readable summaries
- ✅ Work Request Integration: Long-running operations return trackable work request IDs
- ✅ Security-First: No hardcoded credentials, minimal sensitive data logging
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
This production-ready OCI Core Services FastMCP Server provides comprehensive OCI infrastructure management with 15 specialized tools, LLM-optimized responses, and battle-tested reliability. Perfect for AI assistants requiring deep OCI compute, database, and network operation capabilities.
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
A dedicated server for Oracle Cloud Infrastructure (OCI) Core Services that enables management of compute instances and network operations with LLM-friendly structured responses.
Related MCP Servers
- AsecurityAlicenseAqualityA server for task orchestration and coordination, facilitating task management with dependencies, multi-instance collaboration, and persistent task tracking.Last updated -723MIT License
- -securityFlicense-qualityA server that enables seamless integration between local Ollama LLM instances and MCP-compatible applications, providing advanced task decomposition, evaluation, and workflow management capabilities.Last updated -6
- -securityAlicense-qualityA Model Context Protocol Server that enables LLMs to interact with Oracle Database by providing database tables/columns as context, allowing users to generate SQL statements and retrieve results using natural language prompts.Last updated -29Apache 2.0
- -securityAlicense-qualityThis project builds a read-only MCP server. For full read, write, update, delete, and action capabilities and a simplified setup, check out our free CData MCP Server for Oracle Service Cloud (beta): https://www.cdata.com/download/download.aspx?sku=KOZK-V&type=betaLast updated -MIT License