Skip to main content
Glama
README.md
# DAV MCP Server

Access your calendars, contacts, and files via MCP!

<a href="https://glama.ai/mcp/servers/@jahfer/dav-mcp-server">
  <img width="380" height="200" src="https://glama.ai/mcp/servers/@jahfer/dav-mcp-server/badge" alt="DAV Server MCP server" />
</a>

## 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.

## 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:

    ```bash
    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:

```jsonc
{
  "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.

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.

Maintenance

ActivityInactive
ResponsivenessNo issues