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.Related MCP server: Oracle Cloud Infrastructure (OCI) MCP Server
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
Maintenance
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
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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