Nextcloud Calendar

Integración de calendario CalDAV de Nextcloud. Gestiona calendarios, eventos, asistentes, etc.

Documentación

MCP Nextcloud Calendar

npm version License: ISC

Un servidor de Model Context Protocol (MCP) para la integración con Nextcloud Calendar.

Características

  • Obtener calendarios de Nextcloud
  • Funciones de organización adaptadas a TDAH
  • Soporte de protocolo MCP (HTTP Streamable y HTTP+SSE heredado)

Uso

Uso con npx

La forma más sencilla de usar este paquete es con npx:

npx mcp-nextcloud-calendar

Instalación

Para desarrollo o instalación local:

# Install globally
npm install -g mcp-nextcloud-calendar

# Or install locally
npm install mcp-nextcloud-calendar

Configuración del Cliente MCP

Para usar con un cliente MCP (como Claude), añade esta configuración a los ajustes de tu cliente MCP:

{
  "mcpServers": {
    "nextcloud-calendar": {
      "command": "npx",
      "args": ["-y", "mcp-nextcloud-calendar"],
      "env": {
        "NEXTCLOUD_BASE_URL": "https://your-nextcloud-server.com",
        "NEXTCLOUD_USERNAME": "your-username",
        "NEXTCLOUD_APP_TOKEN": "your-app-token"
      }
    }
  }
}

Especificar una Versión

Puedes fijar una versión específica del paquete:

{
  "mcpServers": {
    "nextcloud-calendar": {
      "command": "npx",
      "args": ["-y", "mcp-nextcloud-calendar@0.1.0"],
      "env": {
        "NEXTCLOUD_BASE_URL": "https://your-nextcloud-server.com",
        "NEXTCLOUD_USERNAME": "your-username",
        "NEXTCLOUD_APP_TOKEN": "your-app-token"
      }
    }
  }
}

Configuración

Variables de Entorno

El servidor utiliza estas variables de entorno, con valores predeterminados cuando es posible:

VariableDescripciónPredeterminadoRequerida
PORTPuerto del servidor3001No
SERVER_NAMEIdentificador del servidor MCPnextcloud-calendar-serverNo
NODE_ENVEntorno (desarrollo/producción)developmentNo
NEXTCLOUD_BASE_URLURL de tu servidor Nextcloud-
NEXTCLOUD_USERNAMETu nombre de usuario de Nextcloud-
NEXTCLOUD_APP_TOKENTu token de aplicación de Nextcloud-
KEEP_ALIVE_INTERVALIntervalo de keep-alive (ms)30000No

Configuración de Desarrollo

Para desarrollo local:

  1. Clona el repositorio
  2. Instala las dependencias:
npm install
  1. Crea un archivo .env en la raíz del proyecto:
cp .env.example .env
  1. Edita el archivo .env con tus credenciales de Nextcloud.

Obtener un Token de Aplicación de Nextcloud

  1. Inicia sesión en tu instancia de Nextcloud
  2. Ve a Configuración → Seguridad → Contraseñas de aplicación
  3. Crea una nueva contraseña de aplicación con un nombre como "MCP Calendar"
  4. Copia el token generado a tu archivo .env

Desarrollo

# Build the project
npm run build

# Run in development mode
npm run dev

# Run tests
npm run test

# Run linting
npm run lint

# Format code
npm run format

Endpoints de API

  • /mcp - Endpoint MCP principal (transporte HTTP Streamable)
  • /sse y /messages - Endpoints MCP heredados (transporte HTTP+SSE)
  • GET /health - Endpoint de verificación de salud
  • GET /api/calendars - Listar todos los calendarios

Herramientas MCP

Las siguientes herramientas MCP están registradas y disponibles para los clientes:

Gestión de Calendarios

HerramientaDescripciónParámetros
listCalendarsRecupera todos los calendarios accesiblesNinguno
createCalendarCrea un nuevo calendariodisplayName (requerido), color (opcional), category (opcional), focusPriority (opcional)
updateCalendarActualiza un calendario existenteid (requerido), displayName (opcional), color (opcional), category (opcional), focusPriority (opcional)
deleteCalendarElimina un calendarioid (requerido)

⚠️ Advertencia de Permisos: Las herramientas updateCalendar y deleteCalendar pueden requerir permisos especiales en tu instancia de Nextcloud. Las operaciones de calendario están sujetas al sistema de permisos de Nextcloud.

Gestión de Eventos

HerramientaDescripciónParámetros
listEventsRecupera eventos de un calendariocalendarId (requerido), start (opcional), end (opcional)
getEventObtiene un evento específicocalendarId (requerido), eventId (requerido)
createEventCrea un nuevo eventocalendarId (requerido), summary (requerido), start (requerido), end (requerido), description (opcional), location (opcional)
updateEventActualiza un evento existentecalendarId (requerido), eventId (requerido), [más cualquier propiedad del evento a actualizar]
deleteEventElimina un eventocalendarId (requerido), eventId (requerido)

Problemas Conocidos y Limitaciones

Nota: Este paquete se encuentra actualmente en desarrollo temprano (0.1.x). Las APIs y herramientas pueden cambiar sin previo aviso en futuras versiones.

  • Las operaciones de actualización y eliminación de calendarios pueden requerir permisos específicos en tu instancia de Nextcloud
  • El manejo de errores para códigos de error específicos de Nextcloud aún está en mejora
  • Los calendarios grandes con muchos eventos pueden experimentar problemas de rendimiento

Por favor, reporta cualquier problema en el repositorio de GitHub.

Licencia

ISC

ko-fi