Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
AI-orchestrated calendars, contacts & tasks across any DAV platform. 27 tools, field-agnostic.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
CALDAV_SERVER_URL, CALDAV_USERNAME, CALDAV_PASSWORD, AUTH_METHOD, GOOGLE_SERVER_URL, GOOGLE_USER, GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_REFRESH_TOKEN, GOOGLE_TOKEN_URLค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"dav": {
"command": "npx",
"args": [
"-y",
"dav-mcp"
],
"env": {
"CALDAV_SERVER_URL": "ใส่ค่าของคุณ",
"CALDAV_USERNAME": "ใส่ค่าของคุณ",
"CALDAV_PASSWORD": "ใส่ค่าของคุณ",
"AUTH_METHOD": "ใส่ค่าของคุณ",
"GOOGLE_SERVER_URL": "ใส่ค่าของคุณ",
"GOOGLE_USER": "ใส่ค่าของคุณ",
"GOOGLE_CLIENT_ID": "ใส่ค่าของคุณ",
"GOOGLE_CLIENT_SECRET": "ใส่ค่าของคุณ",
"GOOGLE_REFRESH_TOKEN": "ใส่ค่าของคุณ",
"GOOGLE_TOKEN_URL": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add dav --env CALDAV_SERVER_URL='ใส่ค่าของคุณ' --env CALDAV_USERNAME='ใส่ค่าของคุณ' --env CALDAV_PASSWORD='ใส่ค่าของคุณ' --env AUTH_METHOD='ใส่ค่าของคุณ' --env GOOGLE_SERVER_URL='ใส่ค่าของคุณ' --env GOOGLE_USER='ใส่ค่าของคุณ' --env GOOGLE_CLIENT_ID='ใส่ค่าของคุณ' --env GOOGLE_CLIENT_SECRET='ใส่ค่าของคุณ' --env GOOGLE_REFRESH_TOKEN='ใส่ค่าของคุณ' --env GOOGLE_TOKEN_URL='ใส่ค่าของคุณ' -- npx -y dav-mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"dav": {
"command": "npx",
"args": [
"-y",
"dav-mcp"
],
"env": {
"CALDAV_SERVER_URL": "ใส่ค่าของคุณ",
"CALDAV_USERNAME": "ใส่ค่าของคุณ",
"CALDAV_PASSWORD": "ใส่ค่าของคุณ",
"AUTH_METHOD": "ใส่ค่าของคุณ",
"GOOGLE_SERVER_URL": "ใส่ค่าของคุณ",
"GOOGLE_USER": "ใส่ค่าของคุณ",
"GOOGLE_CLIENT_ID": "ใส่ค่าของคุณ",
"GOOGLE_CLIENT_SECRET": "ใส่ค่าของคุณ",
"GOOGLE_REFRESH_TOKEN": "ใส่ค่าของคุณ",
"GOOGLE_TOKEN_URL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"dav": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"dav-mcp"
],
"env": {
"CALDAV_SERVER_URL": "ใส่ค่าของคุณ",
"CALDAV_USERNAME": "ใส่ค่าของคุณ",
"CALDAV_PASSWORD": "ใส่ค่าของคุณ",
"AUTH_METHOD": "ใส่ค่าของคุณ",
"GOOGLE_SERVER_URL": "ใส่ค่าของคุณ",
"GOOGLE_USER": "ใส่ค่าของคุณ",
"GOOGLE_CLIENT_ID": "ใส่ค่าของคุณ",
"GOOGLE_CLIENT_SECRET": "ใส่ค่าของคุณ",
"GOOGLE_REFRESH_TOKEN": "ใส่ค่าของคุณ",
"GOOGLE_TOKEN_URL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
AUTH_METHOD envGOOGLE_SERVER_URL envGOOGLE_USER envGOOGLE_CLIENT_ID envGOOGLE_TOKEN_URL envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub PhilflowIO ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: CALDAV_SERVER_URL, CALDAV_USERNAME, CALDAV_PASSWORD, GOOGLE_CLIENT_SECRET, GOOGLE_REFRESH_TOKEN
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (5.0.0) เข้า registry 28 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Zendesk
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Zendesk MCP Pack — tickets, users, organizations via OAuth.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Give your AI agents the power of organization — Transform them into orchestrating assistants managing calendars, contacts, and tasks.
Built on 27 production-ready tools spanning CalDAV, CardDAV, and VTODO protocols.
dav-mcp- .mcpb from the latest release. Releases from 4.1.2 on carry this file.Basic unless your server needs Digest.The .mcpb file is an MCP Bundle: the server with its dependencies, so neither Node.js nor npx needs to be installed.
Add to your MCP config file:
{
"mcpServers": { "dav-mcp": { "command": "npx", "args": ["-y", "dav-mcp"], "env": { "CALDAV_SERVER_URL": "https://dav.example.com", "CALDAV_USERNAME": "your_username", "CALDAV_PASSWORD": "your_password" } } } }
Config file locations:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.jsonRestart Claude Desktop after adding the configuration.
Start the HTTP server:
CALDAV_SERVER_URL=https://dav.example.com \
CALDAV_USERNAME=your_username \ CALDAV_PASSWORD=your_password \ BEARER_TOKEN=your-secret-token \ npx dav-mcp --http
Then in n8n:
http://localhost:3000/mcpCustom port:
npx dav-mcp --http --port=8080
Pull the published image (distroless, runs as non-root, no shell):
docker run -d --name dav-mcp -p 3000:3000 --env-file .env \
ghcr.io/philflowio/dav-mcp:latest
Tags: latest, the exact release (5.0.0) and the minor line (5.0). Set PORT to serve on a different port; the healthcheck follows it.
Or build from source:
git clone https://github.com/PhilflowIO/dav-mcp.git
cd dav-mcp cp .env.example .env
docker-compose up
When partial tools force your AI to improvise, complete tools let it execute precise operations across all components.
| Capability | dav-mcp | Most MCPs |
|---|---|---|
| Calendar Management | Full CRUD (12 tools) | Create + list only (2-3 tools) |
| Contact Management | Complete CardDAV (8 tools) | Often missing entirely |
| Task Management | Full VTODO support (7 tools) | Rarely included |
| Field-Based Updates | All RFC properties + custom fields | Rarely available |
| Free/Busy | Works on every server (client-side) | Native REPORT, unsupported by most |
| Server-Side Filtering | Efficient queries | Dumps all data |
| Multi-Provider | Any CalDAV/CardDAV server | Limited provider support |
| Total Tools | 27 tools | 2-6 tools |
Europe/Berlin, sent as a VTIMEZONE)An event or todo written without a time zone (a "floating" time such as DTSTART:20261010T090000, or an all-day date) is read in its calendar's time zone, as CalDAV specifies (RFC 4791 §9.9): the zone set with make_calendar / update_calendar, which list_calendars shows. A calendar without one is read in the zone dav-mcp runs in: the TZ environment variable (for example TZ=Europe/Berlin in Docker or an HTTP deployment), else the system's. A time without a zone given to the create and update tools is read the same way, and an event stored without a zone stays without one when it is moved. freebusy_query prints its slots in the calendar's zone and names it.
Works with any CalDAV/CardDAV server that follows RFC 4791 and RFC 6352:
AUTH_METHOD selects how dav-mcp logs in (case-insensitive):
AUTH_METHOD | Credentials | Use for |
|---|---|---|
Basic (default) | CALDAV_USERNAME, CALDAV_PASSWORD | Almost every server. If the server only offers Digest (for example Baikal set to Digest), dav-mcp switches to Digest by itself — no setting needed. |
Digest | CALDAV_USERNAME, CALDAV_PASSWORD | Servers that only accept Digest (RFC 7616). Unlike the automatic switch under Basic, which first sends the password once Basic-encoded and is then rejected, Digest never sends the password — use it when the connection is not HTTPS. |
OAuth (or OAuth2) | GOOGLE_*, see below | Google Calendar |
dav-mcp needs Node.js 22 or newer. A wrong configuration — an unknown AUTH_METHOD value, or missing credentials for the chosen method — stops the server at startup instead of falling back to Basic.
For Google Calendar, use OAuth2 authentication:
{
"mcpServers": { "dav-mcp": { "command": "npx", "args": ["-y", "dav-mcp"], "env": { "AUTH_METHOD": "OAuth", "GOOGLE_USER": "your@gmail.com", "GOOGLE_CLIENT_ID": "your-client-id", "GOOGLE_CLIENT_SECRET": "your-client-secret", "GOOGLE_REFRESH_TOKEN": "your-refresh-token" } } } }
LOG_TOOL_CALLS=true records every tool call with its arguments, for debugging — to ~/.local/state/dav-mcp/tool-calls.jsonl (or $XDG_STATE_HOME, %LOCALAPPDATA% on Windows, or TOOL_CALL_LOG_FILE), readable by you only. TOOL_CALL_LOG_MODE=console sends it to stderr instead.dav-mcp runs on your machine (or your own server) and talks only to the DAV server you configure. It has no telemetry and shares nothing with its maintainers or third parties. Tool results go to the AI assistant that called the tool. Credentials and calendar data are not stored by dav-mcp; the optional tool-call log is off by default. Full policy: PRIVACY.md. Contact: hello@philflow.io.
Pull requests are welcome! Please read CONTRIBUTING.md for guidelines.
MIT License - see LICENSE for details
Built with:
ตัดมาแค่ช่วงต้น อ่านต่อใน repo