mcp-server-oci

mcp-server-oci

Enables interaction with Oracle Cloud Infrastructure through the MCP protocol. Supports dynamic profile selection and provides 85 tools for managing compute, databases, networking, IAM, storage, load balancers, OKE, monitoring, and cost management.

Category
Visit Server

README

<p align="center"> <img src="./assets/oraclemind_logo_light.png" alt="OracleMind Logo" width="420"/> </p>

<h1 align="center">OracleMind</h1> <p align="center"><em>AI-powered MCP server for Oracle Cloud Infrastructure — 85 tools to manage OCI with Claude and other LLMs</em></p>

Skill MCP permettant aux LLM comme Claude d'interagir directement avec Oracle Cloud Infrastructure via le Model Context Protocol.

Python MCP OCI Tools License Pro Services Contact


✨ Caractéristiques

  • Sélection dynamique de profils : basculez entre les profils/locations OCI sans redémarrer le serveur
  • Connexion OCI standard : utilise la configuration standard de l'interface CLI OCI
  • 85 outils complets couvrant plus de 11 catégories de services OCI
  • Gestion du cycle de vie des instances (démarrage, arrêt)
  • Gestion des systèmes de bases de données et des nœuds de bases de données
  • Gestion des clusters OKE et des pools de nœuds Kubernetes
  • Intégration native Claude Desktop via le protocole MCP

📜 Licence

Ce projet est distribué sous une licence personnelle non commerciale.

✅ Usage personnel gratuit — Pour tout développeur individuel à des fins non commerciales. ❌ Usage commercial interdit — Toute utilisation commerciale nécessite une licence commerciale.

Zehair Louzza détient l'intégralité des droits sur ce logiciel (droits intellectuels, commerciaux et moraux).

👉 Voir LICENSE pour les termes complets. 👉 Pour un usage commercial : COMMERCIAL_LICENSE.md ou 📧 contact@journeyinto-ai.com


🚀 Pro Services & MVPs

Des services professionnels et des licences commerciales sont disponibles directement auprès de l'auteur.

Offre Cible Détails
Licence Individuelle Pro Freelances, consultants solo Droits commerciaux pour usage individuel
Licence Team / Startup Équipes ≤ 10 ingénieurs Support prioritaire + outils personnalisés
Licence Enterprise Entreprises, MSP, intégrateurs cloud Droits illimités, white-label, NDA

MVPs disponibles

  • OCI Infrastructure Monitor — Dashboard SaaS temps réel (FastAPI + React + OCI MCP)
  • AI-Powered OCI Ops Assistant — Assistant conversationnel LLM pour gérer OCI en langage naturel
  • Multi-Cloud Data Pipeline — Pipeline OCI → Snowflake/Supabase avec dbt et monitoring
  • Custom MCP Tool Development — Développement d'outils OCI sur mesure

👉 Voir COMMERCIAL_LICENSE.md pour les détails complets. 📧 Contact : contact@journeyinto-ai.com


📦 Prérequis

  • Python 3.10 ou version ultérieure
  • CLI OCI configurée (oci setup config)
  • Autorisations appropriées dans Oracle Cloud

🚀 Installation

# 1. Clonez ce dépôt
git clone https://github.com/zehair-louzza/mcp-server-oci.git
cd mcp-server-oci

# 2. Installez le SDK MCP
pip install git+https://github.com/modelcontextprotocol/python-sdk.git

# 3. Installez les dépendances
pip install oci fastapi uvicorn click pydantic loguru

# 4. Installez le package en mode éditable
pip install -e .

▶️ Usage

Option 1 : Sélection dynamique du profil (recommandée)

python -m mcp_server_oci.mcp_server

Puis utilisez les outils MCP pour gérer les profils :

Outil Description
list_oci_profiles Consulter les profils dans ~/.oci/config
set_oci_profile Activer un profil spécifique
get_current_oci_profile Vérifier quel profil est actif

Option 2 : Avec profil par défaut

python -m mcp_server_oci.mcp_server --profile DEFAULT

Avec uv

uv --directory /path/to/mcp-server-oci run python -m mcp_server_oci.mcp_server --profile DEFAULT

🖥️ Configuration Claude Desktop (macOS)

Ajoutez cette configuration dans : /Users/<username>/Library/Application Support/Claude/claude_desktop_config.json

Profil dynamique (recommandé)

{
  "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"
      }
    }
  }
}

Profil fixe

{
  "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"
      }
    }
  }
}

Avec uv et profils dynamiques

{
  "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"
      }
    }
  }
}

📋 85 Outils MCP disponibles

🔑 Gestion des profils

Outil Description
list_oci_profiles Lister tous les profils OCI dans ~/.oci/config
set_oci_profile Activer un profil spécifique
get_current_oci_profile Afficher le profil actif

👤 Identités et Accès (IAM)

Outil Description
list_compartments Lister tous les compartiments accessibles
list_users Lister les utilisateurs IAM avec statut MFA
get_user Détails utilisateur + appartenances aux groupes
list_groups Lister les groupes IAM avec nombre de membres
get_group Détails groupe avec liste des membres
list_policies Lister les politiques IAM avec déclarations
get_policy Détails d'une politique avec toutes les règles
list_dynamic_groups Lister les groupes dynamiques avec règles
get_dynamic_group Détails groupe dynamique + règles principales

🖥️ Instances de calcul

Outil Description
list_instances Lister les VM dans un compartiment
get_instance Détails d'une instance
start_instance Démarrer une instance arrêtée
stop_instance Arrêter une instance (progressif/forcé)

🗄️ Bases de données

Outil Description
list_db_systems Lister les systèmes de bases de données
get_db_system Détails d'un système de BDD
list_db_nodes Lister les nœuds de BDD
get_db_node Détails d'un nœud de BDD
start_db_node Démarrer un nœud arrêté
stop_db_node Arrêter un nœud (progressif/forcé)
reboot_db_node Redémarrer un nœud
reset_db_node Forcer le redémarrage d'un nœud
softreset_db_node Redémarrage logiciel d'un nœud
start_db_system Démarrer tous les nœuds d'un système
stop_db_system Arrêter tous les nœuds d'un système
list_databases Lister les bases de données d'un compartiment
get_database Détails BDD + chaînes de connexion + PDB
list_autonomous_databases Lister les ADB avec type de charge de travail
get_autonomous_database Détails ADB + portefeuille + auto-scaling

🌐 Réseau

Outil Description
list_vcns Lister les VCN avec blocs CIDR
get_vcn Détails VCN incluant IPv6
list_subnets Lister les sous-réseaux
get_subnet Détails sous-réseau + sécurité + routage
list_vnics Lister les VNIC d'un compartiment/instance
get_vnic Détails VNIC + IPs + NSG
list_security_lists Lister les listes de sécurité avec règles
get_security_list Détails liste de sécurité
list_network_security_groups Lister les NSG
get_network_security_group Détails NSG avec toutes les règles

💾 Stockage

Outil Description
get_namespace Espace de noms Object Storage
list_buckets Lister les buckets Object Storage
get_bucket Détails bucket + accès public + versionnage
list_volumes Lister les volumes Block Storage
get_volume Détails volume + performance + sauvegarde
list_boot_volumes Lister les volumes de démarrage
get_boot_volume Détails volume boot + image source
list_file_systems Lister les systèmes de fichiers
get_file_system Détails + octets mesurés + instantanés

⚖️ Équilibreurs de charge

Outil Description
list_load_balancers Lister les load balancers classiques
get_load_balancer Détails + backends + écouteurs + certificats
list_network_load_balancers Lister les NLB
get_network_load_balancer Détails NLB + config backend

🏗️ Infrastructure & Services publics

Outil Description
list_availability_domains Lister les domaines de disponibilité
list_fault_domains Lister les domaines de panne
list_images Lister les images de calcul (OS, version, taille)
get_image Détails image + options de lancement
list_shapes Lister les shapes (CPU, RAM, GPU, réseau)
list_regions Lister toutes les régions OCI
get_tenancy_info Infos de la location + région d'origine

🔐 Sécurité & Chiffrement (KMS)

Outil Description
list_vaults Lister les coffres KMS
get_vault Détails coffre + points de terminaison
list_keys Lister les clés de chiffrement dans un coffre
get_key Détails clé + algorithme + structure + versions

💰 Gestion des coûts

Outil Description
get_cost_usage_summary Récapitulatif coûts/utilisation (quotidien/mensuel)
get_cost_by_service Ventilation des coûts par service
get_cost_by_compartment Ventilation des coûts par compartiment
list_budgets Lister les budgets avec dépenses réelles/prévues
get_budget Détails budget + objectifs + règles d'alerte

📊 Surveillance & Observabilité

Outil Description
list_alarms Lister les alarmes avec sévérité et destinations
get_alarm Détails alarme + seuils + notifications
get_alarm_history Historique des états avec horodatage
list_metrics Lister les métriques disponibles + espaces de noms
query_metric_data Interroger les données métriques avec MQL
search_logs Rechercher des journaux (Log Search API)
list_log_groups Lister les groupes de journaux
list_logs Lister les journaux d'un groupe

☸️ Container Engine for Kubernetes (OKE)

Outil Description
list_oke_clusters Lister les clusters OKE avec version K8s
get_oke_cluster Détails cluster + réseau + addons + upgrades
get_oke_cluster_kubeconfig Obtenir le kubeconfig pour kubectl
list_oke_node_pools Lister les pools de nœuds
get_oke_node_pool Détails pool + nœuds + éviction + cycling
list_oke_work_requests Lister les opérations asynchrones OKE
get_oke_work_request État et avancement d'une work request

💡 Exemples d'utilisation

Gestion des profils

# Depuis Claude ou tout client MCP :
"Show me all available OCI profiles"
"Set the OCI profile to 'production'"
"What OCI profile am I currently using?"
"Switch to the DEFAULT profile"

IAM & Sécurité

"List all IAM users in my tenancy"
"Does this user have MFA enabled?"
"List all IAM groups in compartment X"
"List all IAM policies in the root compartment"
"What permissions does this policy grant?"
"Which users have admin access?"
"What dynamic groups allow instance principals?"

Instances de calcul

"Show me all compute instances in compartment ocid1.compartment.oc1..."
"Get details for instance ocid1.instance.oc1..."
"Start the instance ocid1.instance.oc1..."
"Stop the instance ocid1.instance.oc1... with force stop"

Bases de données

"Show me all DB Systems in compartment ocid1.compartment.oc1..."
"List all databases in compartment X"
"Get connection strings for database ocid1.database.oc1..."
"List all Autonomous Databases in compartment Z"
"Is auto-scaling enabled on this Autonomous Database?"

Réseau

"List all VCNs in compartment ocid1.compartment.oc1..."
"List all subnets in VCN ocid1.vcn.oc1..."
"Show me all security lists in compartment X"
"List all network security groups in VCN Y"
"List all VNICs for instance ocid1.instance.oc1..."

Stockage

"What is my Object Storage namespace?"
"List all buckets in compartment X"
"Is bucket 'public-bucket' publicly accessible?"
"List all volumes in compartment Y"
"List all file systems in compartment W and AD-1"

Équilibreurs de charge

"List all load balancers in compartment X"
"What backend sets and listeners does this load balancer have?"
"List all network load balancers in compartment Y"
"Which load balancers are private vs public?"

Infrastructure

"List all availability domains in my tenancy"
"List all compute shapes available in compartment Y"
"What shapes support GPU?"
"List all available OCI regions"
"What is my tenancy name and home region?"

KMS & Sécurité

"List all vaults in compartment X"
"List all encryption keys in vault Y"
"What algorithm and protection mode does this key use?"

Gestion des coûts

"Show me cost and usage summary for the last 30 days"
"Get cost breakdown by service from 2024-01-01 to 2024-01-31"
"Which services are costing the most?"
"List all budgets in compartment X"
"What is my actual spend vs budget?"

Surveillance

"List all alarms in compartment X"
"What alarms are currently firing?"
"Show me alarm history for the last 24 hours"
"Query CpuUtilization for the last hour"
"Search logs for errors in the last hour"
"Search for 'ERROR' in application logs"

OKE (Kubernetes)

"List all OKE clusters in compartment X"
"What Kubernetes version is this cluster running?"
"Get the kubeconfig for cluster ocid1.cluster.oc1..."
"List all node pools in compartment Y"
"Show me all work requests that failed"
"Which node pools are running outdated Kubernetes versions?"

🚀 Historique des versions

Version Catégorie Nouveautés Nbre d'outils
v1.15 OKE ☸️ 7 outils : clusters, node pools, work requests 85
v1.14 Surveillance 🔍 8 outils : alarmes, métriques, journaux 78
v1.13 Coûts 💰 5 outils : analyse coûts, budgets 70
v1.12 Sécurité/KMS 🔐 4 outils : coffres-forts, clés 65
v1.11 Infrastructure 🏗️ 7 outils : AD, FD, images, shapes, régions 61
v1.10 Load Balancers ⚖️ 4 outils : LB classique et réseau 54
v1.9 IAM 🔐 8 outils : users, groupes, policies, dyn. groups 50
v1.8 BDD 🗄️ 4 outils : BDD classiques et autonomes 42
v1.7 Stockage 💾 9 outils : object, block, file storage 38
v1.6 Réseau 🌐 10 outils : VCN, subnets, VNIC, NSG 29
v1.5 Profils 🔥 Sélection dynamique multi-locataires 19
v1.0 Base Compute + DB Nodes —

📚 Documentation


🤝 Contribuer

Les contributions sont les bienvenues pour un usage non commercial ! Le code source suit les patterns suivants :

  • Gestion hybride des erreurs : lever une exception pour les erreurs techniques, retourner un dictionnaire pour les états métier
  • Opérations asynchrones : pas d'appels bloquants (time.sleep())
  • Configuration centralisée : constantes dans config.py
  • Principe DRY : décorateurs pour les patterns communs (mcp_tool_wrapper)

⚠️ Toute contribution reste soumise aux termes de la licence. En contribuant, vous acceptez que vos modifications soient intégrées sous la même licence et que les droits restent la propriété exclusive de Zehair Louzza.


📝 Licence & Contact

Ce projet est sous licence personnelle non commerciale. Zehair Louzza détient l'intégralité des droits sur ce logiciel.

© 2026 Zehair Louzza. All rights reserved.

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured