{"server":"app.framezone/framezone","count":62,"tools":[{"name":"add_bookmark","title":"Add bookmark","description":"Save a bookmark URL with optional title, description, category, and tags.","input_schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Bookmark URL"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags"},"title":{"type":"string","description":"Title (auto-detected from domain if omitted)"},"category":{"type":"string","description":"Category"},"description":{"type":"string","description":"Description"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"add_trade","title":"Add trade","description":"Record a buy or sell trade for a portfolio holding. Updates shares and average cost.","input_schema":{"type":"object","required":["holding_id","type","shares","price_per_share"],"properties":{"type":{"enum":["buy","sell"],"type":"string","description":"Trade type"},"notes":{"type":"string","description":"Trade notes"},"shares":{"type":"number","description":"Number of shares"},"traded_at":{"type":"string","description":"Trade date (Y-m-d, defaults to now)"},"holding_id":{"type":"integer","description":"Holding ID"},"price_per_share":{"type":"number","description":"Price per share"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"add_transaction","title":"Add transaction","description":"Add a financial transaction (income or expense) to an account with optional category.","input_schema":{"type":"object","required":["amount","type","description"],"properties":{"type":{"enum":["income","expense","transfer"],"type":"string","description":"Transaction type"},"notes":{"type":"string","description":"Additional notes"},"amount":{"type":"number","description":"Transaction amount (positive number)"},"account_id":{"type":"integer","description":"Account ID (see list_accounts). Defaults to the user's main account."},"category_id":{"type":"integer","description":"Category ID"},"description":{"type":"string","description":"What is this transaction for"},"transaction_date":{"type":"string","description":"Date (Y-m-d, defaults to today)"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"add_user_memory","title":"Add user memory","description":"Add a personal fact to the user's AI memory. Keep it concise (1-2 sentences). Max 50 memories per user.","input_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"string","description":"The memory content (max 500 chars, 1-2 sentences)"},"category":{"enum":["personal","career","lifestyle","values","finance","random"],"type":"string","description":"Memory category"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"add_wishlist_item","title":"Add wishlist item","description":"Add an item to the wishlist with price range, priority, and optional URL.","input_schema":{"type":"object","required":["name"],"properties":{"url":{"type":"string","description":"Product URL"},"name":{"type":"string","description":"Item name"},"notes":{"type":"string","description":"Notes"},"category":{"type":"string","description":"Category"},"currency":{"type":"string","description":"3-letter currency code, e.g. GBP. Defaults to the user's currency"},"priority":{"enum":["high","medium","low","waiting"],"type":"string","description":"Priority"},"price_max":{"type":"number","description":"Maximum price"},"price_min":{"type":"number","description":"Minimum price"},"description":{"type":"string","description":"Description"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"compare_analytics_periods","title":"Compare analytics periods","description":"Compare two date periods for a project. Shows SC and GA metrics for both periods with percentage changes. Use for week-over-week, month-over-month comparisons, measuring campaign impact, tracking growth/decline.","input_schema":{"type":"object","required":["project_id"],"properties":{"project_id":{"type":"integer","description":"Project ID (required)"},"current_end":{"type":"string","description":"Current period end (Y-m-d). Default: today"},"previous_end":{"type":"string","description":"Previous period end (Y-m-d). Default: 7 days ago"},"current_start":{"type":"string","description":"Current period start (Y-m-d). Default: 7 days ago"},"previous_start":{"type":"string","description":"Previous period start (Y-m-d). Default: 14 days ago"}}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"complete_task","title":"Complete task","description":"Toggle a task between completed and pending. Cascades to subtasks and handles recurrence.","input_schema":{"type":"object","required":["task_id"],"properties":{"task_id":{"type":"integer","description":"ID of the task to complete/uncomplete"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"create_book","title":"Create book","description":"Add a book to your library. Set status to \"reading\", \"wishlist\", \"to_check\", etc.","input_schema":{"type":"object","required":["title"],"properties":{"tags":{"type":"array","items":{"type":"string"},"description":"Tags"},"notes":{"type":"string","description":"Personal notes about the book"},"pages":{"type":"integer","description":"Total pages"},"title":{"type":"string","description":"Book title"},"author":{"type":"string","description":"Author name"},"rating":{"enum":[1,2,3,4,5],"type":"integer","description":"Rating 1-5"},"status":{"enum":["wishlist","reading","to_check","completed","abandoned"],"type":"string","description":"Reading status"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"create_contact","title":"Create contact","description":"Create a new contact (personal CRM). Track birthdays, relationship types, and contact frequency reminders.","input_schema":{"type":"object","required":["first_name"],"properties":{"city":{"type":"string","description":"City/location"},"tags":{"type":"array","description":"Tags array, e.g. [\"investor\", \"design\"]"},"email":{"type":"string","description":"Email address"},"notes":{"type":"string","description":"Notes about this person"},"phone":{"type":"string","description":"Phone number"},"company":{"type":"string","description":"Company/organization"},"birthday":{"type":"string","description":"Birthday (Y-m-d). Year unknown: use 1604 as the year"},"last_name":{"type":"string","description":"Last name"},"first_name":{"type":"string","description":"First name"},"how_we_met":{"type":"string","description":"How you met this person"},"project_id":{"type":"integer","description":"Link to project by ID"},"relationship":{"enum":["family","friend","work","mentor","other"],"type":"string","description":"Relationship type"},"contact_frequency_days":{"type":"integer","description":"Remind to contact every N days"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"create_goal","title":"Create goal","description":"Create a new goal. Types: milestone (checklist), numeric (value tracking), habit, vision.","input_schema":{"type":"object","required":["title"],"properties":{"unit":{"type":"string","description":"Unit of measurement (for numeric goals)"},"title":{"type":"string","description":"Goal title"},"category":{"type":"string","description":"Category (e.g., Health, Career, Finance)"},"priority":{"enum":[1,2,3],"type":"integer","description":"Priority: 1=high, 2=medium, 3=low"},"goal_type":{"enum":["milestone","numeric","habit","vision"],"type":"string","description":"Type"},"milestones":{"type":"array","description":"Milestones array [{title: \"...\"}] (for milestone goals)"},"description":{"type":"string","description":"Goal description"},"start_value":{"type":"number","description":"Starting value; defaults to current_value. Lets goals that go down (90 -> 80 kg) show progress"},"target_date":{"type":"string","description":"Target date (Y-m-d)"},"current_value":{"type":"number","description":"Current value (numeric goals, >= 0)"},"target_value_num":{"type":"number","description":"Target value (for numeric goals)"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"create_habit","title":"Create habit","description":"Create a new habit. Tracking types: check (daily toggle), count (hit a number), duration (minutes), times_per_week (weekly frequency).","input_schema":{"type":"object","required":["name"],"properties":{"icon":{"type":"string","description":"Lucide icon name (lowercase, dashes), e.g. book-open"},"name":{"type":"string","description":"Habit name"},"unit":{"type":"string","description":"Unit label (e.g., \"pages\", \"glasses\")"},"color":{"type":"string","description":"Color as #rrggbb, e.g. #10AC84"},"time_of_day":{"enum":["morning","afternoon","evening"],"type":"string","description":"When during the day"},"target_value":{"type":"integer","description":"Target count value (for count type)"},"tracking_type":{"enum":["check","count","duration","times_per_week"],"type":"string","description":"Tracking type (default: check)"},"times_per_week":{"type":"integer","description":"Times per week target (for times_per_week type, 1-7)"},"target_duration":{"type":"integer","description":"Target duration in minutes (for duration type, 5-480)"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"create_note","title":"Create note","description":"Create a new note with title, body text, and optional tags.","input_schema":{"type":"object","required":["title","body"],"properties":{"body":{"type":"string","description":"Note body (plain text)"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags array"},"title":{"type":"string","description":"Note title"},"is_pinned":{"type":"boolean","description":"Pin this note"},"project_id":{"type":"integer","description":"Link to project by ID"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"create_project","title":"Create project","description":"Create a new project with tier (A/B/C), optional goal link, and target date.","input_schema":{"type":"object","required":["name"],"properties":{"url":{"type":"string","description":"Project URL"},"icon":{"type":"string","description":"Lucide icon name"},"name":{"type":"string","description":"Project name"},"tier":{"enum":["A","B","C"],"type":"string","description":"Priority tier"},"color":{"type":"string","description":"Color hex code (e.g., #3B82F6)"},"status":{"enum":["active","paused"],"type":"string","description":"Initial status"},"goal_id":{"type":"integer","description":"Link to a goal by ID"},"description":{"type":"string","description":"Project description"},"target_date":{"type":"string","description":"Target completion date (Y-m-d)"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"create_quote","title":"Create quote","description":"Save a quote with author and optional book link.","input_schema":{"type":"object","required":["body"],"properties":{"body":{"type":"string","description":"The quote text"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags"},"author":{"type":"string","description":"Who said/wrote it"},"source":{"type":"string","description":"Source (book title, speech, etc.)"},"book_id":{"type":"integer","description":"Link to a book by ID"},"is_favorite":{"type":"boolean","description":"Mark as favorite"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"create_subscription","title":"Create subscription","description":"Add a recurring subscription (monthly, yearly, or weekly).","input_schema":{"type":"object","required":["name","amount"],"properties":{"url":{"type":"string","description":"Service URL (http or https)"},"name":{"type":"string","description":"Subscription name (e.g., Netflix, Spotify)"},"notes":{"type":"string","description":"Notes"},"amount":{"type":"number","description":"Amount per billing period"},"currency":{"type":"string","description":"ISO 4217 currency code, e.g. USD, EUR, GBP. Defaults to the user's currency."},"frequency":{"enum":["monthly","quarterly","yearly","weekly"],"type":"string","description":"Billing frequency"},"category_id":{"type":"integer","description":"Category ID"},"next_billing_date":{"type":"string","description":"Next billing date (Y-m-d)"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"create_task","title":"Create task","description":"Create a new task with optional project, priority, due date, and recurrence.","input_schema":{"type":"object","required":["title"],"properties":{"title":{"type":"string","description":"Task title"},"status":{"enum":["pending","in_progress"],"type":"string","description":"Initial status"},"is_top3":{"type":"boolean","description":"Mark as Top 3 focus task (max 3 allowed)"},"due_date":{"type":"string","description":"Due date (Y-m-d format)"},"priority":{"enum":[1,2,3],"type":"integer","description":"Priority: 1=high, 2=medium, 3=low"},"project_id":{"type":"integer","description":"Assign to project by ID"},"recurrence":{"enum":["daily","weekly","monthly"],"type":"string","description":"Recurrence pattern"},"description":{"type":"string","description":"Task description"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"delete_body_measurement","title":"Delete body measurement","description":"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.","input_schema":{"type":"object","properties":{"measured_at":{"type":"string","description":"Delete every measurement on this date (Y-m-d)"},"measurement_id":{"type":"integer","description":"Id of the measurement to delete"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":true},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"delete_book","title":"Delete book","description":"Delete a book from the library.","input_schema":{"type":"object","required":["book_id"],"properties":{"book_id":{"type":"integer","description":"ID of the book to delete"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":true},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"delete_bookmark","title":"Delete bookmark","description":"Delete a bookmark permanently.","input_schema":{"type":"object","required":["bookmark_id"],"properties":{"bookmark_id":{"type":"integer","description":"ID of the bookmark to delete"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":true},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"delete_note","title":"Delete note","description":"Soft-delete a note.","input_schema":{"type":"object","required":["note_id"],"properties":{"note_id":{"type":"integer","description":"ID of the note to delete"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":true},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"delete_task","title":"Delete task","description":"Soft-delete a task (can be restored later).","input_schema":{"type":"object","required":["task_id"],"properties":{"task_id":{"type":"integer","description":"ID of the task to delete"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":true},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"delete_user_memory","title":"Delete user memory","description":"Delete a specific AI memory entry by ID.","input_schema":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","description":"ID of the memory to delete"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":true},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"delete_workout","title":"Delete workout","description":"Delete a whole training session and every set in it. To remove only part of a session use delete_workout_sets.","input_schema":{"type":"object","properties":{"type":{"enum":["push","pull","legs","upper","lower","full_body","zone2","cardio","other"],"type":"string","description":"Narrow to one session type on that date"},"workout_id":{"type":"integer","description":"Session id — required only when a date carries more than one session"},"workout_date":{"type":"string","description":"Session date (Y-m-d, defaults to today)"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":true},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"delete_workout_sets","title":"Delete workout sets","description":"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.","input_schema":{"type":"object","properties":{"exercise":{"type":"string","description":"Remove every set of this movement from the session, e.g. \"leg press\""},"workout_id":{"type":"integer","description":"Session id — required only when a date carries more than one session"},"workout_date":{"type":"string","description":"Session date (Y-m-d, defaults to today)"},"duplicates_only":{"type":"boolean","description":"Remove blocks that repeat an identical earlier block in the same session — the fix for a log sent twice. Keeps the first occurrence."}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":true},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"get_daily_entry","title":"Get daily entry","description":"Get the daily journal entry for a date: mood, energy, focus, morning/evening notes.","input_schema":{"type":"object","properties":{"date":{"type":"string","description":"Date to get (Y-m-d, defaults to today)"}}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"get_fitness_summary","title":"Get fitness summary","description":"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.","input_schema":{"type":"object","properties":{"training_days":{"type":"integer","description":"Training window in days (default 28)"},"nutrition_days":{"type":"integer","description":"Nutrition averaging window in days (default 7)"},"include_training_grid":{"type":"boolean","description":"Add the movement-by-session grid — what was lifted last time and whether it went up. Use it before advising on a session."}}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"get_focus_summary","title":"Get focus summary","description":"Get focus time summary: total minutes, sessions, and breakdown by project for a date range.","input_schema":{"type":"object","properties":{"to":{"type":"string","description":"End date (Y-m-d, defaults to today)"},"from":{"type":"string","description":"Start date (Y-m-d, defaults to start of current week)"}}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"get_project_analytics","title":"Get project analytics","description":"Get daily Search Console + GA4 metrics for a project. Returns clicks, impressions, CTR, position, sessions, users, pageviews, bounce rate per day. Use for trend analysis, performance reports, comparing periods.","input_schema":{"type":"object","required":["project_id"],"properties":{"end_date":{"type":"string","description":"End date (Y-m-d). Default: today"},"project_id":{"type":"integer","description":"Project ID (required)"},"start_date":{"type":"string","description":"Start date (Y-m-d). Default: 30 days ago"}}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"get_top_pages","title":"Get top pages","description":"Get top performing pages for a project from Search Console data. Returns page URL, total clicks, impressions, avg CTR, avg position. Use for content performance analysis, finding underperforming pages, identifying top content.","input_schema":{"type":"object","required":["project_id"],"properties":{"limit":{"type":"integer","description":"Max results (default 100, max 500)"},"search":{"type":"string","description":"Filter pages containing this URL path"},"sort_by":{"enum":["clicks","impressions","ctr","position"],"type":"string","description":"Sort by metric"},"end_date":{"type":"string","description":"End date (Y-m-d). Default: today"},"project_id":{"type":"integer","description":"Project ID (required)"},"start_date":{"type":"string","description":"Start date (Y-m-d). Default: 30 days ago"}}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"get_top_queries","title":"Get top queries","description":"Get top search queries for a project from Search Console data. Returns query text, total clicks, impressions, avg CTR, avg position. Use for keyword analysis, content strategy, SEO optimization, finding ranking opportunities.","input_schema":{"type":"object","required":["project_id"],"properties":{"limit":{"type":"integer","description":"Max results (default 100, max 500)"},"search":{"type":"string","description":"Filter queries containing this text"},"sort_by":{"enum":["clicks","impressions","ctr","position"],"type":"string","description":"Sort by metric"},"end_date":{"type":"string","description":"End date (Y-m-d). Default: today"},"min_clicks":{"type":"integer","description":"Minimum clicks filter"},"project_id":{"type":"integer","description":"Project ID (required)"},"start_date":{"type":"string","description":"Start date (Y-m-d). Default: 30 days ago"},"min_impressions":{"type":"integer","description":"Minimum impressions filter"}}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"get_user_memories","title":"Get user memories","description":"Get the user's AI memory entries — personal facts, preferences, and context that personalize AI responses.","input_schema":{"type":"object","properties":{"category":{"enum":["personal","career","lifestyle","values","finance","random"],"type":"string","description":"Filter by category"}}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"list_accounts","title":"List accounts","description":"List financial accounts with balances and types.","input_schema":{"type":"object","properties":{}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"list_achievements","title":"List achievements","description":"List all achievements: unlocked and locked, with descriptions and unlock dates.","input_schema":{"type":"object","properties":{}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"list_books","title":"List books","description":"List books with optional status filter. Returns title, author, status, progress, and rating.","input_schema":{"type":"object","properties":{"status":{"enum":["wishlist","reading","to_check","completed","abandoned"],"type":"string","description":"Filter by status"}}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"list_categories","title":"List categories","description":"List transaction categories with type (income/expense) and monthly budget.","input_schema":{"type":"object","properties":{"type":{"enum":["income","expense","both"],"type":"string","description":"Filter by type"}}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"list_contacts","title":"List contacts","description":"List contacts. Filter by relationship type or get contacts needing reach-out.","input_schema":{"type":"object","properties":{"relationship":{"enum":["family","friend","work","mentor","other"],"type":"string","description":"Filter by type"},"needs_contact":{"type":"boolean","description":"Only contacts overdue for check-in"},"favorites_only":{"type":"boolean","description":"Only favorite contacts"}}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"list_exercises","title":"List exercises","description":"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.","input_schema":{"type":"object","properties":{"search":{"type":"string","description":"Match against names and aliases"},"muscle_group":{"type":"string","description":"chest, back, shoulders, biceps, triceps, legs, core, cardio"},"trained_only":{"type":"boolean","description":"Only movements this user has actually logged sets for"}}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"list_goals","title":"List goals","description":"List goals with progress, type, and status. Supports filtering by status or category.","input_schema":{"type":"object","properties":{"status":{"enum":["active","paused","completed","abandoned"],"type":"string","description":"Filter by status"},"category":{"type":"string","description":"Filter by category"}}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"list_habits","title":"List habits","description":"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).","input_schema":{"type":"object","properties":{"date":{"type":"string","description":"Date to check (Y-m-d, defaults to today)"}}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"list_holdings","title":"List holdings","description":"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.","input_schema":{"type":"object","properties":{}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"list_notes","title":"List notes","description":"List notes, optionally filtered by search query or tag. Returns title, tags, and truncated body.","input_schema":{"type":"object","properties":{"tag":{"type":"string","description":"Filter by tag name"},"limit":{"type":"integer","description":"Max results (default: 20, max: 50)"},"search":{"type":"string","description":"Search query (matches title and body)"}}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"list_projects","title":"List projects","description":"List projects with task counts, tier, status, and linked goal.","input_schema":{"type":"object","properties":{"tier":{"enum":["A","B","C"],"type":"string","description":"Filter by tier"},"status":{"enum":["active","paused","completed","archived"],"type":"string","description":"Filter by status. Archived projects are excluded unless you ask for them explicitly."},"include_archived":{"type":"boolean","description":"Include archived projects in an unfiltered list (default: false)"}}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"list_quotes","title":"List quotes","description":"List saved quotes, optionally filtered by book or favorites only.","input_schema":{"type":"object","properties":{"book_id":{"type":"integer","description":"Filter by book ID"},"favorites_only":{"type":"boolean","description":"Only show favorites"}}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"list_subscriptions","title":"List subscriptions","description":"List active subscriptions with amounts, frequency, and next billing date.","input_schema":{"type":"object","properties":{}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"list_tasks","title":"List tasks","description":"List tasks, optionally filtered by status, priority, project, or top3 flag.","input_schema":{"type":"object","properties":{"status":{"enum":["pending","in_progress","completed"],"type":"string","description":"Filter by status"},"is_top3":{"type":"boolean","description":"Only show Top 3 focus tasks"},"priority":{"enum":[1,2,3],"type":"integer","description":"Filter by priority: 1=high, 2=medium, 3=low"},"project_id":{"type":"integer","description":"Filter by project ID"},"include_archived":{"type":"boolean","description":"Include archived tasks (default: false)"}}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"list_wishlist","title":"List wishlist","description":"List wishlist items with price, priority, and purchase status.","input_schema":{"type":"object","properties":{"status":{"enum":["pending","purchased","cancelled"],"type":"string","description":"Filter by status (default: pending)"}}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"log_body_measurement","title":"Log body measurement","description":"Log body measurements: weight, body fat %, waist, chest, etc.","input_schema":{"type":"object","properties":{"hips":{"type":"number","description":"Hips circumference in cm"},"neck":{"type":"number","description":"Neck circumference in cm"},"chest":{"type":"number","description":"Chest circumference in cm"},"notes":{"type":"string","description":"Notes"},"waist":{"type":"number","description":"Natural waist (narrowest point) in cm — the primary trend metric"},"vo2max":{"type":"number","description":"VO2 max"},"weight":{"type":"number","description":"Weight in kg"},"body_fat":{"type":"number","description":"Body fat percentage"},"left_arm":{"type":"number","description":"Left arm circumference in cm"},"left_quad":{"type":"number","description":"Left quad circumference in cm"},"right_arm":{"type":"number","description":"Right arm circumference in cm"},"shoulders":{"type":"number","description":"Shoulders circumference in cm"},"right_quad":{"type":"number","description":"Right quad circumference in cm"},"measured_at":{"type":"string","description":"Measurement date (Y-m-d, defaults to now)"},"waist_navel":{"type":"number","description":"Waist at the navel in cm — secondary"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"log_focus_session","title":"Log focus session","description":"Log a completed focus/pomodoro session with duration, project, and task link.","input_schema":{"type":"object","required":["duration_minutes"],"properties":{"type":{"enum":["pomodoro","timer"],"type":"string","description":"Session type"},"label":{"type":"string","description":"Session label/name"},"task_id":{"type":"integer","description":"Link to task"},"project_id":{"type":"integer","description":"Link to project"},"started_at":{"type":"string","description":"When it started (Y-m-d H:i, defaults to now minus duration)"},"duration_minutes":{"type":"integer","description":"Session duration in minutes"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"log_habit","title":"Log habit","description":"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.","input_schema":{"type":"object","required":["habit_id"],"properties":{"date":{"type":"string","description":"Date to log (Y-m-d, defaults to today, cannot be in the future)"},"value":{"type":"number","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."},"habit_id":{"type":"integer","description":"ID of the habit"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"log_nutrition","title":"Log nutrition","description":"Log a day of nutrition — day totals plus optional food-by-food line items. Re-sending the same date replaces that day.","input_schema":{"type":"object","required":["log_date"],"properties":{"fat_g":{"type":"integer","description":"Total fat in grams"},"notes":{"type":"string","description":"Notes"},"carbs_g":{"type":"integer","description":"Total carbs in grams"},"entries":{"type":"array","items":{"type":"object"},"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\"}"},"fiber_g":{"type":"integer","description":"Total fiber in grams"},"sugar_g":{"type":"integer","description":"Total sugar in grams"},"calories":{"type":"integer","description":"Total calories for the day"},"log_date":{"type":"string","description":"Date (Y-m-d)"},"protein_g":{"type":"integer","description":"Total protein in grams"},"sodium_mg":{"type":"integer","description":"Total sodium in mg"},"is_complete":{"type":"boolean","description":"False when the day was only partially logged — excluded from averages"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"log_workout","title":"Log workout","description":"Log a workout session with type, duration, calories, and heart rate.","input_schema":{"type":"object","required":["type"],"properties":{"type":{"enum":["push","pull","legs","upper","lower","full_body","zone2","cardio","other"],"type":"string","description":"Workout type"},"notes":{"type":"string","description":"Notes"},"avg_hr":{"type":"integer","description":"Average heart rate"},"max_hr":{"type":"integer","description":"Max heart rate"},"min_hr":{"type":"integer","description":"Min heart rate"},"calories":{"type":"integer","description":"Total calories burned"},"ended_at":{"type":"string","description":"Session end (Y-m-d H:i:s)"},"location":{"type":"string","description":"Where the session happened"},"started_at":{"type":"string","description":"Session start (Y-m-d H:i:s)"},"workout_date":{"type":"string","description":"Workout date (Y-m-d, defaults to today)"},"active_calories":{"type":"integer","description":"Active calories (Apple Watch)"},"duration_minutes":{"type":"integer","description":"Duration in minutes"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"log_workout_sets","title":"Log workout sets","description":"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.","input_schema":{"type":"object","required":["sets_text"],"properties":{"type":{"enum":["push","pull","legs","upper","lower","full_body","zone2","cardio","other"],"type":"string","description":"Workout type. Sets go to the session of this type on that date; a new session is created when there is none."},"notes":{"type":"string","description":"Notes"},"sets_text":{"type":"string","description":"One movement per line. Understands \"4x12\", \"40kg\", \"2dk\"/\"90sn\", \"3 set\". Example: \"lateral raise 5kg 4x12\\nincline bench press machine 40kg 4x8\""},"workout_id":{"type":"integer","description":"Add to this session. Needed when the date holds more than one session of the same type."},"workout_date":{"type":"string","description":"Date (Y-m-d, defaults to today)"},"allow_duplicates":{"type":"boolean","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."},"duration_minutes":{"type":"integer","description":"Session duration in minutes"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"search","title":"Search","description":"Search the user's Framezone data by keyword: tasks, projects, notes, bookmarks, books and goals.","input_schema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","minLength":2,"description":"Search query (min 2 characters)"}}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"update_book","title":"Update book","description":"Update a book: change status, rating, notes, or update reading progress (current page).","input_schema":{"type":"object","required":["book_id"],"properties":{"tags":{"type":"array","items":{"type":"string"},"description":"Tags"},"notes":{"type":"string","description":"Personal notes"},"title":{"type":"string","description":"New title"},"author":{"type":"string","description":"New author"},"rating":{"enum":[1,2,3,4,5],"type":"integer","description":"Rating 1-5"},"status":{"enum":["wishlist","reading","to_check","completed","abandoned"],"type":"string","description":"New status"},"book_id":{"type":"integer","description":"Book ID"},"current_page":{"type":"integer","description":"Current page (updates reading progress)"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"update_contact","title":"Update contact","description":"Update a contact. Use mark_contacted=true to record a check-in with today's date.","input_schema":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","description":"Contact ID"},"name":{"type":"string","description":"Full name; split into first and last name at the first space"},"email":{"type":"string","description":"Email"},"notes":{"type":"string","description":"Notes"},"phone":{"type":"string","description":"Phone"},"company":{"type":"string","description":"Company"},"birthday":{"type":"string","description":"Birthday (Y-m-d). Year unknown: use 1604 as the year"},"last_name":{"type":"string","description":"Last name (empty string clears it)"},"first_name":{"type":"string","description":"First name"},"is_favorite":{"type":"boolean","description":"Favorite status"},"relationship":{"enum":["family","friend","work","mentor","other"],"type":"string","description":"Type"},"mark_contacted":{"type":"boolean","description":"Mark as contacted today"},"contact_frequency_days":{"type":"integer","description":"Contact reminder interval in days"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"update_daily_entry","title":"Update daily entry","description":"Update the daily journal: set mood (1-5), energy (1-5), focus text, morning/evening notes.","input_schema":{"type":"object","properties":{"date":{"type":"string","description":"Date to update (Y-m-d, defaults to today)"},"mood":{"enum":[1,2,3,4,5],"type":"integer","description":"Mood rating 1-5"},"energy":{"enum":[1,2,3,4,5],"type":"integer","description":"Energy rating 1-5"},"focus_text":{"type":"string","description":"Today's focus/intention text (max 255 characters)"},"evening_note":{"type":"string","description":"Evening reflection note"},"morning_note":{"type":"string","description":"Morning journal note"},"focus_completed":{"type":"boolean","description":"Whether the focus was achieved"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"update_goal","title":"Update goal","description":"Update a goal: change status, progress, toggle milestones, or add a progress note.","input_schema":{"type":"object","required":["goal_id"],"properties":{"note":{"type":"string","description":"Progress update note (saved in goal timeline)"},"title":{"type":"string","description":"New title"},"status":{"enum":["active","paused","completed","abandoned"],"type":"string","description":"New status"},"goal_id":{"type":"integer","description":"Goal ID"},"priority":{"enum":[1,2,3],"type":"integer","description":"Priority: 1=high, 2=medium, 3=low"},"description":{"type":"string","description":"New description"},"start_value":{"type":"number","description":"Value the goal started from; progress is measured from it (use for goals that go down, e.g. 90 -> 80 kg)"},"target_date":{"type":"string","description":"New target date (Y-m-d)"},"current_value":{"type":"number","description":"Current value (for numeric goals, >= 0)"},"target_value_num":{"type":"number","description":"Target value (numeric and habit goals)"},"toggle_milestone":{"type":"integer","description":"Toggle milestone by index (0-based). Ticking the last open one completes the goal; unticking reopens it."}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"update_habit","title":"Update habit","description":"Update an existing habit. Only provided fields are changed.","input_schema":{"type":"object","required":["habit_id"],"properties":{"icon":{"type":"string","description":"Lucide icon name (lowercase, dashes), e.g. book-open"},"name":{"type":"string","description":"New habit name"},"unit":{"type":"string","description":"New unit label"},"color":{"type":"string","description":"Color as #rrggbb, e.g. #10AC84"},"active":{"type":"boolean","description":"Enable or disable the habit"},"habit_id":{"type":"integer","description":"ID of the habit to update"},"time_of_day":{"enum":["morning","afternoon","evening"],"type":"string","description":"When during the day"},"target_value":{"type":"integer","description":"New target count value"},"tracking_type":{"enum":["check","count","duration","times_per_week"],"type":"string","description":"New tracking type"},"times_per_week":{"type":"integer","description":"New times per week target (1-7)"},"target_duration":{"type":"integer","description":"New target duration in minutes (5-480)"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"update_project","title":"Update project","description":"Update a project: change name, tier, status, goal link, or target date.","input_schema":{"type":"object","required":["project_id"],"properties":{"url":{"type":"string","description":"Project URL"},"icon":{"type":"string","description":"Lucide icon name"},"name":{"type":"string","description":"New name"},"tier":{"enum":["A","B","C"],"type":"string","description":"New tier"},"color":{"type":"string","description":"Color hex"},"status":{"enum":["active","paused","completed","archived"],"type":"string","description":"New status"},"goal_id":{"type":"integer","description":"Link to goal by ID (0 to unlink)"},"project_id":{"type":"integer","description":"Project ID"},"description":{"type":"string","description":"New description"},"target_date":{"type":"string","description":"Target date (Y-m-d)"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"update_task","title":"Update task","description":"Update an existing task. Only provided fields are changed.","input_schema":{"type":"object","required":["task_id"],"properties":{"title":{"type":"string","description":"New title"},"status":{"enum":["pending","in_progress"],"type":"string","description":"New status"},"is_top3":{"type":"boolean","description":"Set Top 3 status"},"task_id":{"type":"integer","description":"ID of the task to update"},"due_date":{"type":"string","description":"New due date (Y-m-d)"},"priority":{"enum":[1,2,3],"type":"integer","description":"Priority: 1=high, 2=medium, 3=low"},"project_id":{"type":"integer","description":"Assign to project by ID"},"description":{"type":"string","description":"New description"}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"update_wishlist_item","title":"Update wishlist item","description":"Update a wishlist item — mark it purchased or cancelled, change priority, price or notes. Purchased and cancelled items drop out of the active list.","input_schema":{"type":"object","required":["item_id"],"properties":{"url":{"type":"string","description":"Product URL (http or https)"},"name":{"type":"string","description":"New name"},"notes":{"type":"string","description":"Notes — reasoning, alternatives considered, purchase trigger"},"status":{"enum":["pending","purchased","cancelled"],"type":"string","description":"pending = still wanted · purchased = bought · cancelled = no longer wanted"},"item_id":{"type":"integer","description":"Wishlist item ID"},"category":{"type":"string","description":"Category"},"currency":{"type":"string","description":"3-letter currency code of the prices, e.g. GBP"},"priority":{"enum":["high","medium","low","waiting"],"type":"string","description":"high | medium | low | waiting (waiting = wanted but gated on a trigger)"},"price_max":{"type":"number","description":"Upper price estimate"},"price_min":{"type":"number","description":"Lower price estimate"},"purchased_at":{"type":"string","description":"Purchase date (Y-m-d). Defaults to today when status becomes purchased."}}},"output_schema":null,"annotations":{"readOnlyHint":false,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"},{"name":"weekly_summary","title":"Weekly summary","description":"Get a comprehensive weekly review: tasks, habits, mood/energy, portfolio, books, focus time.","input_schema":{"type":"object","properties":{"week":{"type":"string","description":"ISO week format like \"2026-W13\" (defaults to current week)"}}},"output_schema":null,"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-19T08:33:48.397Z"}],"next_cursor":null,"next_actions":[{"action":"get_connection","description":"Connection block to call these tools","href":"/v1/servers/app.framezone%2Fframezone/connection?target=mcpServers","arguments":{"name":"app.framezone/framezone","target":"mcpServers"}},{"action":"get_server","description":"Full descriptor with trust and connectability","href":"/v1/servers/app.framezone%2Fframezone","arguments":{"name":"app.framezone/framezone"}}]}