Mmcp.market

Dav MCP server

by PhilflowIO·io.github.PhilflowIO/dav-mcp·v4.0.1

AI-orchestrated calendars, contacts & tasks across any DAV platform. 27 tools, field-agnostic.

B83/100grade B
What users say
No reviews yet
Be the first
Safety scan
B83/100

full report

Adoption
Growing

34 stars123 downloads/wk

Reviews

Write one

Nobody has reviewed Dav yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Dav tools (27, 16 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • addressbook_multi_get

    Batch fetch multiple specific contacts by their URLs. Use when you have exact contact URLs and want to retrieve their details

  • addressbook_querywrite action

    ⭐ PREFERRED: Search and filter contacts efficiently (name, email, organization). Use for "find contacts with...", "search for email...", "contacts at company..." queries. Use instead of list_contacts when ANY filter is specified. Omit addressbook_url to search across ALL addressbooks automatically.

  • calendar_multi_get

    Batch fetch multiple specific calendar events by their URLs. Use when you have exact event URLs and want to retrieve their details

  • calendar_query

    ⭐ PREFERRED: Search and filter calendar events efficiently. Use instead of list_events to avoid loading thousands of entries. Omit calendar_url to search across ALL calendars automatically.

  • create_contactwrite action

    Create a new contact (vCard) with name, email, phone, organization, and other details

  • create_eventwrite action

    Create a new calendar event with title, date, time, optional description and location

  • create_todowrite action

    Create a new todo/task in a calendar. Use this when user wants to add a task, todo item, or reminder with optional due date, priority, and status.

  • delete_calendarwrite action

    Permanently delete a calendar and all its events. WARNING: This action cannot be undone! Use this when user explicitly asks to "delete calendar" or "remove calendar"

  • delete_contactwrite action

    Permanently delete a contact (vCard) from the address book. WARNING: This action cannot be undone — the contact is removed from the server immediately. Use only when the user explicitly requests deletion. Obtain the vCard URL and etag from list_contacts or addressbook_query first. The etag ensures no conflicting changes occurred since the contact was last retrieved.

  • delete_eventwrite action

    Permanently delete a calendar event. WARNING: This action cannot be undone — the event is removed from the server immediately. Use only when the user explicitly requests deletion. Obtain the event URL and etag from list_events or calendar_query first. The etag ensures no conflicting changes occurred since the event was last retrieved.

  • delete_todowrite action

    Permanently delete a todo/task from the calendar. WARNING: This action cannot be undone — the todo is removed from the server immediately. Use only when the user explicitly requests deletion. Obtain the todo URL and etag from list_todos or todo_query first. The etag ensures no conflicting changes occurred since the todo was last retrieved.

  • freebusy_query

    Find free and busy time in a date range — use for "when am I free?", "am I available Tuesday afternoon?" or finding a slot for a new meeting. Searches all calendars unless one is given. Events marked TRANSPARENT (does not block time) and cancelled events are ignored; recurring events are expanded.

  • list_addressbooks

    List all available address books from the CardDAV server. Use this to get address book URLs needed for other contact operations

  • list_calendars

    List all available calendars from the CalDAV server. Use this to get calendar URLs needed for other operations

  • list_contacts

    List ALL contacts from an address book without filtering. WARNING: Returns all contacts which can be thousands - use addressbook_query instead when searching for specific contacts by name, email, or organization to save tokens

  • list_events

    List ALL events from a single calendar without filtering. WARNING: Returns all events which can be many thousands - use calendar_query instead for searching with filters (supports multi-calendar search).

  • list_todos

    List ALL todos/tasks from a calendar. WARNING: Returns all todos without filtering - use todo_query for searches with filters by status, summary, or due date.

  • make_calendarwrite action

    Create a new calendar collection on the CalDAV server with optional color, description, timezone, and component types

  • todo_multi_get

    Batch fetch multiple specific todos by their URLs. More efficient than fetching one by one when you have exact todo URLs.

  • todo_query

    ⭐ PREFERRED: Search and filter todos efficiently. Use instead of list_todos to conserve tokens. Omit calendar_url to search across ALL calendars automatically.

  • update_calendarwrite action

    Update an existing calendar's properties (display name, description, color, timezone). Use this when user asks to "rename calendar", "change calendar color", or "update calendar properties"

  • update_contactwrite action

    PREFERRED: Update contact fields without vCard formatting. Supports: FN (full name), N (structured name), EMAIL, TEL (phone), ORG (organization), TITLE (job title), NOTE, URL, ADR (address), BDAY (birthday), and any RFC 6350 vCard property including custom X-* properties.

  • update_contact_rawwrite action

    ADVANCED: Update contact with raw vCard data. Requires manual vCard formatting - use update_contact instead for simple field updates (name, email, phone). Only use this if you have complete pre-formatted vCard data or need to update advanced vCard properties.

  • update_eventwrite action

    PREFERRED: Update event fields without iCal formatting. Use start_date/end_date/all_day to move an event or convert it between all-day and timed. Use fields for everything else: SUMMARY (title), DESCRIPTION (details), LOCATION (place), STATUS (TENTATIVE/CONFIRMED/CANCELLED), and any other RFC 5545 property including custom X-* properties (e.g., X-ZOOM-LINK, X-MEETING-ROOM).

  • update_event_rawwrite action

    ADVANCED: Update event with raw iCal data. Requires manual iCal formatting - use update_event instead for simple field updates (summary, description). Only use this if you have complete pre-formatted iCal data or need to update advanced iCal properties.

  • update_todowrite action

    PREFERRED: Update todo fields without iCal formatting. Supports: SUMMARY (title), DESCRIPTION (details), STATUS (NEEDS-ACTION/IN-PROCESS/COMPLETED/CANCELLED), PRIORITY (0-9), DUE (due date), PERCENT-COMPLETE (0-100), and any RFC 5545 VTODO property including custom X-* properties.

  • update_todo_rawwrite action

    ADVANCED: Update todo with raw VTODO iCal data. Requires manual iCal formatting - use update_todo instead for simple field updates (summary, description, status). Only use this if you have complete pre-formatted VTODO data or need to update advanced iCal properties.

Public scan report

scanner v0.1.5 · 2026-09-19 · same rubric, same numbers if you re-run it

no findings
  • Code scan45 source files scanned25/25
  • Live reliabilityno gateway calls yet and no remote to proben/a
  • Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitystatic API keys via environment variables6/15
  • Maintenancelast push 9 days ago15/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 83/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

What the publisher says

From the Dav repository's README, as published. We do not edit it. Read it on GitHub

dav-mcp

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.

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/claudedesktopconfig.json
  • Windows: %APPDATA%\Claude\claudedesktopconfig.json
  • Linux: ~/.config/Claude/claudedesktopconfig.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

Pull the published image (distroless, runs as non-root, no shell):

docker run -d --name dav-mcp -p 3000:3000 --env-file .env \
  ghcr.io/philflowio/dav-mcp:latest

Tags: latest, the exact release (4.0.0) and the minor line (4.0). Set PORT to serve on a different port; the healthcheck follows it.

Or build from source:

git clone https://github.com/PhilflowIO/dav-mcp.git
cd dav-mcp
cp .env.example .env
# Edit .env with your credentials
docker-compose up

The Orchestration

When partial tools force your AI to improvise, complete tools let it execute precise operations across all components.

Available Tools (27 Total)

CalDAV Tools (12 tools)

  1. listcalendars** - List all available calendars
  2. listevents - List ALL events (use calendarquery for filtered searches)
  3. createevent** - Create a new calendar event
  4. updateevent - PREFERRED: Update any event field (SUMMARY, LOCATION, STATUS, custom X- properties); move or convert an event with startdate/enddate/all_day
  5. updateeventraw - Update event with raw iCal data (advanced)
  6. deleteevent** - Delete an event permanently
  7. calendarquery** - PREFERRED: Search and filter events efficiently by text, date range, or location
  8. makecalendar** - Create a new calendar collection
  9. updatecalendar** - Update calendar properties (display name, description, color, timezone)
  10. deletecalendar** - Permanently delete a calendar and all its events
  11. calendarmultiget - Batch fetch multiple specific events by URLs
  12. freebusyquery** - Find free and busy time in a range ("when am I free?"), calculated client-side

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Install directly

Runs npx -y dav-mcp on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add dav-mcp -- npx -y dav-mcp
Add to Cursor

Dav: common questions

Is Dav MCP server safe?
Mostly: it is graded B (83/100). Read the Dav safety report
How do I install Dav?
It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
Does Dav need an API key?
Yes. The registry entry asks for CALDAV_PASSWORD, GOOGLE_CLIENT_SECRET, GOOGLE_REFRESH_TOKEN.
Is Dav maintained?
The last commit was 10 days ago (2026-09-10). The latest release is v4.0.1.

More from PhilflowIO