b026421985
Five tools wrapping services/notes.py with is_task=False. Signatures
mirror the existing fable-mcp note tool contracts so Claude usage is
unchanged.
Key behavior the tests pin down:
- list_notes repackages (rows, total) tuple into {notes, total}
- tag=""/search_text="" are "no filter" sentinels
- update_note ONLY sends non-default fields to the service (the
main risk: a default empty string overwriting real data)
- tags=[] is an explicit clear; tags=None is "leave unchanged"
- project_id=0 on create => orphan; on update => leave unchanged
(preserved limitation from existing fable-mcp)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
14 lines
432 B
Python
14 lines
432 B
Python
"""MCP tool implementations.
|
|
|
|
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
|
|
|
|
|
|
def register_all(mcp) -> None:
|
|
"""Register every tool module's tools on the given FastMCP instance."""
|
|
search.register(mcp)
|
|
notes.register(mcp)
|