{"name":"io.github.PhilflowIO/dav-mcp","slug":"philflowio-dav-mcp","title":null,"description":"AI-orchestrated calendars, contacts & tasks across any DAV platform. 27 tools, field-agnostic.","url":"https://mcp.market/server/philflowio-dav-mcp","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":40,"stars":34,"forks":12,"downloads_week":123,"last_push_at":"2026-09-10T21:11:55.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/PhilflowIO/dav-mcp","website":null,"version":"4.0.1","remotes":[],"packages":[{"registryType":"npm","identifier":"dav-mcp","version":"4.0.1","transport":{"type":"stdio"},"environmentVariables":[{"description":"Base URL of your CalDAV/CardDAV server (e.g. https://example.com/dav.php/)","isRequired":true,"format":"string","name":"CALDAV_SERVER_URL"},{"description":"Username for DAV server authentication","isRequired":true,"format":"string","name":"CALDAV_USERNAME"},{"description":"Password or app-specific password for DAV server authentication","isRequired":true,"format":"string","isSecret":true,"name":"CALDAV_PASSWORD"},{"description":"Authentication method: 'basic' (default) or 'oauth2' for Google","format":"string","name":"AUTH_METHOD"},{"description":"Google CalDAV endpoint; required when AUTH_METHOD=oauth2","format":"string","name":"GOOGLE_SERVER_URL"},{"description":"Google account email; required when AUTH_METHOD=oauth2","format":"string","name":"GOOGLE_USER"},{"description":"OAuth2 client ID; required when AUTH_METHOD=oauth2","format":"string","name":"GOOGLE_CLIENT_ID"},{"description":"OAuth2 client secret; required when AUTH_METHOD=oauth2","format":"string","isSecret":true,"name":"GOOGLE_CLIENT_SECRET"},{"description":"OAuth2 refresh token; required when AUTH_METHOD=oauth2","format":"string","isSecret":true,"name":"GOOGLE_REFRESH_TOKEN"},{"description":"OAuth2 token endpoint; required when AUTH_METHOD=oauth2","format":"string","name":"GOOGLE_TOKEN_URL"}]}],"tools":[{"name":"addressbook_multi_get","description":"Batch fetch multiple specific contacts by their URLs. Use when you have exact contact URLs and want to retrieve their details","write_action":false,"price_micros":0,"input_schema":null},{"name":"addressbook_query","description":"⭐ PREFERRED: Search and filter contacts efficiently (name, email, organization). Use for \"find contacts with...\", \"search for email...\", \"contacts at company...\" queries. Use instead of list_contacts when ANY filter is specified. Omit addressbook_url to search across ALL addressbooks automatically.","write_action":true,"price_micros":0,"input_schema":null},{"name":"calendar_multi_get","description":"Batch fetch multiple specific calendar events by their URLs. Use when you have exact event URLs and want to retrieve their details","write_action":false,"price_micros":0,"input_schema":null},{"name":"calendar_query","description":"⭐ PREFERRED: Search and filter calendar events efficiently. Use instead of list_events to avoid loading thousands of entries. Omit calendar_url to search across ALL calendars automatically.","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_contact","description":"Create a new contact (vCard) with name, email, phone, organization, and other details","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_event","description":"Create a new calendar event with title, date, time, optional description and location","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_todo","description":"Create a new todo/task in a calendar. Use this when user wants to add a task, todo item, or reminder with optional due date, priority, and status.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_calendar","description":"Permanently delete a calendar and all its events. WARNING: This action cannot be undone! Use this when user explicitly asks to \"delete calendar\" or \"remove calendar\"","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_contact","description":"Permanently delete a contact (vCard) from the address book. WARNING: This action cannot be undone — the contact is removed from the server immediately. Use only when the user explicitly requests deletion. Obtain the vCard URL and etag from list_contacts or addressbook_query first. The etag ensures no conflicting changes occurred since the contact was last retrieved.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_event","description":"Permanently delete a calendar event. WARNING: This action cannot be undone — the event is removed from the server immediately. Use only when the user explicitly requests deletion. Obtain the event URL and etag from list_events or calendar_query first. The etag ensures no conflicting changes occurred since the event was last retrieved.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_todo","description":"Permanently delete a todo/task from the calendar. WARNING: This action cannot be undone — the todo is removed from the server immediately. Use only when the user explicitly requests deletion. Obtain the todo URL and etag from list_todos or todo_query first. The etag ensures no conflicting changes occurred since the todo was last retrieved.","write_action":true,"price_micros":0,"input_schema":null},{"name":"freebusy_query","description":"Find free and busy time in a date range — use for \"when am I free?\", \"am I available Tuesday afternoon?\" or finding a slot for a new meeting. Searches all calendars unless one is given. Events marked TRANSPARENT (does not block time) and cancelled events are ignored; recurring events are expanded.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_addressbooks","description":"List all available address books from the CardDAV server. Use this to get address book URLs needed for other contact operations","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_calendars","description":"List all available calendars from the CalDAV server. Use this to get calendar URLs needed for other operations","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_contacts","description":"List ALL contacts from an address book without filtering. WARNING: Returns all contacts which can be thousands - use addressbook_query instead when searching for specific contacts by name, email, or organization to save tokens","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_events","description":"List ALL events from a single calendar without filtering. WARNING: Returns all events which can be many thousands - use calendar_query instead for searching with filters (supports multi-calendar search).","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_todos","description":"List ALL todos/tasks from a calendar. WARNING: Returns all todos without filtering - use todo_query for searches with filters by status, summary, or due date.","write_action":false,"price_micros":0,"input_schema":null},{"name":"make_calendar","description":"Create a new calendar collection on the CalDAV server with optional color, description, timezone, and component types","write_action":true,"price_micros":0,"input_schema":null},{"name":"todo_multi_get","description":"Batch fetch multiple specific todos by their URLs. More efficient than fetching one by one when you have exact todo URLs.","write_action":false,"price_micros":0,"input_schema":null},{"name":"todo_query","description":"⭐ PREFERRED: Search and filter todos efficiently. Use instead of list_todos to conserve tokens. Omit calendar_url to search across ALL calendars automatically.","write_action":false,"price_micros":0,"input_schema":null},{"name":"update_calendar","description":"Update an existing calendar's properties (display name, description, color, timezone). Use this when user asks to \"rename calendar\", \"change calendar color\", or \"update calendar properties\"","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_contact","description":"PREFERRED: Update contact fields without vCard formatting. Supports: FN (full name), N (structured name), EMAIL, TEL (phone), ORG (organization), TITLE (job title), NOTE, URL, ADR (address), BDAY (birthday), and any RFC 6350 vCard property including custom X-* properties.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_contact_raw","description":"ADVANCED: Update contact with raw vCard data. Requires manual vCard formatting - use update_contact instead for simple field updates (name, email, phone). Only use this if you have complete pre-formatted vCard data or need to update advanced vCard properties.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_event","description":"PREFERRED: Update event fields without iCal formatting. Use start_date/end_date/all_day to move an event or convert it between all-day and timed. Use fields for everything else: SUMMARY (title), DESCRIPTION (details), LOCATION (place), STATUS (TENTATIVE/CONFIRMED/CANCELLED), and any other RFC 5545 property including custom X-* properties (e.g., X-ZOOM-LINK, X-MEETING-ROOM).","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_event_raw","description":"ADVANCED: Update event with raw iCal data. Requires manual iCal formatting - use update_event instead for simple field updates (summary, description). Only use this if you have complete pre-formatted iCal data or need to update advanced iCal properties.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_todo","description":"PREFERRED: Update todo fields without iCal formatting. Supports: SUMMARY (title), DESCRIPTION (details), STATUS (NEEDS-ACTION/IN-PROCESS/COMPLETED/CANCELLED), PRIORITY (0-9), DUE (due date), PERCENT-COMPLETE (0-100), and any RFC 5545 VTODO property including custom X-* properties.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_todo_raw","description":"ADVANCED: Update todo with raw VTODO iCal data. Requires manual iCal formatting - use update_todo instead for simple field updates (summary, description, status). Only use this if you have complete pre-formatted VTODO data or need to update advanced iCal properties.","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":83,"grade":"B","scanned_at":"2026-09-19T20:27:46.717Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T20:27:46.644Z","components":{"code":{"score":25,"max":25,"notes":["45 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 9 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"dav-mcp","version":"4.0.1","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":9,"publishedAt":"2026-09-10T21:11:02.918Z","repositoryUrl":"git+https://github.com/PhilflowIO/dav-mcp.git","weeklyDownloads":123}],"repo":{"found":true,"owner":"PhilflowIO","repo":"dav-mcp","archived":false,"pushedAt":"2026-09-10T21:11:55Z","stars":34,"forks":12,"openIssues":3,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/223725160?v=4","ownerCreatedAt":"2025-07-30T17:19:08Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/223725160?v=4&s=128","source":"registry"},"presence":{"stars":34,"forks":12,"downloadsWeek":123,"license":"MIT","lastPushAt":"2026-09-10T21:11:55.000Z","score":40}}}},"grade_history":[],"reviews":[]}