MCP Server for Oracle Cloud Infrastructure (OCI)
Servidor del Protocolo de Contexto de Modelo (MCP) para Oracle Cloud Infrastructure, que permite a LLMs como Claude interactuar directamente con recursos de OCI
Documentación
MCP Server para Oracle Cloud Infrastructure (OCI)
Este proyecto implementa un servidor de Model Context Protocol (MCP) para Oracle Cloud Infrastructure, permitiendo que LLMs como Claude interactúen directamente con los recursos de OCI.

Características
- Selección dinámica de perfiles: Cambia entre perfiles/tenancies de OCI sin reiniciar el servidor
- Conexión a Oracle Cloud usando la configuración estándar de OCI CLI
- 95 herramientas integrales para listar y gestionar recursos de OCI en más de 11 categorías de servicios
- Gestión del ciclo de vida de instancias (iniciar, detener)
- Gestión de Database Systems y DB Nodes
- Exadata Cloud Service (Cloud Exadata Infrastructure, VM Clusters, Data Guard, backups, maintenance runs)
- Container Engine for Kubernetes (OKE): gestión de clústeres y node pools
- Integración con el protocolo MCP para facilitar el acceso desde Claude Desktop
Requisitos previos
- Python 3.10 o superior
- OCI CLI configurado (
oci setup config) - Permisos apropiados en Oracle Cloud
Instalación
Clona este repositorio
pip install git+https://github.com/modelcontextprotocol/python-sdk.git
pip install oci fastapi uvicorn click pydantic loguru
pip install -e .
Uso
Iniciar el servidor
Opción 1: Selección dinámica de perfiles (recomendada)
Inicia sin un perfil y selecciónalo en tiempo de ejecución:
python -m mcp_server_oci.mcp_server
Luego usa las herramientas MCP para gestionar perfiles:
list_oci_profiles- Ver los perfiles disponibles desde ~/.oci/configset_oci_profile- Activar un perfil específicoget_current_oci_profile- Comprobar qué perfil está activo
Opción 2: Con perfil predeterminado
Inicia con un perfil específico precargado:
python -m mcp_server_oci.mcp_server --profile DEFAULT
Con uv:
uv --directory /path/to/mcp-server-oci run python -m mcp_server_oci.mcp_server --profile DEFAULT
Cambiar entre tenancies
Puedes cambiar entre diferentes tenancies de OCI sin reiniciar:
# In your MCP client (e.g., Claude):
# 1. List available profiles
"Show me available OCI profiles"
# 2. Switch to a different tenancy
"Switch to the 'production' OCI profile"
# 3. Verify current profile
"What OCI profile am I using?"
Configuración para Claude Desktop (MacOS)
Añade esta configuración a tu archivo:
/Users/<usuario>/Library/Application Support/Claude/claude_desktop_config.json
Con selección dinámica de perfiles (recomendada):
"mcpServers": {
"mcp-server-oci": {
"command": "python",
"args": [
"-m",
"mcp_server_oci.mcp_server"
],
"env": {
"PYTHONPATH": "/<PATH_TO_MCP>/mcp-server-oci",
"FASTMCP_LOG_LEVEL": "INFO"
}
}
}
Con perfil fijo:
"mcpServers": {
"mcp-server-oci": {
"command": "python",
"args": [
"-m",
"mcp_server_oci.mcp_server",
"--profile", "DEFAULT"
],
"env": {
"PYTHONPATH": "/<PATH_TO_MCP>/mcp-server-oci",
"FASTMCP_LOG_LEVEL": "INFO"
}
}
}
Con uv y perfiles dinámicos:
"mcpServers": {
"mcp-server-oci": {
"command": "uv",
"args": [
"--directory",
"/<PATH_TO_MCP>/mcp-server-oci",
"run",
"python",
"-m",
"mcp_server_oci.mcp_server"
],
"env": {
"FASTMCP_LOG_LEVEL": "INFO"
}
}
}
📋 Herramientas MCP disponibles
Gestión de perfiles 🆕
list_oci_profiles- Listar todos los perfiles de OCI disponibles desde ~/.oci/configset_oci_profile- Activar un perfil específico para llamadas a la APIget_current_oci_profile- Mostrar el perfil actualmente activo
Identity & Access Management 🆕
Compartments
list_compartments- Listar todos los compartments a los que tienes acceso
Usuarios
list_users- Listar todos los usuarios de IAM en un compartment con capacidades y estado de MFAget_user- Obtener información detallada del usuario, incluidas las membresías de grupos
Grupos
list_groups- Listar todos los grupos de IAM en un compartment con el número de miembrosget_group- Obtener información detallada del grupo, incluidos los miembros
Políticas
list_policies- Listar todas las políticas de IAM en un compartment con sus declaracionesget_policy- Obtener información detallada de la política con todas las declaraciones de política
Grupos dinámicos
list_dynamic_groups- Listar todos los grupos dinámicos con reglas de coincidenciaget_dynamic_group- Obtener información detallada del grupo dinámico con reglas de instance principal
Recursos de cómputo
list_instances- Listar instancias de máquinas virtuales en un compartmentget_instance- Obtener información detallada sobre una instancia específicastart_instance- Iniciar una instancia detenidastop_instance- Detener una instancia en ejecución (admite detención suave/forzada)
Bases de datos 🔥
DB Systems
list_db_systems- Listar DB Systems en un compartmentget_db_system- Obtener información detallada del DB Systemlist_db_nodes- Listar DB Nodes en un compartment (opcionalmente filtrados por DB System)get_db_node- Obtener información detallada del DB Nodestart_db_node- Iniciar un DB Node detenidostop_db_node- Detener un DB Node en ejecución (detención suave o forzada)reboot_db_node- Reiniciar un DB Nodereset_db_node- Restablecer (reinicio forzado) un DB Nodesoftreset_db_node- Restablecimiento suave (reinicio elegante) de un DB Nodestart_db_system- Iniciar todos los nodos de un DB Systemstop_db_system- Detener todos los nodos de un DB System
Bases de datos regulares 🆕
list_databases- Listar bases de datos en un compartment (opcionalmente filtradas por DB System)get_database- Obtener información detallada de la base de datos, incluidas las cadenas de conexión y el nombre de PDB
Autonomous Databases 🆕
list_autonomous_databases- Listar Autonomous Databases con tipo de workload e información de conexiónget_autonomous_database- Obtener información detallada de ADB, incluida la información de wallet y la configuración de auto-scaling
Exadata Cloud Service 🆕
list_cloud_exadata_infrastructures- Listar Cloud Exadata Infrastructures (hardware de flota) en un compartmentget_cloud_exadata_infrastructure- Obtener detalles de la infraestructura: shape, CPU/memoria/almacenamiento activados/máximos, ventanas de mantenimientolist_cloud_vm_clusters- Listar Cloud VM Clusters (Exadata Cloud Service RAC)get_cloud_vm_cluster- Obtener detalles del VM cluster: nodos RAC, SCAN DNS/VIPs, versiones de GI/sistema, subredes, NSGslist_cloud_autonomous_vm_clusters- Listar Cloud Autonomous VM Clusters (Exadata para Autonomous DB)
Data Guard 🆕
list_data_guard_associations- Listar asociaciones de DG para una base de datos (consulta en el OCID de la base de datos primaria)get_data_guard_association- Obtener una asociación de DG específica: rol, rol del peer, apply lag/rate, modo de protección
Backups y mantenimiento 🆕
list_backups- Listar backups de bases de datos por compartment o por base de datoslist_maintenance_runs- Listar maintenance runs, opcionalmente filtrados por recurso objetivoget_maintenance_run- Obtener detalles de un maintenance run específico
Redes
Virtual Cloud Networks (VCNs)
list_vcns- Listar todas las VCNs en un compartment con bloques CIDR e información de DNSget_vcn- Obtener información detallada de la VCN, incluidos los bloques CIDR IPv6
Subredes
list_subnets- Listar todas las subredes en un compartment (opcionalmente filtradas por VCN)get_subnet- Obtener información detallada de la subred con listas de seguridad y enrutamiento
Virtual Network Interface Cards (VNICs)
list_vnics- Listar todas las VNICs en un compartment (opcionalmente filtradas por instancia)get_vnic- Obtener información detallada de la VNIC, incluidas las direcciones IP y las asociaciones de NSG
Seguridad
list_security_lists- Listar listas de seguridad con reglas de entrada/salida (opcionalmente filtradas por VCN)get_security_list- Obtener la lista de seguridad detallada con todas las reglaslist_network_security_groups- Listar Network Security Groups (NSGs) en un compartmentget_network_security_group- Obtener información detallada del NSG con todas las reglas de seguridad
Almacenamiento 🆕
Object Storage
get_namespace- Obtener el namespace de Object Storage para la tenancylist_buckets- Listar todos los buckets de Object Storage en un compartmentget_bucket- Obtener información detallada del bucket, incluida la configuración de acceso público y el versionado
Block Storage
list_volumes- Listar todos los volúmenes de Block Storage en un compartmentget_volume- Obtener información detallada del volumen, incluidos tamaño, nivel de rendimiento y política de backuplist_boot_volumes- Listar todos los boot volumes en un compartment (opcionalmente filtrados por AD)get_boot_volume- Obtener información detallada del boot volume, incluida la imagen de origen
File Storage
list_file_systems- Listar todos los file systems de File Storage en un compartment y ADget_file_system- Obtener información detallada del file system, incluidos metered bytes y snapshots
Load Balancers 🆕
Classic Load Balancers
list_load_balancers- Listar todos los classic load balancers en un compartmentget_load_balancer- Obtener información detallada del load balancer, incluidos backend sets, listeners y certificados
Network Load Balancers
list_network_load_balancers- Listar todos los network load balancers en un compartmentget_network_load_balancer- Obtener información detallada del network load balancer, incluidos backend sets y listeners
Utilidades de infraestructura 🆕
Availability y Fault Domains
list_availability_domains- Listar todos los availability domains en un compartmentlist_fault_domains- Listar todos los fault domains en un availability domain
Imágenes de cómputo
list_images- Listar todas las imágenes de cómputo con SO, versión y tamañoget_image- Obtener información detallada de la imagen, incluidas las opciones de lanzamiento
Shapes de cómputo
list_shapes- Listar todos los shapes de cómputo con especificaciones de CPU, memoria, red y GPU
Regiones y tenancy
list_regions- Listar todas las regiones de OCI disponiblesget_tenancy_info- Obtener detalles de la tenancy, incluidos nombre y región de origen
Seguridad y cifrado 🆕
KMS Vaults
list_vaults- Listar todos los KMS vaults en un compartmentget_vault- Obtener información detallada del vault, incluidos los endpoints de cifrado y gestión
Claves de cifrado
list_keys- Listar todas las claves de cifrado en el compartment de un vaultget_key- Obtener información detallada de la clave, incluidos algoritmo, shape y versiones
Gestión de costos 🆕
Análisis de uso y costos
get_cost_usage_summary- Obtener un resumen de costos y uso de una tenancy con granularidad diaria o mensualget_cost_by_service- Obtener desglose de costos por servicio para un período de tiempo especificadoget_cost_by_compartment- Obtener desglose de costos por compartment para un período de tiempo especificado
Presupuestos
list_budgets- Listar todos los presupuestos con monto, gasto real y gasto proyectadoget_budget- Obtener información detallada del presupuesto, incluidos objetivos y reglas de alerta
Monitoreo y observabilidad 🆕
Alarmas
list_alarms- Listar todas las alarmas con consulta, severidad y destinosget_alarm- Obtener información detallada de la alarma, incluidos umbrales y configuración de notificacionesget_alarm_history- Obtener el historial de estados de la alarma con marcas de tiempo y transiciones de estado
Métricas
list_metrics- Listar métricas disponibles con namespaces y dimensionesquery_metric_data- Consultar datos de métricas para un rango de tiempo usando MQL
Logs
search_logs- Buscar logs usando la Logging Search APIlist_log_groups- Listar todos los log groups en un compartmentlist_logs- Listar todos los logs en un log group con tipos y retención
Container Engine for Kubernetes (OKE) 🆕
Clústeres
list_oke_clusters- Listar todos los clústeres de OKE con versión de Kubernetes y endpointsget_oke_cluster- Obtener información detallada del clúster, incluida la configuración de red, add-ons y actualizaciones disponiblesget_oke_cluster_kubeconfig- Obtener el contenido del archivo kubeconfig para acceso con kubectl
Node Pools
list_oke_node_pools- Listar node pools con shape, imagen y configuración de ubicaciónget_oke_node_pool- Obtener información detallada del node pool, incluidos nodos individuales, configuración de desalojo y detalles de ciclado
Work Requests
list_oke_work_requests- Listar operaciones asíncronas (crear, actualizar, eliminar) para recursos de OKEget_oke_work_request- Obtener estado detallado y progreso del work request
💡 Ejemplos de uso
Gestión de perfiles
# From Claude or any MCP client:
# List available profiles
"Show me all available OCI profiles"
# Activate a specific profile
"Set the OCI profile to 'production'"
# Check current profile
"What OCI profile am I currently using?"
# Switch between tenancies
"Switch to the DEFAULT profile"
Identity & Access Management 🆕
# Users
"List all IAM users in my tenancy"
"Show me details for user ocid1.user.oc1..."
"Does this user have MFA enabled?"
"What groups is this user a member of?"
# Groups
"List all IAM groups in compartment X"
"Show me members of group 'Administrators'"
"Get details for group ocid1.group.oc1..."
# Policies
"List all IAM policies in the root compartment"
"Show me policy statements for 'network-admins-policy'"
"What permissions does this policy grant?"
"Get details for policy ocid1.policy.oc1..."
# Dynamic Groups
"List all dynamic groups in my tenancy"
"Show me matching rules for dynamic group 'instance-principals'"
"What instances match this dynamic group?"
"Get details for dynamic group ocid1.dynamicgroup.oc1..."
# Security auditing
"Which users have admin access?"
"Show me all policies that grant object storage access"
"What dynamic groups allow instance principals?"
Gestión de instancias de cómputo
# List instances
"Show me all compute instances in compartment ocid1.compartment.oc1..."
# Get instance details
"Get details for instance ocid1.instance.oc1..."
# Start/stop instances
"Start the instance ocid1.instance.oc1..."
"Stop the instance ocid1.instance.oc1... with force stop"
Gestión de bases de datos
# DB Systems
"Show me all DB Systems in compartment ocid1.compartment.oc1..."
"Get details for DB System ocid1.dbsystem.oc1..."
# DB Nodes management
"List all DB Nodes for DB System ocid1.dbsystem.oc1..."
"Start DB Node ocid1.dbnode.oc1..."
"Stop all nodes of DB System ocid1.dbsystem.oc1..."
"Reboot DB Node ocid1.dbnode.oc1..."
"Soft reset DB Node ocid1.dbnode.oc1..."
# Regular Databases 🆕
"List all databases in compartment X"
"Show me databases in DB System Y"
"Get connection strings for database ocid1.database.oc1..."
"What is the character set and PDB name of this database?"
# Autonomous Databases 🆕
"List all Autonomous Databases in compartment Z"
"Show me details for ADB ocid1.autonomousdatabase.oc1..."
"What workload type is this Autonomous Database?"
"Get connection strings and wallet info for this ADB"
"Is auto-scaling enabled on this Autonomous Database?"
Gestión de redes
# VCN operations
"List all VCNs in compartment ocid1.compartment.oc1..."
"Show me details for VCN ocid1.vcn.oc1..."
# Subnet operations
"List all subnets in VCN ocid1.vcn.oc1..."
"Get details for subnet ocid1.subnet.oc1..."
# Security operations
"Show me all security lists in compartment X"
"List all network security groups in VCN Y"
"Get security rules for security list ocid1.securitylist.oc1..."
# VNIC operations
"List all VNICs for instance ocid1.instance.oc1..."
"Show me details for VNIC ocid1.vnic.oc1..."
Gestión de almacenamiento 🆕
# Object Storage operations
"What is my Object Storage namespace?"
"List all buckets in compartment X"
"Show me details for bucket 'my-data-bucket'"
"Is bucket 'public-bucket' publicly accessible?"
# Block Storage operations
"List all volumes in compartment Y"
"Show me details for volume ocid1.volume.oc1..."
"List all boot volumes in compartment Z"
"What is the size and performance tier of this volume?"
# File Storage operations
"List all file systems in compartment W and AD-1"
"Show me details for file system ocid1.filesystem.oc1..."
"How many bytes is this file system using?"
Gestión de load balancers 🆕
# Classic Load Balancers
"List all load balancers in compartment X"
"Show me details for load balancer ocid1.loadbalancer.oc1..."
"What backend sets and listeners does this load balancer have?"
"Show me health check configuration for this load balancer"
# Network Load Balancers
"List all network load balancers in compartment Y"
"Show me details for network load balancer ocid1.networkloadbalancer.oc1..."
"What is the backend configuration for this NLB?"
"Is source IP preservation enabled on this network load balancer?"
# Load balancer analysis
"Show me all load balancers and their IP addresses"
"Which load balancers are private vs public?"
Utilidades de infraestructura 🆕
# Availability and Fault Domains
"List all availability domains in my tenancy"
"Show me fault domains in availability domain AD-1"
"What availability domains are available in region us-ashburn-1?"
# Compute Images
"List all compute images in compartment X"
"Show me details for image ocid1.image.oc1..."
"What Oracle Linux images are available?"
"What is the size and OS version of this image?"
# Compute Shapes
"List all compute shapes available in compartment Y"
"What shapes support GPU?"
"Show me flexible shapes with configurable OCPUs"
"What is the memory and network bandwidth for shape VM.Standard.E4.Flex?"
# Regions and Tenancy
"List all available OCI regions"
"What is my tenancy name and home region?"
"Show me tenancy information"
Seguridad y cifrado 🆕
# KMS Vaults
"List all vaults in compartment X"
"Show me details for vault ocid1.vault.oc1..."
"What is the management endpoint for this vault?"
"Is this vault primary or replica?"
# Encryption Keys
"List all encryption keys in vault Y"
"Show me details for key ocid1.key.oc1..."
"What algorithm and protection mode does this key use?"
"What is the current key version?"
# Key management workflow
"First, get vault details to obtain the management_endpoint"
"Then, use that endpoint to list or get keys in that vault"
Gestión de costos 🆕
# Usage and Cost Analysis
"Show me cost and usage summary for the last 30 days"
"Get cost breakdown by service from 2024-01-01 to 2024-01-31"
"What are my costs by compartment for this month?"
"Show me daily cost summary for my tenancy"
# Cost analysis queries
"Which services are costing the most?"
"What compartment has the highest spend?"
"Show me monthly cost trends"
# Budgets
"List all budgets in compartment X"
"Show me budget details for budget ocid1.budget.oc1..."
"What is my actual spend vs budget?"
"Show me forecasted spend for this budget"
"Which budgets have alert rules configured?"
Monitoreo y observabilidad 🆕
# Alarms
"List all alarms in compartment X"
"Show me details for alarm ocid1.alarm.oc1..."
"What alarms are currently firing?"
"Show me alarm history for the last 24 hours"
"Which alarms have critical severity?"
# Metrics
"List all available metrics in compartment Y"
"Show me CPU metrics for compute instances"
"Query CpuUtilization for the last hour"
"What metrics are available for namespace oci_computeagent?"
# Logs
"Search logs for errors in the last hour"
"List all log groups in compartment Z"
"Show me logs in log group ocid1.loggroup.oc1..."
"Search for 'ERROR' in application logs"
# Troubleshooting workflows
"Show me all firing alarms and their metric queries"
"Get CPU utilization data for instance X in the last 2 hours"
"Search logs for errors related to database connections"
Container Engine for Kubernetes (OKE) 🆕
# Clusters
"List all OKE clusters in compartment X"
"Show me details for cluster ocid1.cluster.oc1..."
"What Kubernetes version is this cluster running?"
"What upgrades are available for my cluster?"
"Get the kubeconfig for cluster ocid1.cluster.oc1..."
"What are the public and private endpoints for this cluster?"
# Node Pools
"List all node pools in compartment Y"
"Show me node pools for cluster Z"
"Get details for node pool ocid1.nodepool.oc1..."
"What is the shape and size of this node pool?"
"Show me individual nodes in this node pool"
"What is the Kubernetes version of the node pool?"
# Work Requests
"List all OKE work requests in compartment A"
"Show me work requests for cluster B"
"Get details for work request ocid1.clustersworkrequest.oc1..."
"What operations are currently in progress?"
"Show me the status of cluster creation"
# Kubernetes cluster management workflows
"List all clusters and their Kubernetes versions"
"Show me clusters that have available upgrades"
"Get kubeconfig for all clusters in my compartment"
"Which node pools are running outdated Kubernetes versions?"
"Show me all work requests that failed"
Descubrimiento de recursos
# List compartments
"List all compartments in my tenancy"
# Cross-resource queries
"Show me all running instances in compartment X"
"List all DB Systems and their current states"
"Show me the complete network topology for compartment X"
🚀 Mejoras recientes
v1.16 - Herramientas de Exadata Cloud Service (Última) 🗄️
- 10 nuevas herramientas: Cloud Exadata Infrastructure, Cloud VM Clusters, Cloud Autonomous VM Clusters, Data Guard, Backups y Maintenance Runs
- Exadata Cloud Service: Listar/obtener Cloud Exadata Infrastructures y Cloud VM Clusters con detalles de RAC, SCAN DNS y versión de GI/sistema
- Data Guard: Listar/obtener asociaciones de Data Guard con rol, retraso/tasa de aplicación y modo de protección
- Backups y mantenimiento: Listar backups por compartimento/base de datos, listar/obtener ejecuciones de mantenimiento
- Total de herramientas MCP aumentó de 85 a 95
- Correcciones de errores:
list_compartmentsahora deriva el OCID de tenencia desde la configuración en lugar deget_user, corrigiendo errores 404 para usuarios federados/dominio IAM;list_available_profilesahora incluye la sección de perfil[DEFAULT] - Se agregaron ejemplos completos de uso de Exadata Cloud Service en el README
v1.15 - Herramientas de Container Engine for Kubernetes (OKE) ☸️
- 7 nuevas herramientas OKE: Clusters, Node Pools y Work Requests
- Clusters: Listar/obtener clusters con versión de Kubernetes, endpoints, configuración de red y actualizaciones disponibles
- Kubeconfig: Obtener el contenido del archivo kubeconfig para acceso kubectl a los clusters
- Node Pools: Listar/obtener node pools con información detallada de nodos, configuración de ubicación y ajustes de desalojo
- Work Requests: Rastrear operaciones asíncronas (crear, actualizar, eliminar) para recursos OKE
- Esencial para gestionar infraestructura de Kubernetes en OCI
- Total de herramientas MCP aumentó de 78 a 85
- Se agregaron ejemplos completos de uso de OKE en el README
v1.14 - Herramientas de Monitoreo y Observabilidad 🔍
- 8 nuevas herramientas de monitoreo: Alarmas, Métricas y Registros
- Alarmas: Listar/obtener alarmas con severidad, historial de consultas y transiciones de estado
- Métricas: Listar métricas, consultar datos de series temporales con MQL para análisis de rendimiento
- Registros: Buscar registros, listar grupos de registros y registros para solución de problemas
- Esencial para monitoreo en tiempo real, solución de problemas y respuesta a incidentes
- Total de herramientas MCP aumentó de 70 a 78
- Se agregaron ejemplos completos de uso de monitoreo y observabilidad en el README
v1.13 - Herramientas de Gestión de Costos 💰
- 5 nuevas herramientas de gestión de costos: Análisis de Uso/Costos y Presupuestos
- Análisis de uso: Obtener resúmenes de costos con granularidad diaria/mensual
- Desglose de costos: Analizar costos por servicio o compartimento para cualquier período de tiempo
- Gestión de presupuestos: Listar/obtener presupuestos con gasto real, gasto proyectado y reglas de alerta
- Esencial para optimización de costos, seguimiento de presupuestos y gobernanza financiera
- Total de herramientas MCP aumentó de 65 a 70
- Se agregaron ejemplos completos de uso de gestión de costos en el README
v1.12 - Herramientas de Seguridad y Cifrado 🔐
- 4 nuevas herramientas de seguridad: KMS Vaults y Claves de Cifrado
- KMS Vaults: Listar/obtener vaults con endpoints criptográficos y de gestión
- Claves de cifrado: Listar/obtener claves con algoritmo, modo de protección y forma de clave
- Cobertura completa de KMS: gestión de vaults y descubrimiento de claves
- Creación dinámica de cliente de gestión KMS usando endpoints de vault
- Total de herramientas MCP aumentó de 61 a 65
- Se agregaron ejemplos completos de uso de seguridad y cifrado en el README
v1.11 - Utilidades de Infraestructura 🏗️
- 7 nuevas herramientas de infraestructura: Availability Domains, Fault Domains, Images, Shapes, Regions y Tenancy
- Availability/Fault Domains: Listar ADs y FDs para planificación de alta disponibilidad
- Imágenes de cómputo: Listar/obtener imágenes con versiones de SO y opciones de lanzamiento
- Formas de cómputo: Listar formas con especificaciones de CPU, memoria, red y GPU
- Regiones y tenencia: Listar todas las regiones y obtener información de tenencia
- Esencial para planificación de recursos, gestión de capacidad y descubrimiento de infraestructura
- Total de herramientas MCP aumentó de 54 a 61
- Se agregaron ejemplos completos de uso de utilidades de infraestructura en el README
v1.10 - Herramientas de Balanceador de Carga ⚖️
- 4 nuevas herramientas de balanceador de carga: Classic Load Balancers y Network Load Balancers
- Classic Load Balancers: Listar/obtener LBs con conjuntos de backend, listeners y certificados
- Network Load Balancers: Listar/obtener NLBs con configuración de backend y preservación de IP
- Cobertura completa de balanceo de carga: balanceadores de carga de capa 7 (clásicos) y capa 4 (de red)
- Total de herramientas MCP aumentó de 50 a 54
- Se agregaron ejemplos completos de uso de balanceador de carga en el README
v1.9 - Herramientas de Identity & Access Management 🔐
- 8 nuevas herramientas IAM: Usuarios, Grupos, Políticas, Grupos Dinámicos
- Auditoría de seguridad: Revisar capacidades de usuario, estado de MFA y membresías de grupo
- Gestión de políticas: Listar e inspeccionar todas las declaraciones de políticas IAM
- Grupos dinámicos: Ver reglas de coincidencia de principal de instancia
- Esencial para cumplimiento, auditorías de seguridad y solución de problemas de acceso
- Total de herramientas MCP aumentó de 42 a 50
- Se agregaron ejemplos completos de uso de IAM en el README
v1.8 - Herramientas de Base de Datos 🗄️
- 4 nuevas herramientas de base de datos: Regular Databases y Autonomous Databases
- Regular Databases: Listar/obtener bases de datos con cadenas de conexión y nombres de PDB
- Autonomous Databases: Listar/obtener ADB con tipo de carga de trabajo, información de wallet y autoescalado
- Cobertura completa del ecosistema de bases de datos: DB Systems, DB Nodes, Databases y ADB
- Total de herramientas MCP aumentó de 38 a 42
- Se agregaron ejemplos completos de uso de base de datos en el README
v1.7 - Herramientas de Almacenamiento 💾
- 9 nuevas herramientas de almacenamiento: Object Storage, Block Storage y File Storage
- Object Storage: Obtener namespace, listar/obtener buckets con información de acceso público
- Block Storage: Listar/obtener volúmenes y volúmenes de arranque con niveles de rendimiento
- File Storage: Listar/obtener sistemas de archivos con bytes medidos
- Total de herramientas MCP aumentó de 29 a 38
- Se agregaron ejemplos completos de uso de almacenamiento en el README
v1.6 - Herramientas Integrales de Red 🌐
- 10 nuevas herramientas de red: VCNs, Subnets, VNICs, Security Lists y NSGs
- Descubrimiento de topología de red: Visibilidad completa de la infraestructura de red
- Auditoría de seguridad: Revisar reglas de seguridad y controles de acceso a la red
- Solución de problemas de conectividad: Información de VNIC y enrutamiento
- Total de herramientas MCP aumentó de 19 a 29
- Se agregaron ejemplos completos de uso de red en el README
v1.5 - Selección Dinámica de Perfil 🔥
- Soporte multi-tenencia: Cambiar entre perfiles de OCI sin reiniciar
- Nuevas herramientas MCP:
list_oci_profiles,set_oci_profile,get_current_oci_profile - Validación de requisitos de perfil en todas las herramientas OCI
- Argumento opcional
--profile(inicialización diferida) - Documentación completa en
DYNAMIC_PROFILE_SELECTION.md - README actualizado con listado preciso de herramientas
v1.4 - Configuración Centralizada
- Se creó
config.pycentralizado con todas las constantes de configuración - Se eliminaron números mágicos en todo el código base
- Se mejoró la mantenibilidad y descubribilidad de los valores de configuración
v1.3 - Operaciones Asíncronas
- Se eliminaron todas las llamadas bloqueantes
time.sleep() - Se hicieron todas las operaciones verdaderamente asíncronas
- Se mejoró la capacidad de respuesta del servidor
v1.2 - Manejo de Errores Estandarizado
- Se implementó el Patrón Híbrido de Manejo de Errores
- Errores técnicos → lanzar excepciones
- Estados de negocio → devolver diccionarios de éxito
- Documentación completa en
ERROR_HANDLING_PATTERN.md
v1.1 - Principio DRY
- Se creó el decorador
mcp_tool_wrapper - Se eliminaron ~150 líneas de código repetitivo
- Manejo de errores y registro consistente en todas las herramientas
v1.0 - Limpieza de Código
- Se eliminaron archivos no utilizados/obsoletos
- Se limpió el código comentado
- Se estableció una base limpia
📚 Documentación
- Guía de Selección Dinámica de Perfil - Guía completa para soporte multi-tenencia
- Patrón de Manejo de Errores - Guía para desarrolladores sobre manejo de errores
- Ejemplos de Manejo de Errores - Ejemplos prácticos
🤝 Contribuciones
¡Las contribuciones son bienvenidas! El código base sigue estos patrones:
- Manejo de errores híbrido (lanzar para errores técnicos, devolver dict para estados de negocio)
- Operaciones asíncronas (sin llamadas bloqueantes)
- Configuración centralizada (constantes en
config.py) - Principio DRY (usar decoradores para patrones comunes)
📝 Licencia
[Añade tu licencia aquí]