mcp-nextcloud-calendar

ISC License
35
2

Integrations

  • Includes support for Ko-fi donations through a button link in the README.

  • Provides tools for interacting with Nextcloud Calendar, enabling calendar management (listing, creating, updating, deleting calendars) and event management (listing, creating, retrieving, updating, deleting events), with ADHD-friendly organization features.

MCP Nextcloud Calendar

A Model Context Protocol (MCP) server for Nextcloud Calendar integration.

Features

  • Fetch calendars from Nextcloud
  • ADHD-friendly organization features
  • MCP protocol support (Streamable HTTP and Legacy HTTP+SSE)

Usage

Using with npx

The easiest way to use this package is with npx:

npx mcp-nextcloud-calendar

Installation

For development or local installation:

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

MCP Client Configuration

To use with an MCP client (like Claude), add this configuration to your MCP client settings:

{ "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" } } } }
Specifying a Version

You can pin to a specific version of the package:

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

Configuration

Environment Variables

The server uses these environment variables, with defaults where possible:

VariableDescriptionDefaultRequired
PORTServer port3001No
SERVER_NAMEMCP server identifiernextcloud-calendar-serverNo
NODE_ENVEnvironment (development/production)developmentNo
NEXTCLOUD_BASE_URLYour Nextcloud server URL-Yes
NEXTCLOUD_USERNAMEYour Nextcloud username-Yes
NEXTCLOUD_APP_TOKENYour Nextcloud app token-Yes
KEEP_ALIVE_INTERVALKeep-alive interval (ms)30000No

Development Setup

For local development:

  1. Clone the repository
  2. Install dependencies:
npm install
  1. Create a .env file in the project root:
cp .env.example .env
  1. Edit the .env file with your Nextcloud credentials.

Getting a Nextcloud App Token

  1. Log in to your Nextcloud instance
  2. Go to Settings → Security → App Passwords
  3. Create a new app password with a name like "MCP Calendar"
  4. Copy the generated token to your .env file

Development

# 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

API Endpoints

  • /mcp - Primary MCP endpoint (Streamable HTTP transport)
  • /sse and /messages - Legacy MCP endpoints (HTTP+SSE transport)
  • GET /health - Health check endpoint
  • GET /api/calendars - List all calendars

MCP Tools

The following MCP tools are registered and available to clients:

Calendar Management

ToolDescriptionParameters
listCalendarsRetrieves all accessible calendarsNone
createCalendarCreates a new calendardisplayName (required), color (optional), category (optional), focusPriority (optional)
updateCalendarUpdates an existing calendarid (required), displayName (optional), color (optional), category (optional), focusPriority (optional)
deleteCalendarDeletes a calendarid (required)

⚠️ Permission Warning: The updateCalendar and deleteCalendar tools may require special permissions in your Nextcloud instance. Calendar operations are subject to Nextcloud's permission system.

Event Management

ToolDescriptionParameters
listEventsRetrieves events for a calendarcalendarId (required), start (optional), end (optional)
getEventGets a specific eventcalendarId (required), eventId (required)
createEventCreates a new eventcalendarId (required), summary (required), start (required), end (required), description (optional), location (optional)
updateEventUpdates an existing eventcalendarId (required), eventId (required), [plus any event properties to update]
deleteEventDeletes an eventcalendarId (required), eventId (required)

Known Issues and Limitations

Note: This package is currently in early development (0.1.x). APIs and tools may change without notice in future releases.

  • The update and delete calendar operations may require specific permissions in your Nextcloud instance
  • Error handling for specific Nextcloud error codes is still being improved
  • Large calendars with many events may experience performance issues

Please report any issues on the GitHub repository.

License

ISC

Related MCP Servers

  • A
    security
    A
    license
    A
    quality
    Provides tools for interacting with Gmail and Calendar APIs. This server enables you to manage your emails and calendar events programmatically through the MCP interface.
    Last updated -
    8
    13
    JavaScript
    MIT License
  • -
    security
    F
    license
    -
    quality
    An MCP server that enables scheduling, updating, deleting, and listing calendar appointments through Cal.com's Calendar API.
    Last updated -
    JavaScript
  • -
    security
    F
    license
    -
    quality
    A Model Completion Prompt (MCP) plugin that allows users to create events in Google Calendar with customizable attributes like times, description, location, attendees, and timezone.
    Last updated -
    Python
    • Linux
    • Apple

View all related MCP servers

ID: dkbdpuhi9u