Skip to main content
Glama

DAV MCP Server

Access your calendars, contacts, and files via MCP!

Introduction

This project is a Model Context Protocol (MCP) server that allows you to interact with your CalDAV, CardDAV, and WebDAV services. It supports both Fastmail and Apple iCloud accounts, configured via environment variables.

Related MCP server: iCloud CalDAV MCP Connector

Setup

  1. Prerequisites: Ensure you have Node.js installed.

  2. Clone the repository: Clone this repository to your local machine.

  3. Install dependencies: Navigate to the project directory and run:

    npm install

    If you intend to publish or use this as a global command, you might also run npm link after installation, or install it globally via npm install -g . (once package.json is configured for global installation if desired).

Environment Variable Configuration

To connect to your DAV services, you need to set the following environment variables when running the application:

  • DAV_PROVIDER: Specifies your DAV service provider. Set to fastmail or icloud (case-insensitive).

  • DAV_USERNAME: Your username for the service (e.g., your Fastmail email address or Apple ID).

  • DAV_PASSWORD: An app-specific password for the service. It is highly recommended to use app-specific passwords for security.

MCP Configuration

To use this server, you need to configure it as an mcpServer in your MCP configuration file. Here is an example:

{
  "mcpServers": {
    "myDavServices": {
      // You can name this anything you like
      "command": "npx", // Or simply "node" if it's in your PATH
      "args": ["-y", "@jahfer/dav-mcp-server"], // Path to the main script
      "env": {
        "DAV_PROVIDER": "icloud", // or "fastmail"
        "DAV_USERNAME": "your-username",
        "DAV_PASSWORD": "your-app-specific-password"
      }
    }
  }
}

Available Tools

Once configured, this MCP server provides the following tools:

Calendar (CalDAV)

  • get_my_calendars: Lists all your available calendars.

  • get_calendar_events: Fetches events from a specified calendar. You can optionally provide a start and end date/time to filter events within a specific range.

Contacts (CardDAV)

  • get_my_contact_lists: Lists all your contact address books.

  • get_contacts_from_list: Fetches contacts from a specified address book.

Files (WebDAV - primarily for Fastmail)

  • list_my_files_and_folders: Lists files and folders within a specified path in your WebDAV storage (defaults to the root).

  • get_file_or_folder_details: Fetches metadata for a given file or folder URL.

Usage

After setting up the MCP server in your configuration, you can use commands or features within your MCP client that interact with the server definition to manage your calendars, contacts, and files.

Available Tools

6 tools
get_calendar_eventsD

Inputs: calendarUrl (required), timeRangeEnd, timeRangeStart.

get_contacts_from_listD

Inputs: addressBookUrl (required).

get_file_or_folder_detailsD

Inputs: fileUrl (required).

get_my_calendarsD

Inputs: no named parameters.

get_my_contact_listsD

Inputs: no named parameters.

list_my_files_and_foldersD

Inputs: path.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    D1.9/5.0

    Scored across 6 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose targeting different resources: calendar events, contacts, files/folders, calendars, contact lists, and file listings. There is no overlap in functionality, making it easy for an agent to select the correct tool.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern with 'get_' or 'list_' prefixes, using snake_case throughout. This predictability enhances readability and usability for agents.

    Tool Count4/5

    Six tools is reasonable for a DAV server covering calendars, contacts, and files, but it feels slightly thin as it lacks update/delete operations. The count is appropriate for basic read-only access, though not fully comprehensive.

    Completeness2/5

    The toolset is severely incomplete for a DAV server, covering only read operations (get/list) with no create, update, or delete tools. This will cause agent failures when full CRUD functionality is needed, as the surface lacks essential lifecycle coverage.

    Related MCP Connectors

    Related MCP Servers