# mcp-familywall MCP server for [Family Wall](https://www.familywall.com) -- read and manage your family's circles, lists, tasks, and recipes directly from Claude. ## Features (v0.10.0) ### Read - `get_circles` -- list all family circles - `get_members` -- list members of a circle (or all circles) - `get_lists` -- list all task lists (includes `emoji`, `color`, `circle_id`; `null` when unset; list types: `SHOPPING_LIST`, `TODOS`, `OTHER`); without scope parameter returns lists from **all circles**; optional `scope` parameter filters by circle metaId or circle name - `get_tasks` -- list tasks in a specific list (includes `category_id`, `due_date`, `assignee_ids`, `recurrency`, `rrule`, `reminder`) - `get_categories` -- list categories for a list (locale-filtered; custom categories always included; `custom` flag marks user-created ones) - `get_activities` -- list recent wall activities (author resolved to display name) - `get_recipes` -- list all family recipes (compact summary: id, name, prep/cook time, serves) - `get_recipe` -- get a single recipe in full detail (ingredients, instructions, ingredients_parsed, category_ids, etc.) - `get_recipe_categories` -- list all available recipe categories (always returns all 5 standard categories: Bei Kindern beliebt, Wirklich einfach, Nachspeisen, Schmeckt toll, Gemüse; plus any additional categories found in existing recipes) - `get_meal_plan` -- get meal plan entries for a date range (Premium feature; returns raw JSON for verification) ### Write (with confirmation prompt) - `create_task` -- create a new task in a list (supports `category_id`, `due_date`, `assignee_ids`); use `"Äpfel (5x)"` format for quantities - `update_task` -- update text, description, category, due date, assignees, or move to a different list; supports `clear_due_date=True` to remove a due date - `toggle_task` -- mark a task complete or reopen it - `delete_task` -- permanently delete a task - `create_list` -- create a new task list (`SHOPPING_LIST`, `TODOS`, or `OTHER`; optional `emoji`, `color`, and `circle_id` to target a specific circle) - `update_list` -- rename a list or change its emoji/color (partial update — omitted fields unchanged; system lists are protected) - `delete_list` -- permanently delete a list and all its tasks (system lists are protected) - `create_category` -- create a custom category for a shopping list (with optional icon) - `delete_category` -- delete a custom category (system categories are protected) - `like_post` -- like a wall post/activity - `create_recipe` -- create a new recipe (name, description, ingredients, instructions, prep/cook time, serves, url, category_ids); use `\n` to separate ingredient lines - `update_recipe` -- update any field of an existing recipe (partial update — omitted fields unchanged; supports `category_ids` list to change categories) - `delete_recipe` -- permanently delete a recipe (only own recipes) - `create_circle` -- create a new Family Wall circle (group) - `update_circle` -- rename a circle (server capitalises first letter; only name is changeable via API; primary circle is protected) - `delete_circle` -- permanently delete a circle and all its content (primary circle is protected) - `add_member_to_circle` -- invite a person to a circle by e-mail (for new Family Wall users only; existing accounts require in-app invitation) ## Requirements - Python 3.12+ - [uv](https://docs.astral.sh/uv/) - A Family Wall account ## Installation ```bash uv tool install mcp-familywall ``` ## Setup Run the interactive setup wizard once to store your credentials securely in the OS keyring: ```bash mcp-familywall setup ``` This will: 1. Prompt for your Family Wall email and password 2. Verify the credentials against the API 3. Store them in the OS keyring 4. Print a Claude Desktop configuration snippet ## Claude Desktop configuration Add the printed snippet to your `claude_desktop_config.json`: ```json { "mcpServers": { "familywall": { "command": "uvx", "args": ["mcp-familywall", "serve"] } } } ``` ## Verify ```bash mcp-familywall check ``` ## Debug logging Set `FW_DEBUG=1` to log full request/response bodies to stderr (passwords are masked): ```bash FW_DEBUG=1 mcp-familywall check ``` ## Credentials Credentials are resolved in this order: 1. Environment variables `FW_EMAIL` and `FW_PASSWORD` 2. OS keyring (set by `mcp-familywall setup`) ## License MIT