Skip to main content
Glama
ni-c

carddav-mcp

by ni-c

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CARDDAV_URLYesRoot of the CardDAV server, e.g. https://dav.example.net. An address book collection URL works too and limits the server to that one book.
ELICITATIONNoNot prefixed. false makes guarded tools use the two-call token instead of a dialog. Default true.true
CARDDAV_TOKENNoBearer token instead of username and password. Not both.
CARDDAV_PASSWORDNoPassword or app-specific password. Required with CARDDAV_USERNAME unless CARDDAV_TOKEN is used. Deleted from the environment once read.
CARDDAV_USERNAMENoAccount name. Required with CARDDAV_PASSWORD unless CARDDAV_TOKEN is used.
CARDDAV_READ_ONLYNoSet to true registers only the read tools. Default false.false
CARDDAV_DENY_TOOLSNoSubtracted from whatever the allow list left.
CARDDAV_ALLOW_TOOLSNoTool names, a prefix with one trailing *, or 'essential'. Default: all tools.
CARDDAV_ADDRESSBOOKSNoComma-separated address books this server may touch, by path or final path segment. Default: every book the account can see.
CARDDAV_INSECURE_TLSNoSet to true accepts a self-signed certificate on the configured host only. Default false.false
CARDDAV_MAX_CONTACTSNoContacts a listing returns by default, 1–500. Default 100.100
CARDDAV_ALLOW_PLAINTEXTNoSet to true allows a plain http:// URL to a host that is not loopback, sending credentials and contacts unencrypted. Otherwise such a URL refuses to start. Default false.false

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_address_booksA

Every address book this server may use, with the id to pass to the other tools. Always asks the server rather than answering from a cache — being current is this tool’s whole job.

get_server_infoA

Reports the DAV compliance tokens, which vCard versions each address book accepts, and whether the optional features this server relies on actually work here. The first thing to run when something behaves differently than expected — CardDAV implementations differ more than the specification suggests.

list_contactsA

Contacts in one or more address books, as short summaries: name, organisation, addresses and phone numbers, and whether a photo is present. Only the summary properties are fetched, so this stays cheap on a large address book — get_contact returns the whole card.

get_contactA

The complete card behind an id: every address, every phone number, the note, the birthday, and the names of any properties this server does not model. The free text comes back inside a fence marking it as somebody else’s writing.

search_contactsA

Finds contacts whose name, organisation, email address, phone number or note contains a term. One request per address book — CardDAV combines the fields with OR, unlike CalDAV — and the result is checked again here, because some servers filter only partially.

get_contact_photoA

Returns the photo stored on a card as an image. Only a photo embedded in the card itself — one stored as a link is reported by get_contact and never fetched, because that address was chosen by whoever wrote the card.

export_contactsA

The raw vCard text of one or more contacts, exactly as stored. The only way to see a property this server does not model, and the only way to take a backup of an address book from here.

list_changesA

Cards created, changed or deleted since a sync token, using RFC 6578. Call it once without a token to get the current token, then again later with it. Not every server implements this — get_server_info reports whether this one does.

list_groupsA

Groups in one or more address books, with how many members each has. The members themselves are not resolved here — that is one extra request per book, and get_group is where a caller has said they want the names.

get_groupA

A group card and the contacts in it, resolved to names and ids where the members live in the same address book. A member this server cannot resolve is still reported, as the reference the card holds.

create_contactA

Adds a card to an address book. The UID and the file name are generated here. The vCard version follows what the address book accepts — 3.0 unless it says otherwise, because that is what phones and desktop clients read completely.

update_contactA

Changes the fields named and leaves everything else exactly as it was — including properties this server does not model. Guarded by the card’s ETag, so a change made elsewhere in the meantime is refused rather than overwritten. A CardDAV server keeps no version history, so a person is asked first.

delete_contactA

Removes a card. Cannot be undone — a CardDAV server has no trash and no version history. Guarded by the card’s ETag, so a card changed since it was read is refused rather than deleted blind.

move_contactA

Copies a card into another address book and removes it from the first. The id changes, because an id names a card in a collection. There is no transaction behind this: the copy is verified before the original is removed.

create_groupA

Creates a group card and puts the named contacts in it. The convention follows whatever groups the address book already uses, because a group written the other way is invisible in the client the person is actually looking at.

update_groupA

Changes a group’s name or note, and adds or removes members. Removing a member removes the grouping only — the contact itself is untouched. A CardDAV server keeps no version history, so a person is asked first.

delete_groupA

Removes a group card. The contacts that were in it are not touched — only the grouping goes. Cannot be undone.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ni-c/carddav-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server