Commit 5fa495d
committed
feat(mcp): Describe and annotate tools, bound list responses
Every tool was advertised as "KitchenOwl tool: <name>" with undescribed
parameters, leaving the model to infer semantics from the name alone.
Tools now carry a written description, a title, per-parameter
descriptions, and readOnly/destructive/idempotent/openWorld annotations,
so a client can tell reading from writing and prompt accordingly.
list_recipes returned obj_to_full_dict for every recipe in the
household, method body and nested household included, with no limit. It
now returns summaries and every list tool takes limit/offset and reports
total and has_more. Page size is clamped to 200.
Tool failures are reported as isError results rather than JSON-RPC
protocol errors, which is what the spec asks for and lets the model
recover. Unexpected exceptions are logged and replaced with a generic
message instead of returning str(e) to the caller.1 parent 665f589 commit 5fa495d
3 files changed
Lines changed: 741 additions & 292 deletions
0 commit comments