_ registry / mcp streamable-http · checked 2h ago

Framezone

https://framezone.app

Registry code: cd1f4bcd53c4b5cd

api record

Framezone is the signed-in user's personal life dashboard: tasks with a daily

Top 3, projects, habits and streaks, goals, focus sessions, a daily journal

endpoint
https://framezone.app/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is Framezone live?
Yes — it answered the hub's last check (checked 2h ago). It answered 100% of checks over the last 30 days.
Is Framezone free to use?
Not measured yet.
What tools does Framezone have?
50 tools: update_task, complete_task, update_habit, list_goals, update_goal, update_project, get_daily_entry, create_note, ….
Is Framezone safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
100%

90 days 99.7%· all time 99.7%

latency
169ms

last good check

priced tools
0

of 50 tools

_ answered our checks, 90 days 334 checks · signed record
  • degraded → live
  • degraded → live
  • live → degraded· timeout after 20000ms
_ what it is for
used for
  • manage personal tasks and projects
  • log workouts and nutrition
  • track habits and goals
  • record portfolio trades
  • list financial accounts
takes → gives
text → data
tools
9 reads16 changes data
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 50 tools
50 never probed 0 of 50 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • update_task unknown never probed

    Update an existing task. Only provided fields are changed.

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 49 lines
  • complete_task unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "task_id"
      ],
      "properties": {
        "task_id": {
          "type": "integer",
          "description": "ID of the task to complete/uncomplete"
        }
      }
    }
    arguments 12 lines
  • update_habit unknown never probed

    Update an existing habit. Only provided fields are changed.

    mcp-tool

    {
      "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)"
        }
      }
    }
    arguments 63 lines
  • list_goals unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "properties": {
        "status": {
          "enum": [
            "active",
            "paused",
            "completed",
            "abandoned"
          ],
          "type": "string",
          "description": "Filter by status"
        },
        "category": {
          "type": "string",
          "description": "Filter by category"
        }
      }
    }
    arguments 19 lines
  • update_goal changes data unknown never probed

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

    mcp-tool

    {
      "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."
        }
      }
    }
    arguments 63 lines
  • update_project changes data unknown never probed

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

    mcp-tool

    {
      "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)"
        }
      }
    }
    arguments 59 lines
  • get_daily_entry reads unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "properties": {
        "date": {
          "type": "string",
          "description": "Date to get (Y-m-d, defaults to today)"
        }
      }
    }
    arguments 9 lines
  • create_note unknown never probed

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

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 32 lines
  • add_bookmark changes data unknown never probed

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

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 31 lines
  • list_contacts unknown never probed

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

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 24 lines
  • add_transaction unknown never probed

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

    mcp-tool

    {
      "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)"
        }
      }
    }
    arguments 43 lines
  • list_notes reads unknown never probed

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

    mcp-tool

    {
      "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)"
        }
      }
    }
    arguments 17 lines
  • list_accounts reads unknown never probed

    List financial accounts with balances and types.

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • list_categories reads unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "properties": {
        "type": {
          "enum": [
            "income",
            "expense",
            "both"
          ],
          "type": "string",
          "description": "Filter by type"
        }
      }
    }
    arguments 14 lines
  • list_holdings reads unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • list_quotes reads unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "properties": {
        "book_id": {
          "type": "integer",
          "description": "Filter by book ID"
        },
        "favorites_only": {
          "type": "boolean",
          "description": "Only show favorites"
        }
      }
    }
    arguments 13 lines
  • list_projects unknown never probed

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

    mcp-tool

    {
      "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)"
        }
      }
    }
    arguments 28 lines
  • add_trade changes data unknown never probed

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

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 39 lines
  • delete_workout unknown never probed

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

    mcp-tool

    {
      "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)"
        }
      }
    }
    arguments 28 lines
  • list_books unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "properties": {
        "status": {
          "enum": [
            "wishlist",
            "reading",
            "to_check",
            "completed",
            "abandoned"
          ],
          "type": "string",
          "description": "Filter by status"
        }
      }
    }
    arguments 16 lines
  • delete_task changes data unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "task_id"
      ],
      "properties": {
        "task_id": {
          "type": "integer",
          "description": "ID of the task to delete"
        }
      }
    }
    arguments 12 lines
  • list_tasks reads unknown never probed

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

    mcp-tool

    {
      "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)"
        }
      }
    }
    arguments 35 lines
  • create_task unknown never probed

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

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 54 lines
  • list_habits unknown never probed

    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).

    mcp-tool

    {
      "type": "object",
      "properties": {
        "date": {
          "type": "string",
          "description": "Date to check (Y-m-d, defaults to today)"
        }
      }
    }
    arguments 9 lines
  • create_habit changes data unknown never probed

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

    mcp-tool

    {
      "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)"
        }
      }
    }
    arguments 55 lines
  • log_habit unknown never probed

    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.

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 20 lines
  • create_goal unknown never probed

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

    mcp-tool

    {
      "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)"
        }
      }
    }
    arguments 63 lines
  • create_project unknown never probed

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

    mcp-tool

    {
      "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)"
        }
      }
    }
    arguments 53 lines
  • update_daily_entry unknown never probed

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

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 47 lines
  • delete_note unknown never probed

    Soft-delete a note.

    mcp-tool

    {
      "type": "object",
      "required": [
        "note_id"
      ],
      "properties": {
        "note_id": {
          "type": "integer",
          "description": "ID of the note to delete"
        }
      }
    }
    arguments 12 lines
  • create_book changes data unknown never probed

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

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 53 lines
  • update_book changes data unknown never probed

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

    mcp-tool

    {
      "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)"
        }
      }
    }
    arguments 57 lines
  • delete_book unknown never probed

    Delete a book from the library.

    mcp-tool

    {
      "type": "object",
      "required": [
        "book_id"
      ],
      "properties": {
        "book_id": {
          "type": "integer",
          "description": "ID of the book to delete"
        }
      }
    }
    arguments 12 lines
  • create_quote changes data unknown never probed

    Save a quote with author and optional book link.

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 35 lines
  • delete_bookmark changes data unknown never probed

    Delete a bookmark permanently.

    mcp-tool

    {
      "type": "object",
      "required": [
        "bookmark_id"
      ],
      "properties": {
        "bookmark_id": {
          "type": "integer",
          "description": "ID of the bookmark to delete"
        }
      }
    }
    arguments 12 lines
  • list_subscriptions unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • create_subscription changes data unknown never probed

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

    mcp-tool

    {
      "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)"
        }
      }
    }
    arguments 47 lines
  • log_focus_session unknown never probed

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

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 36 lines
  • get_focus_summary unknown never probed

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

    mcp-tool

    {
      "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)"
        }
      }
    }
    arguments 13 lines
  • log_workout changes data unknown never probed

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

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 67 lines
  • log_workout_sets unknown never probed

    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.

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 47 lines
  • log_body_measurement changes data unknown never probed

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

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 65 lines
  • log_nutrition changes data unknown never probed

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

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 55 lines
  • list_exercises reads unknown never probed

    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.

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 17 lines
  • get_fitness_summary reads unknown never probed

    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.

    mcp-tool

    {
      "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."
        }
      }
    }
    arguments 17 lines
  • delete_workout_sets unknown never probed

    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.

    mcp-tool

    {
      "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."
        }
      }
    }
    arguments 21 lines
  • delete_body_measurement changes data unknown never probed

    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.

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 13 lines
  • list_wishlist unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "properties": {
        "status": {
          "enum": [
            "pending",
            "purchased",
            "cancelled"
          ],
          "type": "string",
          "description": "Filter by status (default: pending)"
        }
      }
    }
    arguments 14 lines
  • add_wishlist_item changes data unknown never probed

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

    mcp-tool

    {
      "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"
        }
      }
    }
    arguments 50 lines
  • update_wishlist_item unknown never probed

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

    mcp-tool

    {
      "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."
        }
      }
    }
    arguments 63 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id cd1f4bcd53c4b5cd.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/cd1f4bcd53c4b5cd/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/cd1f4bcd53c4b5cd/badge.svg)](https://brick.blue/agent/cd1f4bcd53c4b5cd?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.