dav-mcp

by PhilflowIO

28 828 downloads Not rated yet MIT

About

Turn any calendar, contact book, or task list into an AI-orchestrated system. Platform-independent via CalDAV/CardDAV — works with Nextcloud, Baikal, Radicale, Fastmail, and any standards-compliant DAV server. 26 tools with field-agnostic updates.

Details

License
MIT

Explore

- 26 tools: full CRUD for calendars, contacts, and tasks
- Field‑based updates on all RFC properties plus custom fields
- Server‑side filtering for efficient queries (calendar_query, addressbook_query, todo_query)
- Multi‑provider: works with any CalDAV/CardDAV server
- OAuth2 authentication for Google Calendar
- Input validation, rate limiting, bearer auth, and no credential storage

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name dav-mcp
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Configure dav-mcp by setting environment variables (CALDAV_SERVER_URL, CALDAV_USERNAME, CALDAV_PASSWORD) and running it with npx. For local use with Claude Desktop or Cursor, add the command to the MCP config file; for remote use with n8n, start the HTTP server with a bearer token. A Docker setup is also available via docker-compose up.

1. list_calendars - List all available calendars
2. list_events - List ALL events (use calendar_query for filtered searches)
3. create_event - Create a new calendar event
4. update_event - PREFERRED: Update any event field (SUMMARY, LOCATION, DTSTART, STATUS, custom X- properties)
5. update_event_raw - Update event with raw iCal data (advanced)
6. delete_event - Delete an event permanently
7. calendar_query - PREFERRED: Search and filter events efficiently by text, date range, or location
8. make_calendar - Create a new calendar collection
9. update_calendar - Update calendar properties (display name, description, color, timezone)
10. delete_calendar - Permanently delete a calendar and all its events
11. calendar_multi_get - Batch fetch multiple specific events by URLs

12. list_addressbooks - List all available address books
13. list_contacts - List ALL contacts (use addressbook_query for filtered searches)
14. create_contact - Create a new contact (vCard)
15. update_contact - PREFERRED: Update any contact field (FN, EMAIL, TEL, ORG, ADR, custom X-
properties)
16. update_contact_raw - Update contact with raw vCard data (advanced)
17. delete_contact - Delete a contact permanently
18. addressbook_query - PREFERRED: Search and filter contacts efficiently by name, email, or organization
19. addressbook_multi_get - Batch fetch multiple specific contacts by URLs

20. list_todos - List ALL todos/tasks (use todo_query for filtered searches)
21. create_todo - Create a new todo/task with optional due date, priority, status
22. update_todo - PREFERRED: Update any todo field (SUMMARY, STATUS, PRIORITY, DUE, PERCENT-COMPLETE, custom X-* properties)
23. update_todo_raw - Update todo with raw VTODO iCal data (advanced)
24. delete_todo - Delete a todo/task permanently
25. todo_query - PREFERRED: Search and filter todos efficiently by status/due date
26. todo_multi_get - Batch fetch multiple specific todos by URLs

---

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "dav-mcp": {
            "dav-mcp": {
                "command": "npx",
                "args": [
                    "-y",
                    "dav-mcp"
                ],
                "env": {
                    "CALDAV_SERVER_URL": "https://dav.example.com",
                    "CALDAV_USERNAME": "your_username",
                    "CALDAV_PASSWORD": "your_password"
                }
            }
        }
    }
}

McpServers

{
    "dav-mcp": {
        "command": "npx",
        "args": [
            "-y",
            "dav-mcp"
        ],
        "env": {
            "CALDAV_SERVER_URL": "https://dav.example.com",
            "CALDAV_USERNAME": "your_username",
            "CALDAV_PASSWORD": "your_password"
        }
    }
}

Give your AI agents the power of organization — Transform them into orchestrating assistants managing calendars, contacts, and tasks.

Built on 26 production-ready tools spanning CalDAV, CardDAV, and VTODO protocols.

License: MIT
npm version

---

Quick Start

Claude Desktop / Cursor (Local)

Add to your MCP config file:

{
  "mcpServers": {
    "dav-mcp": {
      "command": "npx",
      "args": ["-y", "dav-mcp"],
      "env": {
        "CALDAV_SERVER_URL": "https://dav.example.com",
        "CALDAV_USERNAME": "your_username",
        "CALDAV_PASSWORD": "your_password"
      }
    }
  }
}

Config file locations:
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
- Windows: %APPDATA%\Claude\claude_desktop_config.json
- Linux: ~/.config/Claude/claude_desktop_config.json

Restart Claude Desktop after adding the configuration.

---

n8n (Remote HTTP)

Start the HTTP server:

CALDAV_SERVER_URL=https://dav.example.com \
CALDAV_USERNAME=your_username \
CALDAV_PASSWORD=your_password \
BEARER_TOKEN=your-secret-token \
npx dav-mcp --http

Then in n8n:
1. Add AI Agent node
2. Add MCP Client Tool node and connect to AI Agent
3. Configure:
- MCP Endpoint: http://localhost:3000/mcp
- Authentication: Bearer
- Token: your-secret-token

Custom port:

npx dav-mcp --http --port=8080

---

Docker

```bash
git clone https://github.com/PhilflowIO/dav-mcp.git
cd dav-mcp
cp .env.example .env

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.