MCP 伺服器
sync.day 是一個公開的 MCP(Model Context Protocol)伺服器。把它接進 Claude、Cursor、ChatGPT 或你自己的機器人,AI 就能直接幫你建活動、替大家填時間、看誰什麼時候有空。
接入位址
https://sync.day/mcp/mcpStreamable HTTP,無狀態,不用登入,也不用 API key。已開放跨域。每個 IP 每分鐘 60 次請求。不支援舊的 SSE 傳輸(/mcp/sse)。
工具
create_event- 建立活動,回傳分享連結、發起人連結和 adminKey
parse_event_text- 把一句話(「下週六下午聚餐 3 小時」)解析成 create_event 的參數,不會建立
get_event- 讀取活動:設定、每天的候選開始時間、已填的人、人數最多的前 10 個開始時間、大家都能到的時間與投票、已定的時間
submit_availability- 替某個人儲存能來的開始時間(按 identity 認人,同一 identity 再提交就是覆蓋),回傳最新排名
vote_time- 替某個人勾選能接受的開始時間(按 identity 認人,可以多選,再提交就是整套替換;要先填過時間)
decide_time- 發起人定下時間(需要 adminKey;傳 null 撤銷),定了之後不能再選和投
remove_participant- 發起人刪除某個參與者(需要 adminKey)
update_event- 發起人修改活動設定(需要 adminKey;沒傳的欄位維持不變)
時間 key 是候選的開始時間,形如 2026-09-05T14:00,從 get_event 的 startOptions 取得。adminKey 只給發起人,別貼到群組裡。
submit_availability 和 vote_time 裡的 identity 是你替每個人產生並保存的一個隨機、不易猜到的密鑰(至少 16 個字元,例如 32 位十六進位),不要用普通的使用者 id 或名字——誰猜到它就能在所有活動裡冒充這個人。伺服器只存它的雜湊;同一個 identity 就是同一個人,名字只是顯示用,可以重複。
Claude Code
claude mcp add --transport http syncday https://sync.day/mcp/mcpClaude Desktop
在設定 → Connectors 直接加 URL;或寫進 claude_desktop_config.json:
{
"mcpServers": {
"syncday": {
"url": "https://sync.day/mcp/mcp"
}
}
}Cursor
專案裡的 .cursor/mcp.json(或全域 ~/.cursor/mcp.json):
{
"mcpServers": {
"syncday": {
"url": "https://sync.day/mcp/mcp"
}
}
}用 curl 試試
# initialize
curl -s https://sync.day/mcp/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"0"}}}'
# tools/list
curl -s https://sync.day/mcp/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'回應是 SSE 格式(event: message 加一行 data:),裡面是 JSON-RPC。
典型對話
「幫我約下週六或週日下午聚餐,3 小時」→ AI 呼叫 parse_event_text 再 create_event,把連結給你;「把小明週六 14:00 和 15:00 填上」→ submit_availability;「現在哪個時間人最齊?」→ get_event;「小明投週六 15:00」→ vote_time;「就定週六 15:00」→ decide_time。