feat(mcp): event CRUD tools

Five new tools (events weren't in fable-mcp before). Split
start_date + start_time inputs combine into a naive datetime that
services/events.py interprets in the user's local timezone.

Sentinels for update:
  - empty strings → leave unchanged
  - duration_minutes=-1 → leave unchanged
  - duration_minutes=0 → set to point event (NULL duration)
  - start_date/start_time must BOTH be set to move the event

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-26 20:50:54 -04:00
parent 4d6bae77b4
commit 9a76c4718b
3 changed files with 309 additions and 1 deletions
+2 -1
View File
@@ -5,7 +5,7 @@ to a FastMCP instance. `register_all(mcp)` is the single entry point called
from `mcp.server.build_mcp_server`.
"""
from fabledassistant.mcp.tools import (
milestones, notes, projects, search, tasks,
events, milestones, notes, projects, search, tasks,
)
@@ -16,3 +16,4 @@ def register_all(mcp) -> None:
tasks.register(mcp)
projects.register(mcp)
milestones.register(mcp)
events.register(mcp)