GoCoder7/oci-mcp-server
If you are the rightful owner of oci-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Oracle Cloud Infrastructure (OCI) MCP Server provides a unified interface for managing OCI services, optimized for integration with Visual Studio Code.
Oracle Cloud Infrastructure (OCI) MCP Server
A Model Context Protocol (MCP) server that provides access to Oracle Cloud Infrastructure services through a unified interface, optimized for VS Code integration.
Features
š Unified OCI Management Tool
oci-manage
- Comprehensive OCI resource management
- Compute: Instances, volumes, shapes, images
- Storage: Object storage buckets and objects
- Network: VCNs, subnets, security lists, gateways
- Database: DB systems, autonomous databases, backups
- Monitoring: Alarms, metrics, logs
- Identity: Users, groups, policies
Quick Start
1. Installation
git clone https://github.com/GoCoder7/oci-mcp-server.git
cd oci-mcp-server
npm install
2. Build
npm run build
3. Configure OCI Authentication
Copy the example environment file and configure your OCI credentials:
cp .env.example .env
Edit .env
with your OCI credentials:
OCI_TENANCY_ID=ocid1.tenancy.oc1..aaaaaaaa...
OCI_USER_ID=ocid1.user.oc1..aaaaaaaa...
OCI_KEY_FINGERPRINT=aa:bb:cc:dd:ee:ff:gg:hh:ii:jj:kk:ll:mm:nn:oo:pp
OCI_PRIVATE_KEY_PATH=/path/to/your/oci_api_key.pem
OCI_REGION=us-ashburn-1
OCI_COMPARTMENT_ID=ocid1.compartment.oc1..aaaaaaaa... (optional)
4. VS Code Integration
Add to your VS Code settings.json
:
{
"mcp.servers": {
"oci-mcp-server": {
"command": "node",
"args": ["/path/to/oci-mcp-server/dist/simple-index.js"],
"env": {
"OCI_TENANCY_ID": "your-tenancy-id",
"OCI_USER_ID": "your-user-id",
"OCI_KEY_FINGERPRINT": "your-key-fingerprint",
"OCI_PRIVATE_KEY_PATH": "/path/to/your/oci_api_key.pem",
"OCI_REGION": "us-ashburn-1"
}
}
}
}
Usage Examples
List Compute Instances
{
"service": "compute",
"action": "list",
"resourceType": "instances",
"compartmentId": "ocid1.compartment.oc1..aaaaaaaa..."
}
Get Specific Instance Details
{
"service": "compute",
"action": "get",
"resourceType": "instance",
"resourceId": "ocid1.instance.oc1.iad.aaaaaaaa..."
}
Create Object Storage Bucket
{
"service": "storage",
"action": "create",
"resourceType": "bucket",
"parameters": {
"name": "my-new-bucket",
"compartmentId": "ocid1.compartment.oc1..aaaaaaaa..."
}
}
List VCNs
{
"service": "network",
"action": "list",
"resourceType": "vcns",
"compartmentId": "ocid1.compartment.oc1..aaaaaaaa..."
}
Monitor Database Performance
{
"service": "monitoring",
"action": "list",
"resourceType": "metrics",
"parameters": {
"namespace": "oci_autonomous_database"
}
}
OCI Authentication Setup
1. Create API Key Pair
- Log into OCI Console
- Go to Profile ā User Settings ā API Keys
- Click "Add API Key"
- Generate or upload a key pair
- Save the private key file securely
2. Required Information
- Tenancy OCID: Found in Profile ā Tenancy
- User OCID: Found in Profile ā User Settings
- Key Fingerprint: Generated when creating API key
- Private Key Path: Location of your .pem file
- Region: Your preferred OCI region
- Compartment OCID: Optional default compartment
3. Set File Permissions
chmod 600 /path/to/your/oci_api_key.pem
Available Services & Actions
Services
compute
- Compute instances and volumesstorage
- Object storage buckets and objectsnetwork
- VCNs, subnets, securitydatabase
- Database systems and autonomous DBsmonitoring
- Alarms, metrics, loggingidentity
- Users, groups, policies
Actions
list
- List resources of specified typeget
- Get details of specific resourcecreate
- Create new resourceupdate
- Update existing resource (where supported)delete
- Delete resource (where supported)start
- Start resource (instances, databases)stop
- Stop resource (instances, databases)
Resource Types
Compute: instances
, volumes
, images
, shapes
Storage: buckets
, objects
Network: vcns
, subnets
, security-lists
, gateways
Database: db-systems
, autonomous-databases
, backups
Monitoring: alarms
, metrics
, logs
Identity: users
, groups
, policies
Development
Project Structure
src/
āāā simple-index.ts # Main MCP server (simplified)
āāā index.ts # Full MCP server (advanced)
āāā types/
ā āāā oci.ts # Type definitions
āāā utils/
ā āāā oci-client.ts # OCI client management
āāā tools/
āāā compute.ts # Compute management
āāā storage-network.ts # Storage & network
āāā database-analytics.ts # Database & analytics
āāā monitoring-security.ts # Monitoring & security
Available Scripts
npm run build
- Build the projectnpm run dev
- Run in development modenpm run watch
- Run with auto-reloadnpm start
- Run compiled version
Current Implementation
The server currently provides:
- ā MCP protocol integration
- ā OCI credential validation
- ā VS Code tool interface
- ā Basic service structure
- š§ Full OCI SDK integration (in progress)
Troubleshooting
Common Issues
Authentication Errors
- Verify OCI credentials are correct
- Check private key file permissions (600)
- Ensure user has proper IAM policies
Connection Issues
- Verify region is correct
- Check network connectivity to OCI
- Validate compartment access
VS Code Integration
- Ensure MCP extension is installed
- Check server configuration in settings.json
- Verify file paths are absolute
Error Messages
"OCI credentials not configured"
- Set required environment variables
- Check .env file or VS Code settings
"Cannot use import statement outside a module"
- Ensure package.json has
"type": "module"
- Verify build completed successfully
Contributing
- Fork the repository
- Create feature branch
- Make changes
- Add tests if applicable
- Submit pull request
Security
- Never commit
.env
files or private keys - Use IAM policies to limit permissions
- Regularly rotate API keys
- Monitor OCI usage and costs
License
MIT License - see LICENSE file for details
Support
For issues:
- Check troubleshooting section
- Review OCI documentation
- Open GitHub issue
- Consult OCI community forums