dav-mcp
Give your AI agents the power of organization — Transform them into orchestrating assistants managing calendars, contacts, and tasks.
Built on 27 production-ready tools spanning CalDAV, CardDAV, and VTODO protocols.
Alimenter votre agent
La commande propre à l'éditeur. Ce n'est pas un endpoint PlugMCP.
Host a copy with our keys and logs.
npx -y [email protected]Claude Code n'a pas de lien d'installation pour une commande locale. Copiez la commande ci-dessous et exécutez-la dans un terminal.
claude mcp add dav-mcp -- npx -y dav-mcp@5.0.0À exécuter dans un terminal.
{ "mcpServers": { "dav-mcp": { "command": "npx", "args": [ "-y", "[email protected]" ] } }}claude_desktop_config.json
URL distante ou commande sur votre machine ? Ce qui distingue les deux installations
Exécuter sur PlugMCP
A new server you create. It is not this listing's official endpoint. Use the publisher install when you want their URL and their credentials.
LancerDe l'éditeur
Give your AI agents the power of organization — Transform them into orchestrating assistants managing calendars, contacts, and tasks.
Built on 27 production-ready tools spanning CalDAV, CardDAV, and VTODO protocols.
Complete DAV integration for AI - Calendar (CalDAV), Contacts (CardDAV), and Tasks (VTODO) management via MCP protocol
dav-mcp-<version>.mcpb from the latest release. Releases from 4.1.2 on carry this file.Basic unless your server needs Digest.The .mcpb file is an MCP Bundle: the server with its dependencies, so neither Node.js nor npx needs to be installed.
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:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.jsonRestart Claude Desktop after adding the configuration.
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:
http://localhost:3000/mcpCustom port:
npx dav-mcp --http --port=8080
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 (5.0.0) and the minor line (5.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
When partial tools force your AI to improvise, complete tools let it execute precise operations across all components.
Europe/Berlin, sent as a VTIMEZONE)An event or todo written without a time zone (a "floating" time such as
DTSTART:20261010T090000, or an all-day date) is read in its calendar's time
zone, as CalDAV specifies (RFC 4791 §9.9): the zone set with make_calendar /
update_calendar, which list_calendars shows. A calendar without one is read
in the zone dav-mcp runs in: the TZ environment variable (for example
TZ=Europe/Berlin in Docker or an HTTP deployment), else the system's. A time
without a zone given to the create and update tools is read the same way, and
an event stored without a zone stays without one when it is moved.
freebusy_query prints its slots in the calendar's zone and names it.
Works with any CalDAV/CardDAV server that follows RFC 4791 and RFC 6352:
AUTH_METHOD selects how dav-mcp logs in (case-insensitive):
dav-mcp needs Node.js 22 or newer. A wrong configuration — an unknown
AUTH_METHOD value, or missing credentials for the chosen method — stops the
server at startup instead of falling back to Basic.
For Google Calendar, use OAuth2 authentication:
{
"mcpServers": {
"dav-mcp": {
"command": "npx",
"args": ["-y", "dav-mcp"],
"env": {
"AUTH_METHOD": "OAuth",
"GOOGLE_USER": "[email protected]",
"GOOGLE_CLIENT_ID": "your-client-id",
"GOOGLE_CLIENT_SECRET": "your-client-secret",
"GOOGLE_REFRESH_TOKEN": "your-refresh-token"
}
}
}
}
LOG_TOOL_CALLS=true records every tool call with its arguments, for debugging — to ~/.local/state/dav-mcp/tool-calls.jsonl (or $XDG_STATE_HOME, %LOCALAPPDATA% on Windows, or TOOL_CALL_LOG_FILE), readable by you only. TOOL_CALL_LOG_MODE=console sends it to stderr instead.dav-mcp runs on your machine (or your own server) and talks only to the DAV server you configure. It has no telemetry and shares nothing with its maintainers or third parties. Tool results go to the AI assistant that called the tool. Credentials and calendar data are not stored by dav-mcp; the optional tool-call log is off by default. Full policy: PRIVACY.md. Contact: [email protected].
Pull requests are welcome! Please read CONTRIBUTING.md for guidelines.
MIT License - see LICENSE for details
Built with:
Questions? Issues? Create a GitHub issue
Built for AI agents managing calendars, contacts, and tasks
Complete DAV integration for AI - Calendar (CalDAV), Contacts (CardDAV), and Tasks (VTODO) management via MCP protocol
{ "mcpServers": { "dav-mcp": { "command": "npx", "args": [ "-y", "[email protected]" ] } }}Outils
Pas encore de liste d'outils. Les serveurs distants en obtiennent une après le premier contrôle d'état.
FAQ
Copiez sur cette page la configuration stdio pour Cursor, Claude Desktop, Claude Code ou VS Code. Elle utilise l'installation de l'éditeur, pas un proxy PlugMCP.
Aucune variable d'environnement requise n'est indiquée sur cette fiche.
Dav s'exécute en local via stdio.
Dernière vérification : 2026-11-13. Complete DAV integration for AI - Calendar (CalDAV), Contacts (CardDAV), and Tasks (VTODO) management via MCP protocol