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 install2.建造
npm run build3.配置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密钥对
- 登录OCI控制台
- 转到个人资料→ 用户设置→ API密钥
- 单击“添加API密钥”
- 生成或上传密钥对
- 安全保存私钥文件
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" - 验证构建是否成功完成
贡献
- 分叉存储库
- 创建特征分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
安全
- 永不承诺
.env文件或私钥 - 使用IAM策略限制权限
- 定期旋转API键
- 监控OCI使用情况和成本
许可证
MIT许可证-有关详细信息,请参阅许可证文件
支持
对于问题:
- 检查故障排除部分
- 审查OCI文件
- 打开GitHub问题
- 咨询OCI社区论坛
