Install
$ agentstack add mcp-sarthak-pansare-oci-mcp-server ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
OCI MCP Server
[](LICENSE) [](https://www.python.org/) [](https://modelcontextprotocol.io) [](https://github.com/sarthak-pansare)
> 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 | |---------------|------------| | iam | whoami, healthcheck, listcompartments, listusers, listavailabilitydomains, listregions | | compute | list/get/launch/action/terminate instances, listimages, listshapes, listinstancevnics | | networking | VCNs, subnets, internet/NAT/service gateways, route tables, security lists | | storage | Object Storage buckets, list_objects, block volumes | | database | DB Systems, Autonomous DB | | loadbalancer| Load Balancer + Network Load Balancer (create/list/delete) | | oke | OKE clusters, node pools (Container Engine for Kubernetes) | | vault | KMS vaults + keys (read) | | functions | Applications + functions (read) | | monitoring | Alarms, metric definitions, metric summaries (MQL) | | search | find_resources across every OCI resource type | | composite | deploy_web_server (full stack in one shot), teardown_stack |
Install
1. Prerequisites
- Python 3.10+
uv(recommended) orpip- An 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.pem
3. Clone + install
git clone https://github.com/sarthak-pansare/oci-mcp-server
cd oci-mcp-server
uv sync
Connect 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-server
Claude 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 3000
Put it behind an authenticating reverse proxy. See [SECURITY.md](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-server
Configuration
| Env var | Purpose | Default | |-----------------------|--------------------------------------------------------|--------------| | OCI_CONFIG_FILE | Override OCI config path | ~/.oci/config | | OCI_PROFILE | Config profile name | DEFAULT | | OCI_REGION | Override region from config | (from file) | | OCI_MCP_TRANSPORT | stdio \| sse \| streamable-http | stdio | | OCI_MCP_HOST | Host for HTTP/SSE transports | 127.0.0.1 | | OCI_MCP_PORT | Port for HTTP/SSE transports | 3000 | | OCI_MCP_ENABLE | Comma-separated module list, or all | all |
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,composite
Token-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](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](LICENSE). Copyright © 2026 Sarthak Pansare.
Acknowledgements
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: sarthak-pansare
- Source: sarthak-pansare/oci-mcp-server
- License: Apache-2.0
- Homepage: https://github.com/sarthak-pansare
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.