A Model Context Protocol (MCP) server for Nextcloud Calendar integration.
The easiest way to use this package is with npx:
npx mcp-nextcloud-calendar
For development or local installation:
## Install globally
npm install -g mcp-nextcloud-calendar
## Or install locally
npm install mcp-nextcloud-calendar
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"
}
}
}
}
You can pin to a specific version of the package:
{
"mcpServers": {
"nextcloud-calendar": {
"command": "npx",
"args": ["-y", "[email protected]"],
"env": {
"NEXTCLOUD_BASE_URL": "https://your-nextcloud-server.com",
"NEXTCLOUD_USERNAME": "your-username",
"NEXTCLOUD_APP_TOKEN": "your-app-token"
}
}
}
}
The server uses these environment variables, with defaults where possible:
| Variable | Description | Default | Required |
|---|---|---|---|
| PORT | Server port | 3001 | No |
| SERVER_NAME | MCP server identifier | nextcloud-calendar-server | No |
| NODE_ENV | Environment (development/production) | development | No |
| NEXTCLOUD_BASE_URL | Your Nextcloud server URL | - | Yes |
| NEXTCLOUD_USERNAME | Your Nextcloud username | - | Yes |
| NEXTCLOUD_APP_TOKEN | Your Nextcloud app token | - | Yes |
| KEEP_ALIVE_INTERVAL | Keep-alive interval (ms) | 30000 | No |
For local development:
npm install
.env file in the project root:cp .env.example .env
.env file with your Nextcloud credentials..env file## 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
/mcp - Primary MCP endpoint (Streamable HTTP transport)/sse and /messages - Legacy MCP endpoints (HTTP+SSE transport)GET /health - Health check endpointGET /api/calendars - List all calendarsThe following MCP tools are registered and available to clients:
| Tool | Description | Parameters |
|---|---|---|
listCalendars |
Retrieves all accessible calendars | None |
createCalendar |
Creates a new calendar | displayName (required), color (optional), category (optional), focusPriority (optional) |
updateCalendar |
Updates an existing calendar | id (required), displayName (optional), color (optional), category (optional), focusPriority (optional) |
deleteCalendar |
Deletes a calendar | id (required) |
⚠️ Permission Warning: The
updateCalendaranddeleteCalendartools may require special permissions in your Nextcloud instance. Calendar operations are subject to Nextcloud’s permission system.
| Tool | Description | Parameters |
|---|---|---|
listEvents |
Retrieves events for a calendar | calendarId (required), start (optional), end (optional) |
getEvent |
Gets a specific event | calendarId (required), eventId (required) |
createEvent |
Creates a new event | calendarId (required), summary (required), start (required), end (required), description (optional), location (optional) |
updateEvent |
Updates an existing event | calendarId (required), eventId (required), [plus any event properties to update] |
deleteEvent |
Deletes an event | calendarId (required), eventId (required) |
Note: This package is currently in early development (0.1.x). APIs and tools may change without notice in future releases.
Please report any issues on the GitHub repository.
ISC
NHL api client, mcp server, and cli written in Go
A Model Context Protocol (MCP) server that provides real-time cryptocurrency analysis via CoinCap's API. Enables Claude and other MCP clients to fetch crypto prices, analyze market trends, and track historical data.