Nextcloud Calendar

Integração de calendário CalDAV Nextcloud. Gerencie calendários, eventos, participantes, etc.

Documentação

MCP Nextcloud Calendar

npm version License: ISC

Um servidor Model Context Protocol (MCP) para integração com o Nextcloud Calendar.

Recursos

  • Buscar calendários do Nextcloud
  • Recursos de organização amigáveis para TDAH
  • Suporte ao protocolo MCP (Streamable HTTP e Legacy HTTP+SSE)

Uso

Usando com npx

A maneira mais fácil de usar este pacote é com npx:

npx mcp-nextcloud-calendar

Instalação

Para desenvolvimento ou instalação local:

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

# Or install locally
npm install mcp-nextcloud-calendar

Configuração do Cliente MCP

Para usar com um cliente MCP (como o Claude), adicione esta configuração às configurações do seu 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"
      }
    }
  }
}

Especificando uma Versão

Você pode fixar uma versão específica do pacote:

{
  "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"
      }
    }
  }
}

Configuração

Variáveis de Ambiente

O servidor usa estas variáveis de ambiente, com padrões quando possível:

VariávelDescriçãoPadrãoObrigatório
PORTPorta do servidor3001Não
SERVER_NAMEIdentificador do servidor MCPnextcloud-calendar-serverNão
NODE_ENVAmbiente (desenvolvimento/produção)developmentNão
NEXTCLOUD_BASE_URLURL do seu servidor Nextcloud-Sim
NEXTCLOUD_USERNAMESeu nome de usuário do Nextcloud-Sim
NEXTCLOUD_APP_TOKENSeu token de aplicativo do Nextcloud-Sim
KEEP_ALIVE_INTERVALIntervalo de keep-alive (ms)30000Não

Configuração de Desenvolvimento

Para desenvolvimento local:

  1. Clone o repositório
  2. Instale as dependências:
npm install
  1. Crie um arquivo .env na raiz do projeto:
cp .env.example .env
  1. Edite o arquivo .env com suas credenciais do Nextcloud.

Obtendo um Token de Aplicativo do Nextcloud

  1. Faça login na sua instância do Nextcloud
  2. Vá em Configurações → Segurança → Senhas de aplicativos
  3. Crie uma nova senha de aplicativo com um nome como "MCP Calendar"
  4. Copie o token gerado para o seu arquivo .env

Desenvolvimento

# 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 da API

  • /mcp - Endpoint MCP principal (transporte Streamable HTTP)
  • /sse e /messages - Endpoints MCP legados (transporte HTTP+SSE)
  • GET /health - Endpoint de verificação de saúde
  • GET /api/calendars - Lista todos os calendários

Ferramentas MCP

As seguintes ferramentas MCP estão registradas e disponíveis para os clientes:

Gerenciamento de Calendários

FerramentaDescriçãoParâmetros
listCalendarsRecupera todos os calendários acessíveisNenhum
createCalendarCria um novo calendáriodisplayName (obrigatório), color (opcional), category (opcional), focusPriority (opcional)
updateCalendarAtualiza um calendário existenteid (obrigatório), displayName (opcional), color (opcional), category (opcional), focusPriority (opcional)
deleteCalendarExclui um calendárioid (obrigatório)

⚠️ Aviso de Permissão: As ferramentas updateCalendar e deleteCalendar podem exigir permissões especiais na sua instância do Nextcloud. As operações de calendário estão sujeitas ao sistema de permissões do Nextcloud.

Gerenciamento de Eventos

FerramentaDescriçãoParâmetros
listEventsRecupera eventos de um calendáriocalendarId (obrigatório), start (opcional), end (opcional)
getEventObtém um evento específicocalendarId (obrigatório), eventId (obrigatório)
createEventCria um novo eventocalendarId (obrigatório), summary (obrigatório), start (obrigatório), end (obrigatório), description (opcional), location (opcional)
updateEventAtualiza um evento existentecalendarId (obrigatório), eventId (obrigatório), [mais quaisquer propriedades do evento a serem atualizadas]
deleteEventExclui um eventocalendarId (obrigatório), eventId (obrigatório)

Problemas e Limitações Conhecidos

Nota: Este pacote está atualmente em desenvolvimento inicial (0.1.x). APIs e ferramentas podem mudar sem aviso prévio em versões futuras.

  • As operações de atualização e exclusão de calendários podem exigir permissões específicas na sua instância do Nextcloud
  • O tratamento de erros para códigos de erro específicos do Nextcloud ainda está sendo melhorado
  • Calendários grandes com muitos eventos podem apresentar problemas de desempenho

Por favor, relate quaisquer problemas no repositório do GitHub.

Licença

ISC

ko-fi