Skip to content

Commit 5fa495d

Browse files
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

File tree

0 commit comments

Comments
 (0)