fix: reduce tools/list payload – remove return annotations and shorten docstrings (v0.3.1)

This commit is contained in:
2026-04-15 14:26:56 +02:00
parent 8276647fcf
commit e3b4e613ad
3 changed files with 10 additions and 50 deletions
+1 -1
View File
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
[project] [project]
name = "mcp-familywall" name = "mcp-familywall"
version = "0.3.0" version = "0.3.1"
description = "MCP server for Family Wall — read your family's lists and tasks via Claude" description = "MCP server for Family Wall — read your family's lists and tasks via Claude"
readme = "README.md" readme = "README.md"
requires-python = ">=3.12" requires-python = ">=3.12"
+1 -1
View File
@@ -1 +1 @@
__version__ = "0.3.0" __version__ = "0.3.1"
+8 -48
View File
@@ -118,15 +118,8 @@ def _extract_tasks(data: dict[str, Any]) -> list[dict[str, Any]]:
@mcp.tool() @mcp.tool()
def get_circles() -> str: def get_circles():
"""Return all Family Wall circles (Kreise) the account belongs to. """Return all Family Wall circles as JSON list of {id, name}."""
Each circle has an id and a name.
Response structure verified: a00.r.r[] with metaId and name fields.
Returns:
JSON string — list of {id, name} objects.
"""
try: try:
email, password = get_credentials() email, password = get_credentials()
except RuntimeError as exc: except RuntimeError as exc:
@@ -163,19 +156,8 @@ def get_circles() -> str:
@mcp.tool() @mcp.tool()
def get_lists(scope: str | None = None) -> str: def get_lists(scope: str | None = None):
"""Return all task lists, optionally filtered by circle name. """Return task lists as JSON, optionally filtered by circle name (scope)."""
Uses the taskgettasklists endpoint directly.
Args:
scope: Optional circle name to filter by. When None, all lists from
all circles are returned.
Returns:
JSON string — list of objects with keys:
id, name, type, open, total.
"""
try: try:
email, password = get_credentials() email, password = get_credentials()
except RuntimeError as exc: except RuntimeError as exc:
@@ -232,17 +214,8 @@ def get_lists(scope: str | None = None) -> str:
@mcp.tool() @mcp.tool()
def get_tasks(list_id: str, only_open: bool = True) -> str: def get_tasks(list_id: str, only_open: bool = True):
"""Return tasks for a specific list. """Return tasks for a list as JSON. list_id from get_lists. only_open=True filters completed."""
Args:
list_id: The metaId of the list (from get_lists).
only_open: When True (default), only incomplete tasks are returned.
Returns:
JSON string — list of objects with keys:
id, text, description, completed.
"""
try: try:
data = _accgetallfamily() data = _accgetallfamily()
except RuntimeError as exc: except RuntimeError as exc:
@@ -275,21 +248,8 @@ def get_tasks(list_id: str, only_open: bool = True) -> str:
@mcp.tool() @mcp.tool()
def get_activities(limit: int = 20) -> str: def get_activities(limit: int = 20):
"""Return recent Family Wall wall activities (posts, comments, photos, …). """Return recent Family Wall wall activities as JSON. limit controls max number of results."""
Uses the wallget endpoint. Response structure is not yet verified against
a live API call — the raw response is returned when no known pattern is
matched, so the structure can be inspected on the first real call.
Args:
limit: Maximum number of activities to return (default 20).
Returns:
JSON string — list of objects with keys:
id, type, text, date, author.
Falls back to raw API response when the structure is unrecognised.
"""
try: try:
email, password = get_credentials() email, password = get_credentials()
except RuntimeError as exc: except RuntimeError as exc: