Framezone

Your life dashboard for AI: tasks, habits, goals, budgets, workouts, nutrition, journal, notes.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
98%
Vollständigkeit des Schemas
92%
Qualität der Benennung
100%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~8,033Tokens (Tool-Definitionen)
~1.4 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (6.28% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "framezone": {
      "url": "https://framezone.app/mcp"
    }
  }
}

Remote-Endpunkte

https://framezone.app/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (50)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢list_tasks(status, priority, project_id, is_top3, include_archived)

List tasks, optionally filtered by status, priority, project, or top3 flag.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "description": "Filter by status",
      "enum": [
        "pending",
        "in_progress",
        "completed"
      ],
      "type": "string"
    },
    "priority": {
      "description": "Filter by priority: 1=high, 2=medium, 3=low",
      "enum": [
        1,
        2,
        3
      ],
      "type": "integer"
    },
    "project_id": {
      "description": "Filter by project ID",
      "type": "integer"
    },
    "is_top3": {
      "description": "Only show Top 3 focus tasks",
      "type": "boolean"
    },
    "include_archived": {
      "description": "Include archived tasks (default: false)",
      "type": "boolean"
    }
  }
}
🟡create_task(title, description, priority, status, due_date, ...)

Create a new task with optional project, priority, due date, and recurrence.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "title": {
      "description": "Task title",
      "type": "string"
    },
    "description": {
      "description": "Task description",
      "type": "string"
    },
    "priority": {
      "description": "Priority: 1=high, 2=medium, 3=low",
      "enum": [
        1,
        2,
        3
      ],
      "type": "integer"
    },
    "status": {
      "description": "Initial status",
      "enum": [
        "pending",
        "in_progress"
      ],
      "type": "string"
    },
    "due_date": {
      "description": "Due date (Y-m-d format)",
      "type": "string"
    },
    "is_top3": {
      "description": "Mark as Top 3 focus task (max 3 allowed)",
      "type": "boolean"
    },
    "project_id": {
      "description": "Assign to project by ID",
      "type": "integer"
    },
    "recurrence": {
      "description": "Recurrence pattern",
      "enum": [
        "daily",
        "weekly",
        "monthly"
      ],
      "type": "string"
    }
  },
  "required": [
    "title"
  ]
}
🟡update_task(task_id, title, description, priority, status, ...)

Update an existing task. Only provided fields are changed.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "task_id": {
      "description": "ID of the task to update",
      "type": "integer"
    },
    "title": {
      "description": "New title",
      "type": "string"
    },
    "description": {
      "description": "New description",
      "type": "string"
    },
    "priority": {
      "description": "Priority: 1=high, 2=medium, 3=low",
      "enum": [
        1,
        2,
        3
      ],
      "type": "integer"
    },
    "status": {
      "description": "New status",
      "enum": [
        "pending",
        "in_progress"
      ],
      "type": "string"
    },
    "due_date": {
      "description": "New due date (Y-m-d)",
      "type": "string"
    },
    "is_top3": {
      "description": "Set Top 3 status",
      "type": "boolean"
    },
    "project_id": {
      "description": "Assign to project by ID",
      "type": "integer"
    }
  },
  "required": [
    "task_id"
  ]
}
⚪complete_task(task_id)

Toggle a task between completed and pending. Cascades to subtasks and handles recurrence.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "task_id": {
      "description": "ID of the task to complete/uncomplete",
      "type": "integer"
    }
  },
  "required": [
    "task_id"
  ]
}
🔴delete_task(task_id)

Soft-delete a task (can be restored later).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "task_id": {
      "description": "ID of the task to delete",
      "type": "integer"
    }
  },
  "required": [
    "task_id"
  ]
}
🟢list_habits(date)

List active habits with the value logged and done status for a date, plus current streaks. Streaks count from yesterday while today is still open; times_per_week habits have weekly streaks (streak_unit=weeks).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "date": {
      "description": "Date to check (Y-m-d, defaults to today)",
      "type": "string"
    }
  }
}
🟡create_habit(name, tracking_type, target_value, unit, target_duration, ...)

Create a new habit. Tracking types: check (daily toggle), count (hit a number), duration (minutes), times_per_week (weekly frequency).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Habit name",
      "type": "string"
    },
    "tracking_type": {
      "description": "Tracking type (default: check)",
      "enum": [
        "check",
        "count",
        "duration",
        "times_per_week"
      ],
      "type": "string"
    },
    "target_value": {
      "description": "Target count value (for count type)",
      "type": "integer"
    },
    "unit": {
      "description": "Unit label (e.g., \"pages\", \"glasses\")",
      "type": "string"
    },
    "target_duration": {
      "description": "Target duration in minutes (for duration type, 5-480)",
      "type": "integer"
    },
    "times_per_week": {
      "description": "Times per week target (for times_per_week type, 1-7)",
      "type": "integer"
    },
    "time_of_day": {
      "description": "When during the day",
      "enum": [
        "morning",
        "afternoon",
        "evening"
      ],
      "type": "string"
    },
    "icon": {
      "description": "Lucide icon name (lowercase, dashes), e.g. book-open",
      "type": "string"
    },
    "color": {
      "description": "Color as #rrggbb, e.g. #10AC84",
      "type": "string"
    }
  },
  "required": [
    "name"
  ]
}
🟡update_habit(habit_id, name, tracking_type, target_value, unit, ...)

Update an existing habit. Only provided fields are changed.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "habit_id": {
      "description": "ID of the habit to update",
      "type": "integer"
    },
    "name": {
      "description": "New habit name",
      "type": "string"
    },
    "tracking_type": {
      "description": "New tracking type",
      "enum": [
        "check",
        "count",
        "duration",
        "times_per_week"
      ],
      "type": "string"
    },
    "target_value": {
      "description": "New target count value",
      "type": "integer"
    },
    "unit": {
      "description": "New unit label",
      "type": "string"
    },
    "target_duration": {
      "description": "New target duration in minutes (5-480)",
      "type": "integer"
    },
    "times_per_week": {
      "description": "New times per week target (1-7)",
      "type": "integer"
    },
    "time_of_day": {
      "description": "When during the day",
      "enum": [
        "morning",
        "afternoon",
        "evening"
      ],
      "type": "string"
    },
    "icon": {
      "description": "Lucide icon name (lowercase, dashes), e.g. book-open",
      "type": "string"
    },
    "color": {
      "description": "Color as #rrggbb, e.g. #10AC84",
      "type": "string"
    },
    "active": {
      "description": "Enable or disable the habit",
      "type": "boolean"
    }
  },
  "required": [
    "habit_id"
  ]
}
⚪log_habit(habit_id, date, value)

Log a habit entry for a date. Sets the value for a day (0 clears it). Without a value the day is marked fully done.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "habit_id": {
      "description": "ID of the habit",
      "type": "integer"
    },
    "date": {
      "description": "Date to log (Y-m-d, defaults to today, cannot be in the future)",
      "type": "string"
    },
    "value": {
      "description": "Value to set for that day (default: the habit's full daily target, i.e. done). 0 clears the day. Count/duration habits are only done when value >= target.",
      "type": "number"
    }
  },
  "required": [
    "habit_id"
  ]
}
🟢list_goals(status, category)

List goals with progress, type, and status. Supports filtering by status or category.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "description": "Filter by status",
      "enum": [
        "active",
        "paused",
        "completed",
        "abandoned"
      ],
      "type": "string"
    },
    "category": {
      "description": "Filter by category",
      "type": "string"
    }
  }
}
🟡create_goal(title, description, category, goal_type, target_date, ...)

Create a new goal. Types: milestone (checklist), numeric (value tracking), habit, vision.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "title": {
      "description": "Goal title",
      "type": "string"
    },
    "description": {
      "description": "Goal description",
      "type": "string"
    },
    "category": {
      "description": "Category (e.g., Health, Career, Finance)",
      "type": "string"
    },
    "goal_type": {
      "description": "Type",
      "enum": [
        "milestone",
        "numeric",
        "habit",
        "vision"
      ],
      "type": "string"
    },
    "target_date": {
      "description": "Target date (Y-m-d)",
      "type": "string"
    },
    "target_value_num": {
      "description": "Target value (for numeric goals)",
      "type": "number"
    },
    "unit": {
      "description": "Unit of measurement (for numeric goals)",
      "type": "string"
    },
    "current_value": {
      "description": "Current value (numeric goals, >= 0)",
      "type": "number"
    },
    "start_value": {
      "description": "Starting value; defaults to current_value. Lets goals that go down (90 -> 80 kg) show progress",
      "type": "number"
    },
    "milestones": {
      "description": "Milestones array [{title: \"...\"}] (for milestone goals)",
      "type": "array"
    },
    "priority": {
      "description": "Priority: 1=high, 2=medium, 3=low",
      "enum": [
        1,
        2,
        3
      ],
      "type": "integer"
    }
  },
  "required": [
    "title"
  ]
}
🟡update_goal(goal_id, title, description, status, current_value, ...)

Update a goal: change status, progress, toggle milestones, or add a progress note.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "goal_id": {
      "description": "Goal ID",
      "type": "integer"
    },
    "title": {
      "description": "New title",
      "type": "string"
    },
    "description": {
      "description": "New description",
      "type": "string"
    },
    "status": {
      "description": "New status",
      "enum": [
        "active",
        "paused",
        "completed",
        "abandoned"
      ],
      "type": "string"
    },
    "current_value": {
      "description": "Current value (for numeric goals, >= 0)",
      "type": "number"
    },
    "start_value": {
      "description": "Value the goal started from; progress is measured from it (use for goals that go down, e.g. 90 -> 80 kg)",
      "type": "number"
    },
    "target_value_num": {
      "description": "Target value (numeric and habit goals)",
      "type": "number"
    },
    "toggle_milestone": {
      "description": "Toggle milestone by index (0-based). Ticking the last open one completes the goal; unticking reopens it.",
      "type": "integer"
    },
    "note": {
      "description": "Progress update note (saved in goal timeline)",
      "type": "string"
    },
    "target_date": {
      "description": "New target date (Y-m-d)",
      "type": "string"
    },
    "priority": {
      "description": "Priority: 1=high, 2=medium, 3=low",
      "enum": [
        1,
        2,
        3
      ],
      "type": "integer"
    }
  },
  "required": [
    "goal_id"
  ]
}
🟢list_projects(status, tier, include_archived)

List projects with task counts, tier, status, and linked goal.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "description": "Filter by status. Archived projects are excluded unless you ask for them explicitly.",
      "enum": [
        "active",
        "paused",
        "completed",
        "archived"
      ],
      "type": "string"
    },
    "tier": {
      "description": "Filter by tier",
      "enum": [
        "A",
        "B",
        "C"
      ],
      "type": "string"
    },
    "include_archived": {
      "description": "Include archived projects in an unfiltered list (default: false)",
      "type": "boolean"
    }
  }
}
🟡create_project(name, description, tier, status, url, ...)

Create a new project with tier (A/B/C), optional goal link, and target date.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Project name",
      "type": "string"
    },
    "description": {
      "description": "Project description",
      "type": "string"
    },
    "tier": {
      "description": "Priority tier",
      "enum": [
        "A",
        "B",
        "C"
      ],
      "type": "string"
    },
    "status": {
      "description": "Initial status",
      "enum": [
        "active",
        "paused"
      ],
      "type": "string"
    },
    "url": {
      "description": "Project URL",
      "type": "string"
    },
    "goal_id": {
      "description": "Link to a goal by ID",
      "type": "integer"
    },
    "target_date": {
      "description": "Target completion date (Y-m-d)",
      "type": "string"
    },
    "color": {
      "description": "Color hex code (e.g., #3B82F6)",
      "type": "string"
    },
    "icon": {
      "description": "Lucide icon name",
      "type": "string"
    }
  },
  "required": [
    "name"
  ]
}
🟡update_project(project_id, name, description, tier, status, ...)

Update a project: change name, tier, status, goal link, or target date.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "project_id": {
      "description": "Project ID",
      "type": "integer"
    },
    "name": {
      "description": "New name",
      "type": "string"
    },
    "description": {
      "description": "New description",
      "type": "string"
    },
    "tier": {
      "description": "New tier",
      "enum": [
        "A",
        "B",
        "C"
      ],
      "type": "string"
    },
    "status": {
      "description": "New status",
      "enum": [
        "active",
        "paused",
        "completed",
        "archived"
      ],
      "type": "string"
    },
    "url": {
      "description": "Project URL",
      "type": "string"
    },
    "goal_id": {
      "description": "Link to goal by ID (0 to unlink)",
      "type": "integer"
    },
    "target_date": {
      "description": "Target date (Y-m-d)",
      "type": "string"
    },
    "color": {
      "description": "Color hex",
      "type": "string"
    },
    "icon": {
      "description": "Lucide icon name",
      "type": "string"
    }
  },
  "required": [
    "project_id"
  ]
}
🟢get_daily_entry(date)

Get the daily journal entry for a date: mood, energy, focus, morning/evening notes.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "date": {
      "description": "Date to get (Y-m-d, defaults to today)",
      "type": "string"
    }
  }
}
🟡update_daily_entry(date, mood, energy, focus_text, focus_completed, ...)

Update the daily journal: set mood (1-5), energy (1-5), focus text, morning/evening notes.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "date": {
      "description": "Date to update (Y-m-d, defaults to today)",
      "type": "string"
    },
    "mood": {
      "description": "Mood rating 1-5",
      "enum": [
        1,
        2,
        3,
        4,
        5
      ],
      "type": "integer"
    },
    "energy": {
      "description": "Energy rating 1-5",
      "enum": [
        1,
        2,
        3,
        4,
        5
      ],
      "type": "integer"
    },
    "focus_text": {
      "description": "Today's focus/intention text (max 255 characters)",
      "type": "string"
    },
    "focus_completed": {
      "description": "Whether the focus was achieved",
      "type": "boolean"
    },
    "morning_note": {
      "description": "Morning journal note",
      "type": "string"
    },
    "evening_note": {
      "description": "Evening reflection note",
      "type": "string"
    }
  }
}
🟢list_notes(search, tag, limit)

List notes, optionally filtered by search query or tag. Returns title, tags, and truncated body.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Search query (matches title and body)",
      "type": "string"
    },
    "tag": {
      "description": "Filter by tag name",
      "type": "string"
    },
    "limit": {
      "description": "Max results (default: 20, max: 50)",
      "type": "integer"
    }
  }
}
🟡create_note(title, body, tags, project_id, is_pinned)

Create a new note with title, body text, and optional tags.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "title": {
      "description": "Note title",
      "type": "string"
    },
    "body": {
      "description": "Note body (plain text)",
      "type": "string"
    },
    "tags": {
      "description": "Tags array",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "project_id": {
      "description": "Link to project by ID",
      "type": "integer"
    },
    "is_pinned": {
      "description": "Pin this note",
      "type": "boolean"
    }
  },
  "required": [
    "title",
    "body"
  ]
}
🔴delete_note(note_id)

Soft-delete a note.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "note_id": {
      "description": "ID of the note to delete",
      "type": "integer"
    }
  },
  "required": [
    "note_id"
  ]
}
🟢list_books(status)

List books with optional status filter. Returns title, author, status, progress, and rating.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "description": "Filter by status",
      "enum": [
        "wishlist",
        "reading",
        "to_check",
        "completed",
        "abandoned"
      ],
      "type": "string"
    }
  }
}
🟡create_book(title, author, pages, status, rating, ...)

Add a book to your library. Set status to "reading", "wishlist", "to_check", etc.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "title": {
      "description": "Book title",
      "type": "string"
    },
    "author": {
      "description": "Author name",
      "type": "string"
    },
    "pages": {
      "description": "Total pages",
      "type": "integer"
    },
    "status": {
      "description": "Reading status",
      "enum": [
        "wishlist",
        "reading",
        "to_check",
        "completed",
        "abandoned"
      ],
      "type": "string"
    },
    "rating": {
      "description": "Rating 1-5",
      "enum": [
        1,
        2,
        3,
        4,
        5
      ],
      "type": "integer"
    },
    "notes": {
      "description": "Personal notes about the book",
      "type": "string"
    },
    "tags": {
      "description": "Tags",
      "items": {
        "type": "string"
      },
      "type": "array"
    }
  },
  "required": [
    "title"
  ]
}
🟡update_book(book_id, title, author, status, rating, ...)

Update a book: change status, rating, notes, or update reading progress (current page).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "book_id": {
      "description": "Book ID",
      "type": "integer"
    },
    "title": {
      "description": "New title",
      "type": "string"
    },
    "author": {
      "description": "New author",
      "type": "string"
    },
    "status": {
      "description": "New status",
      "enum": [
        "wishlist",
        "reading",
        "to_check",
        "completed",
        "abandoned"
      ],
      "type": "string"
    },
    "rating": {
      "description": "Rating 1-5",
      "enum": [
        1,
        2,
        3,
        4,
        5
      ],
      "type": "integer"
    },
    "current_page": {
      "description": "Current page (updates reading progress)",
      "type": "integer"
    },
    "notes": {
      "description": "Personal notes",
      "type": "string"
    },
    "tags": {
      "description": "Tags",
      "items": {
        "type": "string"
      },
      "type": "array"
    }
  },
  "required": [
    "book_id"
  ]
}
🔴delete_book(book_id)

Delete a book from the library.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "book_id": {
      "description": "ID of the book to delete",
      "type": "integer"
    }
  },
  "required": [
    "book_id"
  ]
}
🟢list_quotes(book_id, favorites_only)

List saved quotes, optionally filtered by book or favorites only.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "book_id": {
      "description": "Filter by book ID",
      "type": "integer"
    },
    "favorites_only": {
      "description": "Only show favorites",
      "type": "boolean"
    }
  }
}
🟡create_quote(body, author, source, book_id, is_favorite, ...)

Save a quote with author and optional book link.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "body": {
      "description": "The quote text",
      "type": "string"
    },
    "author": {
      "description": "Who said/wrote it",
      "type": "string"
    },
    "source": {
      "description": "Source (book title, speech, etc.)",
      "type": "string"
    },
    "book_id": {
      "description": "Link to a book by ID",
      "type": "integer"
    },
    "is_favorite": {
      "description": "Mark as favorite",
      "type": "boolean"
    },
    "tags": {
      "description": "Tags",
      "items": {
        "type": "string"
      },
      "type": "array"
    }
  },
  "required": [
    "body"
  ]
}
🟡add_bookmark(url, title, description, category, tags)

Save a bookmark URL with optional title, description, category, and tags.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "url": {
      "description": "Bookmark URL",
      "type": "string"
    },
    "title": {
      "description": "Title (auto-detected from domain if omitted)",
      "type": "string"
    },
    "description": {
      "description": "Description",
      "type": "string"
    },
    "category": {
      "description": "Category",
      "type": "string"
    },
    "tags": {
      "description": "Tags",
      "items": {
        "type": "string"
      },
      "type": "array"
    }
  },
  "required": [
    "url"
  ]
}
🔴delete_bookmark(bookmark_id)

Delete a bookmark permanently.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "bookmark_id": {
      "description": "ID of the bookmark to delete",
      "type": "integer"
    }
  },
  "required": [
    "bookmark_id"
  ]
}
🟢list_accounts

List financial accounts with balances and types.

Eingabe-Schema

{
  "type": "object",
  "properties": {}
}
🟢list_categories(type)

List transaction categories with type (income/expense) and monthly budget.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "type": {
      "description": "Filter by type",
      "enum": [
        "income",
        "expense",
        "both"
      ],
      "type": "string"
    }
  }
}
🟡add_transaction(amount, type, description, transaction_date, account_id, ...)

Add a financial transaction (income or expense) to an account with optional category.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "amount": {
      "description": "Transaction amount (positive number)",
      "type": "number"
    },
    "type": {
      "description": "Transaction type",
      "enum": [
        "income",
        "expense",
        "transfer"
      ],
      "type": "string"
    },
    "description": {
      "description": "What is this transaction for",
      "type": "string"
    },
    "transaction_date": {
      "description": "Date (Y-m-d, defaults to today)",
      "type": "string"
    },
    "account_id": {
      "description": "Account ID (see list_accounts). Defaults to the user's main account.",
      "type": "integer"
    },
    "category_id": {
      "description": "Category ID",
      "type": "integer"
    },
    "notes": {
      "description": "Additional notes",
      "type": "string"
    }
  },
  "required": [
    "amount",
    "type",
    "description"
  ]
}
🟢list_subscriptions

List active subscriptions with amounts, frequency, and next billing date.

Eingabe-Schema

{
  "type": "object",
  "properties": {}
}
🟡create_subscription(name, amount, currency, frequency, category_id, ...)

Add a recurring subscription (monthly, yearly, or weekly).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Subscription name (e.g., Netflix, Spotify)",
      "type": "string"
    },
    "amount": {
      "description": "Amount per billing period",
      "type": "number"
    },
    "currency": {
      "description": "ISO 4217 currency code, e.g. USD, EUR, GBP. Defaults to the user's currency.",
      "type": "string"
    },
    "frequency": {
      "description": "Billing frequency",
      "enum": [
        "monthly",
        "quarterly",
        "yearly",
        "weekly"
      ],
      "type": "string"
    },
    "category_id": {
      "description": "Category ID",
      "type": "integer"
    },
    "next_billing_date": {
      "description": "Next billing date (Y-m-d)",
      "type": "string"
    },
    "url": {
      "description": "Service URL (http or https)",
      "type": "string"
    },
    "notes": {
      "description": "Notes",
      "type": "string"
    }
  },
  "required": [
    "name",
    "amount"
  ]
}
🟢list_holdings

List portfolio holdings with market value, P/L, and allocation. Totals are in the user's currency; holdings without a live price are valued at cost and have null P/L.

Eingabe-Schema

{
  "type": "object",
  "properties": {}
}
🟡add_trade(holding_id, type, shares, price_per_share, traded_at, ...)

Record a buy or sell trade for a portfolio holding. Updates shares and average cost.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "holding_id": {
      "description": "Holding ID",
      "type": "integer"
    },
    "type": {
      "description": "Trade type",
      "enum": [
        "buy",
        "sell"
      ],
      "type": "string"
    },
    "shares": {
      "description": "Number of shares",
      "type": "number"
    },
    "price_per_share": {
      "description": "Price per share",
      "type": "number"
    },
    "traded_at": {
      "description": "Trade date (Y-m-d, defaults to now)",
      "type": "string"
    },
    "notes": {
      "description": "Trade notes",
      "type": "string"
    }
  },
  "required": [
    "holding_id",
    "type",
    "shares",
    "price_per_share"
  ]
}
⚪log_focus_session(duration_minutes, project_id, task_id, type, label, ...)

Log a completed focus/pomodoro session with duration, project, and task link.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "duration_minutes": {
      "description": "Session duration in minutes",
      "type": "integer"
    },
    "project_id": {
      "description": "Link to project",
      "type": "integer"
    },
    "task_id": {
      "description": "Link to task",
      "type": "integer"
    },
    "type": {
      "description": "Session type",
      "enum": [
        "pomodoro",
        "timer"
      ],
      "type": "string"
    },
    "label": {
      "description": "Session label/name",
      "type": "string"
    },
    "started_at": {
      "description": "When it started (Y-m-d H:i, defaults to now minus duration)",
      "type": "string"
    }
  },
  "required": [
    "duration_minutes"
  ]
}
🟢get_focus_summary(from, to)

Get focus time summary: total minutes, sessions, and breakdown by project for a date range.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "from": {
      "description": "Start date (Y-m-d, defaults to start of current week)",
      "type": "string"
    },
    "to": {
      "description": "End date (Y-m-d, defaults to today)",
      "type": "string"
    }
  }
}
⚪log_workout(type, duration_minutes, calories, active_calories, avg_hr, ...)

Log a workout session with type, duration, calories, and heart rate.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "type": {
      "description": "Workout type",
      "enum": [
        "push",
        "pull",
        "legs",
        "upper",
        "lower",
        "full_body",
        "zone2",
        "cardio",
        "other"
      ],
      "type": "string"
    },
    "duration_minutes": {
      "description": "Duration in minutes",
      "type": "integer"
    },
    "calories": {
      "description": "Total calories burned",
      "type": "integer"
    },
    "active_calories": {
      "description": "Active calories (Apple Watch)",
      "type": "integer"
    },
    "avg_hr": {
      "description": "Average heart rate",
      "type": "integer"
    },
    "max_hr": {
      "description": "Max heart rate",
      "type": "integer"
    },
    "min_hr": {
      "description": "Min heart rate",
      "type": "integer"
    },
    "started_at": {
      "description": "Session start (Y-m-d H:i:s)",
      "type": "string"
    },
    "ended_at": {
      "description": "Session end (Y-m-d H:i:s)",
      "type": "string"
    },
    "location": {
      "description": "Where the session happened",
      "type": "string"
    },
    "workout_date": {
      "description": "Workout date (Y-m-d, defaults to today)",
      "type": "string"
    },
    "notes": {
      "description": "Notes",
      "type": "string"
    }
  },
  "required": [
    "type"
  ]
}
🟡log_workout_sets(sets_text, workout_id, workout_date, type, duration_minutes, ...)

Add exercises and sets to a workout. Accepts gym shorthand ("lateral raise 5kg 4x12", "2min rowing machine") and creates the workout for that date if none exists.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "sets_text": {
      "description": "One movement per line. Understands \"4x12\", \"40kg\", \"2dk\"/\"90sn\", \"3 set\". Example: \"lateral raise 5kg 4x12\\nincline bench press machine 40kg 4x8\"",
      "type": "string"
    },
    "workout_id": {
      "description": "Add to this session. Needed when the date holds more than one session of the same type.",
      "type": "integer"
    },
    "workout_date": {
      "description": "Date (Y-m-d, defaults to today)",
      "type": "string"
    },
    "type": {
      "description": "Workout type. Sets go to the session of this type on that date; a new session is created when there is none.",
      "enum": [
        "push",
        "pull",
        "legs",
        "upper",
        "lower",
        "full_body",
        "zone2",
        "cardio",
        "other"
      ],
      "type": "string"
    },
    "duration_minutes": {
      "description": "Session duration in minutes",
      "type": "integer"
    },
    "notes": {
      "description": "Notes",
      "type": "string"
    },
    "allow_duplicates": {
      "description": "Write blocks that already exist on that date with the same load and set count. Off by default — a repeated call is far more often a re-send than a second round.",
      "type": "boolean"
    }
  },
  "required": [
    "sets_text"
  ]
}
⚪log_body_measurement(weight, body_fat, waist, waist_navel, chest, ...)

Log body measurements: weight, body fat %, waist, chest, etc.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "weight": {
      "description": "Weight in kg",
      "type": "number"
    },
    "body_fat": {
      "description": "Body fat percentage",
      "type": "number"
    },
    "waist": {
      "description": "Natural waist (narrowest point) in cm — the primary trend metric",
      "type": "number"
    },
    "waist_navel": {
      "description": "Waist at the navel in cm — secondary",
      "type": "number"
    },
    "chest": {
      "description": "Chest circumference in cm",
      "type": "number"
    },
    "hips": {
      "description": "Hips circumference in cm",
      "type": "number"
    },
    "left_arm": {
      "description": "Left arm circumference in cm",
      "type": "number"
    },
    "right_arm": {
      "description": "Right arm circumference in cm",
      "type": "number"
    },
    "shoulders": {
      "description": "Shoulders circumference in cm",
      "type": "number"
    },
    "neck": {
      "description": "Neck circumference in cm",
      "type": "number"
    },
    "left_quad": {
      "description": "Left quad circumference in cm",
      "type": "number"
    },
    "right_quad": {
      "description": "Right quad circumference in cm",
      "type": "number"
    },
    "vo2max": {
      "description": "VO2 max",
      "type": "number"
    },
    "measured_at": {
      "description": "Measurement date (Y-m-d, defaults to now)",
      "type": "string"
    },
    "notes": {
      "description": "Notes",
      "type": "string"
    }
  }
}
⚪log_nutrition(log_date, calories, protein_g, carbs_g, fat_g, ...)

Log a day of nutrition — day totals plus optional food-by-food line items. Re-sending the same date replaces that day.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "log_date": {
      "description": "Date (Y-m-d)",
      "type": "string"
    },
    "calories": {
      "description": "Total calories for the day",
      "type": "integer"
    },
    "protein_g": {
      "description": "Total protein in grams",
      "type": "integer"
    },
    "carbs_g": {
      "description": "Total carbs in grams",
      "type": "integer"
    },
    "fat_g": {
      "description": "Total fat in grams",
      "type": "integer"
    },
    "fiber_g": {
      "description": "Total fiber in grams",
      "type": "integer"
    },
    "sugar_g": {
      "description": "Total sugar in grams",
      "type": "integer"
    },
    "sodium_mg": {
      "description": "Total sodium in mg",
      "type": "integer"
    },
    "is_complete": {
      "description": "False when the day was only partially logged — excluded from averages",
      "type": "boolean"
    },
    "notes": {
      "description": "Notes",
      "type": "string"
    },
    "entries": {
      "description": "Food-by-food line items. Each: {name, calories, protein_g, carbs_g, fat_g, fiber_g, sugar_g, sodium_mg, consumed_at \"HH:MM\"}",
      "items": {
        "type": "object"
      },
      "type": "array"
    }
  },
  "required": [
    "log_date"
  ]
}
🟢list_exercises(search, muscle_group, trained_only)

The movement catalog: canonical names, muscle groups and the aliases that resolve to them. Check here before logging sets — using the catalog name keeps one lift on one row instead of splitting its history across near-duplicates.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "search": {
      "description": "Match against names and aliases",
      "type": "string"
    },
    "muscle_group": {
      "description": "chest, back, shoulders, biceps, triceps, legs, core, cardio",
      "type": "string"
    },
    "trained_only": {
      "description": "Only movements this user has actually logged sets for",
      "type": "boolean"
    }
  }
}
🟢get_fitness_summary(nutrition_days, training_days, include_training_grid)

Current fitness state: weight trend vs target rate, waist thresholds, nutrition averages vs macro targets, training frequency and volume, plus which days are missing data.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "nutrition_days": {
      "description": "Nutrition averaging window in days (default 7)",
      "type": "integer"
    },
    "training_days": {
      "description": "Training window in days (default 28)",
      "type": "integer"
    },
    "include_training_grid": {
      "description": "Add the movement-by-session grid — what was lifted last time and whether it went up. Use it before advising on a session.",
      "type": "boolean"
    }
  }
}
🔴delete_workout(workout_date, workout_id, type)

Delete a whole training session and every set in it. To remove only part of a session use delete_workout_sets.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "workout_date": {
      "description": "Session date (Y-m-d, defaults to today)",
      "type": "string"
    },
    "workout_id": {
      "description": "Session id — required only when a date carries more than one session",
      "type": "integer"
    },
    "type": {
      "description": "Narrow to one session type on that date",
      "enum": [
        "push",
        "pull",
        "legs",
        "upper",
        "lower",
        "full_body",
        "zone2",
        "cardio",
        "other"
      ],
      "type": "string"
    }
  }
}
🔴delete_workout_sets(workout_date, workout_id, exercise, duplicates_only)

Remove sets from a session without touching the session itself. Use duplicates_only to undo a log that was sent twice, or exercise to drop one movement that was entered by mistake.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "workout_date": {
      "description": "Session date (Y-m-d, defaults to today)",
      "type": "string"
    },
    "workout_id": {
      "description": "Session id — required only when a date carries more than one session",
      "type": "integer"
    },
    "exercise": {
      "description": "Remove every set of this movement from the session, e.g. \"leg press\"",
      "type": "string"
    },
    "duplicates_only": {
      "description": "Remove blocks that repeat an identical earlier block in the same session — the fix for a log sent twice. Keeps the first occurrence.",
      "type": "boolean"
    }
  }
}
🔴delete_body_measurement(measurement_id, measured_at)

Delete a body measurement that was logged by mistake. Two entries on one date drag the weight trend and the waist rule, so a bad one is worth removing rather than logging over.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "measurement_id": {
      "description": "Id of the measurement to delete",
      "type": "integer"
    },
    "measured_at": {
      "description": "Delete every measurement on this date (Y-m-d)",
      "type": "string"
    }
  }
}
🟢list_wishlist(status)

List wishlist items with price, priority, and purchase status.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "description": "Filter by status (default: pending)",
      "enum": [
        "pending",
        "purchased",
        "cancelled"
      ],
      "type": "string"
    }
  }
}
🟡add_wishlist_item(name, description, url, price_min, price_max, ...)

Add an item to the wishlist with price range, priority, and optional URL.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Item name",
      "type": "string"
    },
    "description": {
      "description": "Description",
      "type": "string"
    },
    "url": {
      "description": "Product URL",
      "type": "string"
    },
    "price_min": {
      "description": "Minimum price",
      "type": "number"
    },
    "price_max": {
      "description": "Maximum price",
      "type": "number"
    },
    "currency": {
      "description": "3-letter currency code, e.g. GBP. Defaults to the user's currency",
      "type": "string"
    },
    "priority": {
      "description": "Priority",
      "enum": [
        "high",
        "medium",
        "low",
        "waiting"
      ],
      "type": "string"
    },
    "category": {
      "description": "Category",
      "type": "string"
    },
    "notes": {
      "description": "Notes",
      "type": "string"
    }
  },
  "required": [
    "name"
  ]
}
🔴update_wishlist_item(item_id, status, purchased_at, name, priority, ...)

Update a wishlist item — mark it purchased or cancelled, change priority, price or notes. Purchased and cancelled items drop out of the active list.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "item_id": {
      "description": "Wishlist item ID",
      "type": "integer"
    },
    "status": {
      "description": "pending = still wanted · purchased = bought · cancelled = no longer wanted",
      "enum": [
        "pending",
        "purchased",
        "cancelled"
      ],
      "type": "string"
    },
    "purchased_at": {
      "description": "Purchase date (Y-m-d). Defaults to today when status becomes purchased.",
      "type": "string"
    },
    "name": {
      "description": "New name",
      "type": "string"
    },
    "priority": {
      "description": "high | medium | low | waiting (waiting = wanted but gated on a trigger)",
      "enum": [
        "high",
        "medium",
        "low",
        "waiting"
      ],
      "type": "string"
    },
    "category": {
      "description": "Category",
      "type": "string"
    },
    "price_min": {
      "description": "Lower price estimate",
      "type": "number"
    },
    "price_max": {
      "description": "Upper price estimate",
      "type": "number"
    },
    "url": {
      "description": "Product URL (http or https)",
      "type": "string"
    },
    "currency": {
      "description": "3-letter currency code of the prices, e.g. GBP",
      "type": "string"
    },
    "notes": {
      "description": "Notes — reasoning, alternatives considered, purchase trigger",
      "type": "string"
    }
  },
  "required": [
    "item_id"
  ]
}
🟢list_contacts(relationship, needs_contact, favorites_only)

List contacts. Filter by relationship type or get contacts needing reach-out.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "relationship": {
      "description": "Filter by type",
      "enum": [
        "family",
        "friend",
        "work",
        "mentor",
        "other"
      ],
      "type": "string"
    },
    "needs_contact": {
      "description": "Only contacts overdue for check-in",
      "type": "boolean"
    },
    "favorites_only": {
      "description": "Only favorite contacts",
      "type": "boolean"
    }
  }
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet50 Tools