@jorgeceballos/mcp-server-oci
Version:
Model Context Protocol server for Oracle Cloud Infrastructure
97 lines (65 loc) • 5.33 kB
Markdown
# Cambios realizados para corregir el paquete MCP
Se han realizado los siguientes cambios para corregir el error con el paquete MCP:
1. Reemplazado `@modelcontextprotocol/mcp-sdk` por `@modelcontextprotocol/sdk` en `package.json`.
2. Actualizado los imports en todos los archivos para utilizar la nueva estructura del SDK.
3. Modificado la implementación del servidor para usar la nueva API (`McpServer` en lugar de `createServer`).
4. Actualizado la estructura de herramientas para usar el esquema de validación `zod` según requiere la nueva versión del SDK.
5. Actualizado el formato de respuesta de las herramientas para utilizar el formato requerido por la nueva versión del SDK (`content: [{ type: 'text', text: '...' }]`).
6. Añadida la dependencia de `zod` que es requerida por el nuevo SDK.
## Corrección de problemas de compilación (13/05/2025)
Se corrigieron los siguientes errores de compilación:
1. **Actualizado el cliente OCI**:
- Cambiado `computeinstance` a `compute` en los imports de oci-sdk
- Actualizado el tipo del cliente de `ComputeInstanceClient` a `ComputeClient`
- Corregidos los tipos de modelos retornados en los métodos
2. **Corrección de problemas de tipado**:
- Eliminada la referencia a `Tool` que no existe en la nueva versión del SDK
- Añadidos tipos explícitos para los parámetros de los handlers para evitar errores de tipo `any` implícito
- Modificada la forma de registrar herramientas en el servidor para usar la estructura adecuada de la nueva API
3. **Corrección del formato de respuesta**:
- Actualizado el formato de respuesta de las herramientas para que `type: "text"` aparezca después del contenido según requiere el SDK
Nota: Estos cambios fueron necesarios debido a actualizaciones en la estructura de la API del SDK de MCP y en la estructura del SDK de OCI.
## Corrección de errores adicionales (13/05/2025)
Se corrigieron los siguientes errores adicionales:
1. **Actualizado el import de OCI para computeClient**:
- Cambiado de `oci-sdk/clients/compute` a `oci-sdk/clients/core` que es el correcto para Oracle Cloud Infrastructure
- Actualizado todas las referencias a `compute` a `core` en el cliente
2. **Corregido el tipado literal**:
- Cambiado `"text" as const` a `"text" as "text"` para cumplir con el tipado exigido por el SDK
3. **Eliminado código duplicado e imports innecesarios**:
- Eliminadas interfaces no utilizadas
- Corregido el import duplicado de zod
Estos cambios fueron necesarios debido a las especificidades del SDK de Oracle Cloud Infrastructure y los requisitos de tipado de TypeScript para integración con MCP.
## Corrección final de errores (13/05/2025)
Se realizaron las siguientes correcciones finales para resolver los problemas de compilación:
1. **Simplificado el import de OCI SDK**:
- Cambiado de `import * as core from 'oci-sdk/clients/core'` a `import { common, identity, core } from 'oci-sdk'` para utilizar el mismo namespace sin imports separados
2. **Mejorado el manejo de errores en handlers**:
- Añadido bloques try/catch en todos los handlers para proporcionar mensajes de error más detallados
- Mejora la depuración mostrando qué herramienta falló específicamente
3. **Corregido el paso de argumentos a los handlers**:
- Reemplazado el paso directo de `args` por objetos con estructuras específicas: `{compartmentId: args.compartmentId}` y `{instanceId: args.instanceId}`
- Esto resuelve errores de tipado relacionados con propiedades requeridas faltantes
Estos cambios resuelven los 7 errores de compilación identificados durante la instalación del paquete.
## Correcciones finales de compilación (13/05/2025)
Se han realizado las siguientes correcciones para eliminar completamente los errores de compilación:
1. **Refactorización completa del servidor MCP**:
- Eliminada la dependencia de tool.handler() para evitar problemas de tipos incompatibles
- Implementadas directamente las herramientas en el servidor sin usar los handlers definidos en oci-tools.ts
- Cada herramienta ahora llama directamente a los métodos del cliente OCI
2. **Modificado el acceso al cliente OCI**:
- Cambiado `ociClient` de privado a público para permitir el acceso directo desde el servidor
3. **Limpieza y optimización del código**:
- Eliminada la dependencia de getAllTools() para mostrar la lista de herramientas disponibles
- Simplificado el proceso de creación de herramientas
Con estas modificaciones, el proyecto compila correctamente sin errores de tipado o problemas de incompatibilidad entre los objetos.
## Solución de problemas comunes
Si encuentras problemas durante la instalación o ejecución, asegúrate de:
1. Verificar que las versiones de las dependencias son compatibles
2. Comprobar que estás usando Node.js v16 o superior
3. Asegurarte de que el paquete `@modelcontextprotocol/sdk` se ha instalado correctamente
4. Comprobar que la configuración de OCI CLI está correcta
## Referencias
- [Repositorio oficial de Model Context Protocol SDK](https://github.com/modelcontextprotocol/typescript-sdk)
- [Documentación de Model Context Protocol](https://modelcontextprotocol.io/)
- [Documentación del SDK de OCI](https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/javascriptsdk.htm)