{"id":"philflowio-dav-mcp","name":"dav-mcp","homepage":null,"repo_url":"https://github.com/PhilflowIO/dav-mcp","category":"infrastructure","subcategories":[],"tags":["mcp","caldav","carddav","vtodo","calendar","contacts","tasks","automation","dav"],"what_it_does":"dav-mcp provides an MCP server (and optionally an HTTP interface) that exposes CalDAV (calendar), CardDAV (contacts), and VTODO/VTODO-over-CalDAV-style (tasks) operations as a set of agent-callable tools for creating, updating, querying, and deleting calendar, contact, and todo resources on a DAV server.","use_cases":["AI agents that manage calendars: create/update events, run filtered event queries, batch fetch events","AI agents that manage contacts: search address books, create/update/delete vCards, batch fetch contacts","AI agents that manage tasks/todos: create/update/delete VTODO items and query/filter by status/due dates","Automation workflows (e.g., n8n) that connect an MCP client tool to a DAV-backed backend","Local desktop integrations (e.g., Claude Desktop) that call calendar/contacts/todos via MCP"],"not_for":["Use as a general-purpose DAV proxy for arbitrary clients (the surface is agent-tool oriented, not a full generic DAV API)","Environments requiring an OpenAPI/SDK-first developer experience beyond MCP usage","Teams needing guaranteed idempotency semantics for every write operation (not documented)"],"best_when":"You want LLM/MCP-driven orchestration over calendar/contacts/tasks on an RFC-compliant CalDAV/CardDAV/VTODO server and can supply credentials via environment variables or configured MCP runtime.","avoid_when":"You cannot control or secure outbound credentials/requests, or you need strongly specified retry/idempotency and pagination/error-code contracts (not fully evidenced in README).","alternatives":["Direct CalDAV/CardDAV/VTODO libraries and custom agent wrappers (e.g., tsdav + your own tool layer)","Other MCP integrations targeting specific calendar/contact systems","Server-side automation using provider APIs (e.g., Google Calendar API) rather than DAV"],"af_score":69.8,"security_score":60.5,"reliability_score":36.2,"package_type":"mcp_server","discovery_source":["github"],"priority":"high","status":"evaluated","version_evaluated":null,"last_evaluated":"2026-03-30T15:37:32.994870+00:00","interface":{"has_rest_api":true,"has_graphql":false,"has_grpc":false,"has_mcp_server":true,"mcp_server_url":null,"has_sdk":false,"sdk_languages":[],"openapi_spec_url":null,"webhooks":false},"auth":{"methods":["Bearer token for HTTP mode","OAuth2 for Google Calendar (via env configuration)"],"oauth":true,"scopes":false,"notes":"README describes bearer token auth for the HTTP server mode and an OAuth configuration path for Google Calendar. No explicit scope model or fine-grained permission scopes are documented in the provided content."},"pricing":{"model":null,"free_tier_exists":false,"free_tier_limits":null,"paid_tiers":[],"requires_credit_card":false,"estimated_workload_costs":null,"notes":"As an npm package, runtime cost depends on your DAV server and hosting for the MCP/HTTP server; no pricing model is described in the provided content."},"requirements":{"requires_signup":false,"requires_credit_card":false,"domain_verification":false,"data_residency":[],"compliance":[],"min_contract":null},"agent_readiness":{"af_score":69.8,"security_score":60.5,"reliability_score":36.2,"mcp_server_quality":75.0,"documentation_accuracy":65.0,"error_message_quality":0.0,"error_message_notes":null,"auth_complexity":70.0,"rate_limit_clarity":85.0,"tls_enforcement":60.0,"auth_strength":65.0,"scope_granularity":40.0,"dependency_hygiene":55.0,"secret_handling":80.0,"security_notes":"README claims inputs are validated with Zod, bearer token auth for HTTP mode, 'no credential storage' with pass-through only, structured logging with request IDs and no PII exposure, and CORS origin whitelisting. No explicit mention of TLS-only enforcement, token format/expiry, or OAuth scope restrictions. Dependency hygiene/CVE status cannot be confirmed from provided content.","uptime_documented":0.0,"version_stability":55.0,"breaking_changes_history":50.0,"error_recovery":40.0,"idempotency_support":"false","idempotency_notes":null,"pagination_style":"none","retry_guidance_documented":false,"known_agent_gotchas":["Write operations (create/update/delete) are exposed; without documented idempotency, agents may cause duplicate records if retries occur.","HTTP endpoint is localhost in examples; remote deployments should ensure correct routing and secure exposure.","DAV servers can differ in RFC feature completeness; some queries/filters may behave differently by provider even if the tool exists.","Agents may need to use the *_query tools for filtering rather than listing-all tools to avoid excessive data retrieval."]}}