@jorgeceballos/mcp-server-oci
Version:
Model Context Protocol server for Oracle Cloud Infrastructure
195 lines (135 loc) • 5.39 kB
Markdown
# MCP Oracle Cloud Infrastructure Server
Un servidor Model Context Protocol (MCP) para Oracle Cloud Infrastructure que permite listar y gestionar recursos tipo instancias.
## Documentación
Este proyecto incluye varios documentos para ayudarte a configurar y utilizar el servidor MCP OCI:
- [README.md](README.md) - Este archivo, con información general
- [INSTRUCTIONS.md](INSTRUCTIONS.md) - Guía paso a paso detallada para instalar y configurar
- [CLAUDE-EXAMPLES.md](CLAUDE-EXAMPLES.md) - Ejemplos de cómo usar el servidor con Claude
- [oci-keys-guide.md](oci-keys-guide.md) - Guía para generar claves API para OCI
- [oci-config.example](oci-config.example) - Ejemplo de archivo de configuración OCI
- [CHANGES.md](CHANGES.md) - Registro de cambios importantes y solución de problemas
## Requisitos previos
- Node.js v16 o superior
- npm v8 o superior
- Oracle Cloud Infrastructure CLI configurado
- Oracle Cloud Infrastructure SDK para Node.js
- Model Context Protocol SDK (@modelcontextprotocol/sdk)
## Instalación
Existen varias formas de instalar este paquete:
### Instalación rápida para Claude Desktop
Utiliza el script de instalación automatizado:
```bash
npm run install-claude
```
Este script instalará el paquete globalmente y configurará Claude Desktop automáticamente.
### Instalación global
Puedes instalar este paquete globalmente:
```bash
npm install -g @jocebal/mcp-server-oci
```
O ejecutarlo directamente con npx:
```bash
npx -y @jocebal/mcp-server-oci
```
## Configuración
Este servidor utiliza el archivo de configuración estándar de Oracle Cloud CLI, que normalmente se encuentra en `~/.oci/config`. Asegúrate de que este archivo esté configurado correctamente antes de usar este servidor.
Ejemplo de un archivo de configuración OCI:
```
[DEFAULT]
user=ocid1.user.oc1..aaaaaaaa...
fingerprint=11:22:33:44:55:66:77:88:99:00:aa:bb:cc:dd:ee:ff
tenancy=ocid1.tenancy.oc1..aaaaaaaa...
region=us-ashburn-1
key_file=~/.oci/oci_api_key.pem
```
## Uso
### Iniciar el servidor
Para iniciar el servidor MCP con la configuración por defecto:
```bash
npx -y @jocebal/mcp-server-oci
```
Para especificar un perfil OCI diferente:
```bash
npx -y @jocebal/mcp-server-oci --profile MY_PROFILE
```
Para especificar un puerto diferente:
```bash
npx -y @jocebal/mcp-server-oci --port 3001
```
### Integración con Claude Desktop
Para usar este servidor con Claude Desktop, añade la siguiente configuración a tu archivo `claude_desktop_config.json`:
```json
{
"tools": {
"oracle-cloud": {
"command": "/Users/jocebal/.nvm/versions/node/v22.15.0/bin/npx",
"args": [
"-y",
"@jocebal/mcp-server-oci",
"--profile",
"DEFAULT"
],
"env": {}
}
}
}
```
El archivo de configuración debe estar ubicado en:
- macOS: `/Users/jocebal/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
- Linux: `~/.config/Claude/claude_desktop_config.json`
## Herramientas disponibles
Este servidor MCP proporciona las siguientes herramientas:
1. `list_compartments` - Lista todos los compartimentos disponibles en tu cuenta de Oracle Cloud Infrastructure.
2. `list_instances` - Lista todas las instancias de cómputo en un compartimento específico.
3. `get_instance` - Obtiene información detallada sobre una instancia específica.
4. `start_instance` - Inicia una instancia detenida.
5. `stop_instance` - Detiene una instancia en ejecución.
6. `restart_instance` - Reinicia una instancia en ejecución.
## Desarrollo
### Estructura del proyecto
```
mcp-oci-server/
├── src/
│ ├── cli.ts # Punto de entrada para la interfaz de línea de comandos
│ ├── oci/
│ │ └── client.ts # Cliente OCI para interactuar con la API de Oracle Cloud
│ ├── server/
│ │ └── server.ts # Implementación del servidor MCP
│ └── tools/
│ └── oci-tools.ts # Definición de herramientas MCP para OCI
├── package.json
├── tsconfig.json
└── README.md
```
### Compilación
Existen varias formas de compilar el proyecto:
#### Compilación y empaquetado automatizado
Utiliza el script de compilación automatizado:
```bash
npm run build-package
```
Este script limpiará, compilará y empaquetará el proyecto, y te preguntará si quieres publicarlo en npm.
#### Compilación manual
```bash
npm install
npm run build
```
### Ejecutar en modo desarrollo
```bash
npm run dev
```
## Solución de problemas
Si encuentras errores durante la instalación o compilación, consulta el archivo [CHANGES.md](CHANGES.md) que contiene información detallada sobre los cambios realizados y cómo resolver problemas comunes.
### Error de autenticación
Si recibes errores de autenticación, verifica que:
1. El archivo `~/.oci/config` existe y contiene las credenciales correctas
2. El archivo de clave privada referenciado en el config existe y tiene los permisos correctos
3. Las credenciales en el archivo de configuración son válidas
### Error de conexión
Si el servidor no puede conectarse a OCI, verifica que:
1. Tu conexión a internet funciona correctamente
2. La región configurada en tu archivo de configuración OCI es correcta
3. No hay firewalls o proxies bloqueando la conexión
## Licencia
MIT