oci-mcp
The OCI MCP Server is designed to expose tools and resources of Oracle Cloud Infrastructure. It allows users to interact with Compute, Autonomous Databases, and Object Storage, perform quick security checks, and provides experimental cost summaries. Built using the MCP Python SDK, it integrates seamlessly with Claude Desktop.
GitHub Stars
1
User Rating
Not Rated
Favorites
0
Views
9
Forks
2
Issues
0
OCI MCP Server
Model Context Protocol (MCP) server exposing Oracle Cloud Infrastructure tools, resources and prompts.
- 🔧 Tools: list/inspect Compute, Autonomous Databases, Object Storage, instance actions, quick security checks, (experimental) cost summaries
- 📚 Resources:
oci://compartments
etc. - 🧠 Prompts:
oci_analysis_prompt
- 🖥️ Works with Claude Desktop via stdio transport
Built with the official MCP Python SDK and the OCI Python SDK.
Quick start
git clone https://github.com/karthiksuku/oci-mcp.git
cd oci-mcp
chmod +x install.sh
./install.sh
### Auth Prerequisites
- OCI CLI configured. By default this server reads credentials from `~/.oci/config`.
- Create it with: `oci setup config`
- macOS/Linux: `~/.oci/config`
- Windows: `%USERPROFILE%\.oci\config`
- Override via `OCI_CONFIG_FILE=/path/to/config` or a `.env` file.
# ensure you've run: oci setup config
python oci_mcp_server.py # starts stdio MCP server
Add to Claude Desktop
Add to ~/.claude/claude_desktop_config.json
:
{
"mcpServers": {
"oci-infrastructure": {
"command": "python",
"args": ["/ABSOLUTE/PATH/oci-mcp/oci_mcp_server.py"],
"env": { "OCI_CONFIG_FILE": "/Users/<you>/.oci/config" }
}
}
}
Open Claude Desktop → Connect to server → select oci-infrastructure.
Required IAM policies (examples)
Grant read-only for discovery (adjust compartment OCIDs and groups):
Allow group MyGroup to read instances in tenancy
Allow group MyGroup to read virtual-network-family in tenancy
Allow group MyGroup to read autonomous-database-family in tenancy
Allow group MyGroup to read objectstorage-namespaces in tenancy
Allow group MyGroup to read buckets in tenancy
Allow group MyGroup to read usage-reports in tenancy
For instance actions:
Allow group MyGroup to manage instance-family in compartment <COMP_OCID>
Tools
list_compute_instances(compartment_ocid=None, lifecycle_state=None)
get_instance_details(instance_id)
instance_action(instance_id, action)
— actions: START, STOP, RESET, SOFTRESET, SOFTSTOPlist_autonomous_databases(compartment_ocid=None)
list_storage_buckets(compartment_ocid=None)
list_compartments()
perform_security_assessment(compartment_ocid=None)
get_tenancy_cost_summary(start_time_iso, end_time_iso, granularity="DAILY")
(experimental; requires Usage API access)
See examples/sample_queries.md
for ideas.
Configuration
- Uses
~/.oci/config
by default (created viaoci setup config
). - Can also read explicit env vars from
.env
(see.env.example
). - Optional:
DEFAULT_COMPARTMENT_OCID
to scope queries.
Notes
- Cost summary uses the Usage API if available.
- Networking/security heuristics are conservative (non-invasive read-only calls).
- This repo is a base—extend with OKE, LB, Budgets, Events, etc.
License
MIT
0
Followers
10
Repositories
0
Gists
0
Total Contributions