feat(mcp): project + milestone CRUD tools
Seven tools matching existing fable-mcp contracts: - fable_list/get/create/update_project (no delete; archive via status) - fable_list/create/update_milestone (no get; no delete) LLM-era similarity-check / 'confirmed' guard for create_project is NOT replicated — Claude doesn't need it. The service's auto-summary regeneration side effect (services.projects.update_project) stays for now; gets removed in Phase 7 along with all other LLM code. Notable sentinels: - update_milestone: order_index=-1 means "leave unchanged" (0 is valid) - create_milestone: description="" becomes None at the service layer Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -4,7 +4,9 @@ Each tool module exposes a `register(mcp)` function that attaches its tools
|
||||
to a FastMCP instance. `register_all(mcp)` is the single entry point called
|
||||
from `mcp.server.build_mcp_server`.
|
||||
"""
|
||||
from fabledassistant.mcp.tools import notes, search, tasks
|
||||
from fabledassistant.mcp.tools import (
|
||||
milestones, notes, projects, search, tasks,
|
||||
)
|
||||
|
||||
|
||||
def register_all(mcp) -> None:
|
||||
@@ -12,3 +14,5 @@ def register_all(mcp) -> None:
|
||||
search.register(mcp)
|
||||
notes.register(mcp)
|
||||
tasks.register(mcp)
|
||||
projects.register(mcp)
|
||||
milestones.register(mcp)
|
||||
|
||||
Reference in New Issue
Block a user