docs(docstrings): improve tool usage guidance for new Claude sessions (v1.4.1)

- get_wall_posts: clarify mixed content (status posts + activity entries)
- get_activities: expand description and distinguish from get_wall_posts
- like_post: extend post_id examples (wall/, task/, taskList/ IDs)
- get_recipe_categories: add usage notes (IDs, free-tier categories, family-wide)
- add_meal_note: clarify create-only behavior (delete then recreate to update)
- clear_list: move risk warning (default deletes all) to opening line
- create_recipe: verify IMPORTANT confirmation line present

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-04-17 23:47:42 +02:00
parent 09bd24a9e1
commit dd42dc2845
3 changed files with 46 additions and 7 deletions
+16
View File
@@ -10,6 +10,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
This project follows Semantic Versioning (SemVer). This project follows Semantic Versioning (SemVer).
Breaking changes (removed tools, changed parameters) increment the major version. Breaking changes (removed tools, changed parameters) increment the major version.
## [1.4.1] 2026-04-17
### Improved
- **Docstring enhancements** — clearer tool usage guidance for new Claude sessions:
- `get_wall_posts`: Added note that results include automatic activity entries (task updates, list changes)
- `get_activities`: Expanded description and added distinction from `get_wall_posts`
- `like_post`: Extended post_id examples to include `task/` and `taskList/` IDs from activities
- `get_recipe_categories`: Added usage notes (IDs for create/update, 5 free-tier categories, family-wide scope)
- `add_meal_note`: Clarified create-only behavior; to update, delete then recreate
- `clear_list`: Moved risk warning (default deletes all tasks) to opening line for visibility
- `create_recipe`: Verified IMPORTANT confirmation line present
### Notes
- No breaking changes; docstring improvements only
- All tools remain backward compatible
## [1.4.0] 2026-04-17 ## [1.4.0] 2026-04-17
### Added ### Added
+1 -1
View File
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
[project] [project]
name = "mcp-familywall" name = "mcp-familywall"
version = "1.4.0" version = "1.4.1"
description = "MCP server for Family Wall — manage your family's circles, lists, tasks, recipes, and meal plan via Claude" description = "MCP server for Family Wall — manage your family's circles, lists, tasks, recipes, and meal plan via Claude"
readme = "README.md" readme = "README.md"
requires-python = ">=3.12" requires-python = ">=3.12"
+29 -6
View File
@@ -737,7 +737,18 @@ def delete_category(category_id: str) -> str:
@mcp.tool() @mcp.tool()
def get_activities(limit: int = 20) -> str: def get_activities(limit: int = 20) -> str:
"""Return recent Family Wall wall activities as JSON. limit controls max number of results.""" """Return recent Family Wall activity events as JSON.
Gives task and list activities (task creation/updates, list changes).
For wall posts (status updates, photos, comments), use get_wall_posts.
Args:
limit: Maximum number of activities to return (default 20).
Returns:
JSON list of activity objects sorted by date descending,
including wall, task, and taskList activity entries.
"""
try: try:
email, password = get_credentials() email, password = get_credentials()
except RuntimeError as exc: except RuntimeError as exc:
@@ -1182,7 +1193,10 @@ def delete_task(task_id: str) -> str:
@mcp.tool() @mcp.tool()
def clear_list(list_id: str, only_open: bool = False) -> str: def clear_list(list_id: str, only_open: bool = False) -> str:
"""Delete all tasks in a list within a single authenticated session. """Delete all tasks in a list (or only open tasks).
⚠️ **Warning**: By default (only_open=False) this deletes all tasks
including completed ones. Set only_open=True to keep completed tasks.
IMPORTANT: Ask the user for confirmation before calling this tool. IMPORTANT: Ask the user for confirmation before calling this tool.
@@ -1193,7 +1207,7 @@ def clear_list(list_id: str, only_open: bool = False) -> str:
list_id: List metaId from get_lists list_id: List metaId from get_lists
(e.g. ``"taskList/16282169_29775360"``). (e.g. ``"taskList/16282169_29775360"``).
only_open: When ``True`` only incomplete tasks are deleted; only_open: When ``True`` only incomplete tasks are deleted;
completed tasks are kept. Default ``False`` deletes all. completed tasks are kept. Default ``False`` deletes all tasks.
Returns: Returns:
JSON with ``deleted_count`` and ``list_id`` on success, JSON with ``deleted_count`` and ``list_id`` on success,
@@ -1907,7 +1921,10 @@ def like_post(post_id: str, like: bool = True, mood: str = "STAR") -> str:
IMPORTANT: Ask the user for confirmation before calling this tool. IMPORTANT: Ask the user for confirmation before calling this tool.
Args: Args:
post_id: Wall post ID from get_activities (e.g. ``wall/23431854_31119189``). post_id: Post metaId from get_wall_posts or get_activities
(e.g. ``wall/16282169_31119189`` for wall posts,
``task/16282169_441781324`` for task activities,
``taskList/16282169_123`` for list activities).
like: ``True`` to add a like (default), ``False`` to remove it. like: ``True`` to add a like (default), ``False`` to remove it.
mood: Mood type to set or remove. Default is ``"STAR"``. mood: Mood type to set or remove. Default is ``"STAR"``.
@@ -1984,7 +2001,8 @@ def get_wall_posts(limit: int = 20) -> str:
"""Return recent Family Wall posts as JSON. """Return recent Family Wall posts as JSON.
Returns posts from the primary circle's wall, sorted by date descending. Returns posts from the primary circle's wall, sorted by date descending.
Includes status posts, activity entries, comments, and like information. Includes status posts, activity entries (task updates, list changes),
comments, and like information. Use get_activities for task-focused activity lists.
Args: Args:
limit: Maximum number of posts to return (default 20). limit: Maximum number of posts to return (default 20).
@@ -2280,6 +2298,10 @@ def _get_raw_recipes() -> list[dict[str, Any]]:
def get_recipe_categories() -> str: def get_recipe_categories() -> str:
"""Return all available recipe categories for the family. """Return all available recipe categories for the family.
Use the returned IDs directly in create_recipe/update_recipe via category_ids.
Always includes 5 standard free-tier categories; categories are family-wide,
not recipe-specific.
Returns: Returns:
JSON list of category IDs (e.g. ["category/23431854_2", ...]). JSON list of category IDs (e.g. ["category/23431854_2", ...]).
Always includes the 5 free-tier standard categories if family ID is available. Always includes the 5 free-tier standard categories if family ID is available.
@@ -3009,7 +3031,8 @@ def add_meal_note(
IMPORTANT: Ask the user for confirmation before calling this tool. IMPORTANT: Ask the user for confirmation before calling this tool.
Creates a ``meal/`` entry for the given date and meal type. Creates a new ``meal/`` entry for the given date and meal type.
To update an existing entry, delete it first then create a new one.
At least one of ``note`` or ``serves`` must be provided. At least one of ``note`` or ``serves`` must be provided.
Args: Args: