get_my_contact_lists
Retrieve contact lists from CalDAV, CardDAV, and WebDAV services linked to Fastmail or Apple iCloud accounts using the DAV MCP Server.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- index.js:167-188 (handler)Handler that authenticates with CardDAV client and fetches the list of user's contact address books (contact lists). Returns JSON of address books.async () => { if (!cardDavClient) return { content: [{ type: "text", text: "CardDAV client not initialized for this provider."}], isError: true }; try { await cardDavClient.login(); const addressBooks = await cardDavClient.fetchAddressBooks(); return { content: [{ type: "text", text: JSON.stringify(addressBooks, null, 2) }] }; } catch (error) { console.error(`Error in get_my_${DAV_PROVIDER}_contact_lists:`, error); return { content: [{ type: "text", text: `Error listing address books: ${JSON.stringify(error.message || error)}` }], isError: true }; } }
- index.js:161-189 (registration)Tool registration for 'get_my_contact_lists' (dynamic name: get_my_${DAV_PROVIDER}_contact_lists). No input schema required. Called 'get_my_contact_lists' in descriptions.server.tool( `get_my_${DAV_PROVIDER}_contact_lists`, { description: `Lists all of your contact address books from your ${DAV_PROVIDER} account. It returns a list of address book objects, each with details like its URL and name. Use this to find the \`addressBookUrl\` needed for fetching contacts.`, inputSchema: {} }, async () => { if (!cardDavClient) return { content: [{ type: "text", text: "CardDAV client not initialized for this provider."}], isError: true }; try { await cardDavClient.login(); const addressBooks = await cardDavClient.fetchAddressBooks(); return { content: [{ type: "text", text: JSON.stringify(addressBooks, null, 2) }] }; } catch (error) { console.error(`Error in get_my_${DAV_PROVIDER}_contact_lists:`, error); return { content: [{ type: "text", text: `Error listing address books: ${JSON.stringify(error.message || error)}` }], isError: true }; } } );
- index.js:195-198 (schema)Schema reference in related tool 'get_contacts_from_${DAV_PROVIDER}_list' that mentions 'get_my_contact_lists' as source for addressBookUrl.inputSchema: { addressBookUrl: z.string().describe("The unique identifier (URL) of the contact list from which to fetch contacts. You can get this from 'get_my_contact_lists'."), }, },
- index.js:38-43 (helper)Initialization of CardDAV client used by the contact lists tool (Fastmail-specific block). Similar for iCloud at lines 68-73.cardDavClient = new DAVClient({ serverUrl: cardDavServerUrl, credentials: { username: DAV_USERNAME, password: DAV_PASSWORD }, authMethod: "Basic", defaultAccountType: "carddav", });