CardDAV address books MCP Server

Read and write CardDAV address books: contacts, groups and photos over the open standard

Local serverstdio

What is the CardDAV address books MCP Server?

CardDAV address books is an MCP integration. Read and write CardDAV address books: contacts, groups and photos over the open standard.

Packages and local setup

The published npm package is @ni-c/carddav-mcp, version 0.1.3. Its declared MCP transport is stdio.

The package declares CARDDAV_URL (required): Root of the CardDAV server, e.g. https://dav.example.net. An address book collection URL also works.; CARDDAV_USERNAME: Account name. Most hosted services want an app-specific password with it.; CARDDAV_PASSWORD: Password or app-specific password. Deleted from the environment once read.; CARDDAV_TOKEN: Bearer token, as an alternative to username and password. Not both.; CARDDAV_ADDRESSBOOKS: Comma-separated address books this server may touch, by path or final path segment. Default: all of them.; CARDDAV_MAX_CONTACTS: Contacts a listing returns by default, 1 to 500 (default: 100); CARDDAV_READ_ONLY: Set to true to register only the read tools (default: false); CARDDAV_INSECURE_TLS: Set to true to accept a self-signed certificate on the configured host only (default: false); CARDDAV_ALLOW_PLAINTEXT: Set to true to allow a plain http:// URL to a host that is not loopback, which sends the credentials and every contact unencrypted (default: false); CARDDAV_ALLOW_TOOLS: Comma-separated tool names or list_ prefixes to register; 'essential' selects a curated preset (default: all tools); CARDDAV_DENY_TOOLS: Comma-separated tool names or list_ prefixes to remove from whatever the allow list left; ELICITATION: Deliberately unprefixed, and reaches every MCP server in the environment. Set to false to make guarded tools use the two-call token instead of a dialog (default: true).

The published oci package is ghcr.io/ni-c/carddav-mcp:0.1.3. Its declared MCP transport is stdio.

Before connecting

Check the maintainer’s instructions for account access, authentication and the supported client configuration. Once connected, inspect the tools your client receives and try a small task that matches the server’s stated purpose. The registry description does not include a verified, complete tool list.

Project and source

View the publisher’s registry entry · Project repository · Project website. This profile uses version 0.1.3 from the registry. Registration identifies the publisher namespace; it does not establish that this is a first-party integration for every service it connects.

Browse related other integrations MCP servers for tools that cover the same kind of work.

Configuration

VariableDescriptionRequired
CARDDAV_URLRoot of the CardDAV server, e.g. https://dav.example.net. An address book collection URL also works.Yes
CARDDAV_USERNAMEAccount name. Most hosted services want an app-specific password with it.Optional
CARDDAV_PASSWORDPassword or app-specific password. Deleted from the environment once read.Optional
CARDDAV_TOKENBearer token, as an alternative to username and password. Not both.Optional
CARDDAV_ADDRESSBOOKSComma-separated address books this server may touch, by path or final path segment. Default: all of them.Optional
CARDDAV_MAX_CONTACTSContacts a listing returns by default, 1 to 500 (default: 100)Optional
CARDDAV_READ_ONLYSet to true to register only the read tools (default: false)Optional
CARDDAV_INSECURE_TLSSet to true to accept a self-signed certificate on the configured host only (default: false)Optional
CARDDAV_ALLOW_PLAINTEXTSet to true to allow a plain http:// URL to a host that is not loopback, which sends the credentials and every contact unencrypted (default: false)Optional
CARDDAV_ALLOW_TOOLSComma-separated tool names or list_ prefixes to register; 'essential' selects a curated preset (default: all tools)Optional
CARDDAV_DENY_TOOLSComma-separated tool names or list_ prefixes to remove from whatever the allow list leftOptional
ELICITATIONDeliberately unprefixed, and reaches every MCP server in the environment. Set to false to make guarded tools use the two-call token instead of a dialog (default: true)Optional