OCI MCP Server
Provides tools for managing Oracle Kubernetes Engine (OKE) clusters and node pools, including listing, getting, and scaling operations.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@OCI MCP ServerList my compute instances in the root compartment."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
OCI MCP Server
Created and maintained by Sarthak Pansare · open-source under Apache-2.0
Drive Oracle Cloud Infrastructure from any MCP-aware LLM client.
A Model Context Protocol server that exposes the OCI control plane — compute, networking, storage, databases, Kubernetes (OKE), load balancers, KMS vaults, functions, monitoring, and cross-service search — to any LLM tool that speaks MCP: Claude Code, Claude Desktop, Cursor, Codex CLI, Continue, VS Code, Zed, Antigravity, and others.
Token-efficient by design: one-line tool descriptions, compact summaries, pagination defaults, null-stripped responses.
What you can do
> Deploy a public web server called demo using my SSH key.
> Show me every resource in compartment XYZ grouped by type.
> Create a flexible Load Balancer fronting subnets A and B.
> List my OKE clusters and their kubernetes versions.
> Summarize CpuUtilization on instance ocid1.instance... for the last hour.
> Tear down the VCN we just created and the instance attached to it.Tool surface (50+ tools across 12 modules)
Module | Highlights |
| whoami, health_check, list_compartments, list_users, list_availability_domains, list_regions |
| list/get/launch/action/terminate instances, list_images, list_shapes, list_instance_vnics |
| VCNs, subnets, internet/NAT/service gateways, route tables, security lists |
| Object Storage buckets, list_objects, block volumes |
| DB Systems, Autonomous DB |
| Load Balancer + Network Load Balancer (create/list/delete) |
| OKE clusters, node pools (Container Engine for Kubernetes) |
| KMS vaults + keys (read) |
| Applications + functions (read) |
| Alarms, metric definitions, metric summaries (MQL) |
|
|
|
|
Install
1. Prerequisites
Python 3.10+
uv(recommended) orpipAn OCI account (cloud.oracle.com — Always-Free tier works)
2. Configure OCI credentials
In the OCI Console: avatar → My profile → API keys → Add API key → Generate API key pair.
Save the files:
~/.oci/oci_api_key.pem # private key
~/.oci/config # config (paste the snippet from the console)Example ~/.oci/config:
[DEFAULT]
user=ocid1.user.oc1..xxxx
fingerprint=aa:bb:cc:...
tenancy=ocid1.tenancy.oc1..xxxx
region=us-ashburn-1
key_file=~/.oci/oci_api_key.pem3. Clone + install
git clone https://github.com/sarthak-pansare/oci-mcp-server
cd oci-mcp-server
uv syncConnect to your LLM client
The server is a standard MCP server that speaks stdio by default. Most clients only need a small JSON snippet.
Claude Code (CLI)
claude mcp add oci -s user -- uv --directory /absolute/path/to/oci-mcp-server run oci-mcp-serverClaude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"oci": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/oci-mcp-server", "run", "oci-mcp-server"]
}
}
}Cursor
Settings → MCP → + Add new MCP server:
{
"mcpServers": {
"oci": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/oci-mcp-server", "run", "oci-mcp-server"]
}
}
}Codex CLI
Edit ~/.codex/config.toml:
[mcp_servers.oci]
command = "uv"
args = ["--directory", "/absolute/path/to/oci-mcp-server", "run", "oci-mcp-server"]Continue (VS Code / JetBrains)
In your .continue/config.yaml:
mcpServers:
- name: oci
command: uv
args: ["--directory", "/absolute/path/to/oci-mcp-server", "run", "oci-mcp-server"]VS Code (native MCP)
In .vscode/mcp.json:
{
"servers": {
"oci": {
"type": "stdio",
"command": "uv",
"args": ["--directory", "/absolute/path/to/oci-mcp-server", "run", "oci-mcp-server"]
}
}
}Zed
In ~/.config/zed/settings.json:
{
"context_servers": {
"oci": {
"command": {
"path": "uv",
"args": ["--directory", "/absolute/path/to/oci-mcp-server", "run", "oci-mcp-server"]
}
}
}
}Antigravity / generic MCP clients
Any client that supports stdio MCP can launch:
command: uv
args: ["--directory", "/abs/path/to/oci-mcp-server", "run", "oci-mcp-server"]Remote mode (HTTP/SSE)
For shared deployments or web-based clients:
uv run oci-mcp-server --transport sse --host 0.0.0.0 --port 3000
# or
uv run oci-mcp-server --transport streamable-http --host 0.0.0.0 --port 3000Put it behind an authenticating reverse proxy. See SECURITY.md.
Docker
docker build -t oci-mcp-server .
docker run --rm -p 3000:3000 \
-v ~/.oci:/root/.oci:ro \
-e OCI_MCP_TRANSPORT=sse \
oci-mcp-serverConfiguration
Env var | Purpose | Default |
| Override OCI config path |
|
| Config profile name |
|
| Override region from config | (from file) |
|
|
|
| Host for HTTP/SSE transports |
|
| Port for HTTP/SSE transports |
|
| Comma-separated module list, or |
|
Reduce token surface further
If you only need a subset of OCI services, register fewer tools — every tool's description is sent to the LLM on every turn:
uv run oci-mcp-server --enable iam,compute,networking,compositeToken-efficiency strategy
Designed to minimize the cost of using OCI tools with an LLM:
One-line docstrings. Every tool's description fits on a single line. Across all 50+ tools the schema fits in roughly 2 000 tokens.
Compact summaries by default.
list_*calls return{id, name, state, ...}— not the full SDK object. Useverbose=Trueorget_*for full detail.Pagination + limits. Every list call defaults to
limit=50(max 200) and accepts apagetoken.Null-stripping.
None/ empty fields are removed from every response.Module gating.
--enablelets users register only the services they need.
Smoke test
After installing and restarting your client:
1. Run mcp__oci__whoami → confirms credentials work
2. Run mcp__oci__list_regions → confirms network path
3. Run mcp__oci__find_resources query: "query all resources"For a full end-to-end deployment:
Deploy a web server called demo with this SSH key: ssh-ed25519 AAAAC3...Roadmap
v0.2: Logging, DNS, Events, Notifications, Streaming, Vault crypto, full Tagging UX
v0.3: Instance-principal / resource-principal auth, work-request polling helpers
v0.4: Terraform-style diffs, cost estimation tool, multi-region fan-out
Contributing
See CONTRIBUTING.md. PRs welcome.
Author
Sarthak Pansare — @sarthak-pansare
If this project saves you time, a ⭐ on the GitHub repo is appreciated.
License
Apache-2.0 — see LICENSE. Copyright © 2026 Sarthak Pansare.
Acknowledgements
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sarthak-pansare/oci-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server