OCI管理服务器

一个提供统一接口访问Oracle云基础设施服务的模型上下文协议(MCP)服务器,优化了VS Code集成。

  • by GoCoder7
  • TypeScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 GoCoder7/oci-mcp-server

使用说明

Oracle云基础架构(OCI)MCP服务器

一种模型上下文协议(MCP)服务器,通过统一的接口提供对Oracle云基础设施服务的访问,针对VS代码集成进行了优化。

特性

🚀 统一OCI管理工具

oci-manage -综合OCI资源管理

  • 计算:实例、体积、形状、图像
  • 存储:对象存储桶和对象
  • 网络:VCN、子网、安全列表、网关
  • 数据库:数据库系统、自主数据库、备份
  • 监控:警报、指标、日志
  • 身份:用户、组、策略

快速开始

1.安装

git clone https://github.com/GoCoder7/oci-mcp-server.git
cd oci-mcp-server
npm install

2.建造

npm run build

3.配置OCI身份验证

复制示例环境文件并配置OCI凭据:

cp .env.example .env

编辑 .env 使用您的OCI凭据:

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代码集成

添加到您的VS代码 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"
      }
    }
  }
}

使用示例

列出计算实例

{
  "service": "compute",
  "action": "list",
  "resourceType": "instances",
  "compartmentId": "ocid1.compartment.oc1..aaaaaaaa..."
}

获取特定实例详细信息

{
  "service": "compute", 
  "action": "get",
  "resourceType": "instance",
  "resourceId": "ocid1.instance.oc1.iad.aaaaaaaa..."
}

创建对象存储桶

{
  "service": "storage",
  "action": "create", 
  "resourceType": "bucket",
  "parameters": {
    "name": "my-new-bucket",
    "compartmentId": "ocid1.compartment.oc1..aaaaaaaa..."
  }
}

列出VCN

{
  "service": "network",
  "action": "list",
  "resourceType": "vcns",
  "compartmentId": "ocid1.compartment.oc1..aaaaaaaa..."
}

监控数据库性能

{
  "service": "monitoring",
  "action": "list", 
  "resourceType": "metrics",
  "parameters": {
    "namespace": "oci_autonomous_database"
  }
}

OCI身份验证设置

1.创建API密钥对

  1. 登录OCI控制台
  2. 转到个人资料→ 用户设置→ API密钥
  3. 单击“添加API密钥”
  4. 生成或上传密钥对
  5. 安全保存私钥文件

2.所需信息

  • 租赁OCID:在个人资料中找到→ 租赁
  • 用户 OCID:在个人资料中找到→ 用户设置
  • 密钥的指纹:创建API密钥时生成
  • 私钥路径:您的.pem文件的位置
  • 区域:您首选的OCI地区
  • 隔间OCID:可选默认隔间

3.设置文件权限

chmod 600 /path/to/your/oci_api_key.pem

可用服务和行动

服务

  • compute -计算实例和卷
  • storage -对象存储桶和对象
  • network -VCN、子网、安全
  • database -数据库系统和自主数据库
  • monitoring -警报、指标、日志记录
  • identity -用户、组、策略

行动

  • list -列出指定类型的资源
  • get -获取特定资源的详细信息
  • create -创建新资源
  • update -更新现有资源(在支持的情况下)
  • delete -删除资源(如果支持)
  • start -启动资源(实例、数据库)
  • stop -停止资源(实例、数据库)

资源类型

计算: instances, volumes, images, shapes
存储: buckets, objects
网络: vcns, subnets, security-lists, gateways
数据库: db-systems, autonomous-databases, backups
监控: alarms, metrics, logs
身份: users, groups, policies

发展

项目结构

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

可用脚本

  • npm run build -构建项目
  • npm run dev -以开发模式运行
  • npm run watch -自动重新加载运行
  • npm start -运行编译版本

当前实施情况

服务器当前提供:

  • ✅ MCP协议集成
  • ✅ OCI凭证验证
  • ✅ VS代码工具界面
  • ✅ 基本服务结构
  • 🚧 完整的OCI SDK集成(正在进行中)

故障排除

常见问题

身份验证错误

  • 验证OCI凭据是否正确
  • 检查私钥文件权限(600)
  • 确保用户具有适当的IAM策略

连接问题

  • 验证区域是否正确
  • 检查OCI的网络连接
  • 验证隔间入口

VS代码集成

  • 确保安装了MCP扩展
  • 检查settings.json中的服务器配置
  • 验证文件路径是否为绝对路径

错误消息

“未配置OCI凭据”

  • 设置所需的环境变量
  • 检查.env文件或VS代码设置

“不能在模块外使用import语句”

  • 确保package.json具有 "type": "module"
  • 验证构建是否成功完成

贡献

  1. 分叉存储库
  2. 创建特征分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

安全

  • 永不承诺 .env 文件或私钥
  • 使用IAM策略限制权限
  • 定期旋转API键
  • 监控OCI使用情况和成本

许可证

MIT许可证-有关详细信息,请参阅许可证文件

支持

对于问题:

  1. 检查故障排除部分
  2. 审查OCI文件
  3. 打开GitHub问题
  4. 咨询OCI社区论坛