AimYear

Accountability partner in your agent: one yearly aim, one main step a day, a timer your agent runs.

我該用這個嗎

品質與安全性

B
說明品質
94%
結構描述完整度
74%
命名品質
98%
汙染風險
80%
權限相符程度
100%
協定合規性
100%

發現項目(8)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool 'edit_step' description contains placeholder text在 edit_step 中
  • LOWTool 'get_path' description lacks action verb在 get_path 中
  • LOWTool 'edit_step' description lacks action verb在 edit_step 中
  • LOWTool 'get_plan' description lacks action verb在 get_plan 中
  • LOWTool 'edit_plan_item' description lacks action verb在 edit_plan_item 中
  • LOWTool 'summarize_week' description lacks action verb在 summarize_week 中
  • INFOTool description contains placeholder or incomplete text在 edit_step 中

根據工具定義與協定合規性的自動化分析。

上下文成本

~7,561Token(工具定義)
~1.0 KB典型回應大小
顯著的注意力影響(128k 上下文的 5.91%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "aimyear-mcp": {
      "url": "https://mcp.aimyear.com/mcp"
    }
  }
}

遠端端點

https://mcp.aimyear.com/mcpstreamable-http

它能做什麼

工具清單

工具(43)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢get_goal

The one yearly goal: metric, starting value, current value, target, deadline, levers (hard/comfortable) and other projects. Call first in most flows.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢check_goal_draft(title, metric, baseline, target, deadline)

Check a goal that is not saved yet against the rubric (countable metric, value today, target, deadline within 12 months, pace per week). Changes nothing. Returns problems[] and next_question: loop until problems is empty, then call set_goal.

輸入結構描述

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string"
    },
    "metric": {
      "description": "the one number and its unit, e.g. \"paying customers\"",
      "type": "string"
    },
    "baseline": {
      "description": "value today",
      "type": "number"
    },
    "target": {
      "type": "number"
    },
    "deadline": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "YYYY-MM-DD in the user's timezone"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴set_goal(title, why, metric, baseline, target, ...)

Save the yearly goal, or replace it with the next one. Rejects with problems[] if the rubric fails. Keeps levers and projects. area is which of the five life areas the goal belongs to.

輸入結構描述

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string"
    },
    "why": {
      "type": "string"
    },
    "metric": {
      "type": "string"
    },
    "baseline": {
      "type": "number",
      "description": "value today"
    },
    "target": {
      "type": "number"
    },
    "deadline": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "YYYY-MM-DD in the user's timezone"
    },
    "area": {
      "description": "default money",
      "type": "string",
      "enum": [
        "health",
        "relations",
        "work",
        "money",
        "happiness"
      ]
    }
  },
  "required": [
    "title",
    "metric",
    "baseline",
    "target",
    "deadline"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪record_progress(value, date)

Record the current value of the goal metric, e.g. "I now have 4 customers". One value per date: calling again for the same date corrects it. Says when the target is reached.

輸入結構描述

{
  "type": "object",
  "properties": {
    "value": {
      "type": "number"
    },
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "YYYY-MM-DD in the user's timezone"
    }
  },
  "required": [
    "value"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴set_levers(levers)

Replace the list of levers: the recurring kinds of goal work. At least one must be kind=hard (the work the user avoids). keywords/repos are hints for classifying sessions from their task text. Pass existing ids to keep them.

輸入結構描述

{
  "type": "object",
  "properties": {
    "levers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "hard",
              "comfortable"
            ]
          },
          "examples": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "repos": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "name",
          "kind"
        ]
      }
    }
  },
  "required": [
    "levers"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴set_projects(projects)

Replace the list of other projects (paid work, other products, life routines), so their sessions count as other work or life, not goal work. Pass the whole list: leave one out to remove it, change its name or hints to edit it. Pass existing ids to keep them.

輸入結構描述

{
  "type": "object",
  "properties": {
    "projects": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "area": {
            "type": "string",
            "enum": [
              "health",
              "relations",
              "work",
              "money",
              "happiness"
            ]
          },
          "keywords": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "repos": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "name",
          "area"
        ]
      }
    }
  },
  "required": [
    "projects"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_path

Milestones with pace (ahead/on_pace/behind) and their steps. current_milestone_id is the one to work on.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴set_milestones(milestones)

Replace the list of 2–6 ordered milestones under the goal, each with a metric, target and due date before the goal deadline. Pass each existing id, or that milestone's steps are deleted. To change one milestone, use edit_milestone.

輸入結構描述

{
  "type": "object",
  "properties": {
    "milestones": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "metric": {
            "type": "string"
          },
          "target": {
            "type": "number"
          },
          "due": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "YYYY-MM-DD in the user's timezone"
          }
        },
        "required": [
          "title",
          "metric",
          "target",
          "due"
        ]
      }
    }
  },
  "required": [
    "milestones"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡edit_milestone(milestoneId, title, metric, target, due, ...)

Change one milestone: title, metric, target, due date or status. status=retired drops it without finishing; done or retired moves the path to the next milestone. Its steps are kept.

輸入結構描述

{
  "type": "object",
  "properties": {
    "milestoneId": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "metric": {
      "type": "string"
    },
    "target": {
      "type": "number"
    },
    "due": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "YYYY-MM-DD in the user's timezone"
    },
    "status": {
      "type": "string",
      "enum": [
        "todo",
        "doing",
        "done",
        "retired"
      ]
    }
  },
  "required": [
    "milestoneId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡add_steps(milestoneId, steps)

Add concrete steps to a milestone. A step is an action that fits a few work blocks ("email 10 people from the waitlist"), not "do marketing". Abstract steps are rejected. Put a hard-lever step first; preparation only where it blocks it (warns otherwise).

輸入結構描述

{
  "type": "object",
  "properties": {
    "milestoneId": {
      "type": "string"
    },
    "steps": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "leverId": {
            "type": "string"
          },
          "estimateMin": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "title"
        ]
      }
    }
  },
  "required": [
    "milestoneId",
    "steps"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡edit_step(stepId, title, status, order, leverId, ...)

Change one step: title, status (todo/doing/done), order, lever, estimate.

輸入結構描述

{
  "type": "object",
  "properties": {
    "stepId": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "todo",
        "doing",
        "done"
      ]
    },
    "order": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "leverId": {
      "type": "string"
    },
    "estimateMin": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "stepId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴delete_step(stepId)

Delete one step from the path.

輸入結構描述

{
  "type": "object",
  "properties": {
    "stepId": {
      "type": "string"
    }
  },
  "required": [
    "stepId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢next_steps(count)

Open steps of the current milestone, hard-lever steps first: the candidates for today's main step.

輸入結構描述

{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_commitments

Recurring weekly time: commitments (school runs, training, classes), overhead (sleep, meals) and focus windows.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴set_commitments(commitments)

Replace the list of recurring weekly commitments. days are ISO weekdays 1=Mon..7=Sun; use timesPerWeek instead when there are no fixed days. Pass existing ids to keep them.

輸入結構描述

{
  "type": "object",
  "properties": {
    "commitments": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "kind": {
            "description": "commitment = unavailable and belongs to an area; overhead = unavailable and belongs to no area (sleep, meals, hygiene, moving between places); window = time available for focus work. Default commitment.",
            "type": "string",
            "enum": [
              "commitment",
              "overhead",
              "window"
            ]
          },
          "area": {
            "description": "required for kind commitment",
            "type": "string",
            "enum": [
              "health",
              "relations",
              "work",
              "money",
              "happiness"
            ]
          },
          "days": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "maximum": 7
            }
          },
          "timesPerWeek": {
            "type": "integer",
            "minimum": 1,
            "maximum": 7
          },
          "start": {
            "type": "string",
            "pattern": "^\\d{1,2}:\\d{2}$",
            "description": "HH:MM local time"
          },
          "minutes": {
            "type": "integer",
            "minimum": 1,
            "maximum": 9007199254740991
          },
          "usableForWork": {
            "description": "committed but still workable (waiting, being a passenger)",
            "type": "boolean"
          },
          "assumed": {
            "description": "true when the number is your inference, not something the user stated",
            "type": "boolean"
          },
          "insideWindowId": {
            "description": "id of a kind:window entry this commitment is carved out of, so the window is not counted twice",
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "note": {
            "type": "string"
          }
        },
        "required": [
          "title",
          "minutes"
        ]
      }
    }
  },
  "required": [
    "commitments"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_capacity

Weekly time budget out of 168 hours: overhead, hours committed per area, focus windows, and what is still unaccounted for. Nothing is assumed.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_planning_context(date)

Everything needed to plan a day: goal and pace, next_steps, yesterday's summary and undone items, week balance, days since a hard lever. Defaults to tomorrow. The agent plans; then call set_plan.

輸入結構描述

{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "YYYY-MM-DD in the user's timezone"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_plan(date)

The plan for a day (default today).

輸入結構描述

{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "YYYY-MM-DD in the user's timezone"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴set_plan(date, items)

Replace the plan for a day. Exactly one item must have isMainStep=true (the step toward the goal), ideally linked by stepId from next_steps and on a hard lever. Warns when no item is on a hard lever. Other items: paid work, family, workout, etc. with their area. Items that stay keep their done state.

輸入結構描述

{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "YYYY-MM-DD in the user's timezone"
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "area": {
            "type": "string",
            "enum": [
              "health",
              "relations",
              "work",
              "money",
              "happiness"
            ]
          },
          "projectId": {
            "type": "string"
          },
          "leverId": {
            "type": "string"
          },
          "stepId": {
            "type": "string"
          },
          "isMainStep": {
            "type": "boolean"
          },
          "estimateMin": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "title",
          "area"
        ]
      }
    }
  },
  "required": [
    "items"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡edit_plan_item(itemId, date, done, title, area, ...)

Change one plan item: mark it done or not done, rename it, change its estimate, area or links, or make it the main step. done=true also completes its linked path step.

輸入結構描述

{
  "type": "object",
  "properties": {
    "itemId": {
      "type": "string"
    },
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "YYYY-MM-DD in the user's timezone"
    },
    "done": {
      "type": "boolean"
    },
    "title": {
      "type": "string"
    },
    "area": {
      "type": "string",
      "enum": [
        "health",
        "relations",
        "work",
        "money",
        "happiness"
      ]
    },
    "projectId": {
      "type": "string"
    },
    "leverId": {
      "type": "string"
    },
    "stepId": {
      "type": "string"
    },
    "isMainStep": {
      "type": "boolean"
    },
    "estimateMin": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "itemId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_routines

Routines: small steps that repeat on fixed weekdays, e.g. "talk with one person on Reddit". The server adds them to each matching day's plan, so every device and agent sees the same checks.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴set_routines(routines)

Replace the list of routines: small steps that repeat on fixed weekdays. From today on, each one appears as a plan item on its days; tick it with edit_plan_item, skip it for one day with delete_plan_item. set_plan keeps them. days are ISO weekdays 1=Mon..7=Sun, default every day. Pass existing ids to keep them.

輸入結構描述

{
  "type": "object",
  "properties": {
    "routines": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "area": {
            "type": "string",
            "enum": [
              "health",
              "relations",
              "work",
              "money",
              "happiness"
            ]
          },
          "projectId": {
            "type": "string"
          },
          "leverId": {
            "type": "string"
          },
          "days": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "maximum": 7
            }
          },
          "estimateMin": {
            "description": "default 15",
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "title",
          "area"
        ]
      }
    }
  },
  "required": [
    "routines"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴delete_plan_item(itemId, date)

Remove one item from a day's plan. A routine item is skipped for that day only.

輸入結構描述

{
  "type": "object",
  "properties": {
    "itemId": {
      "type": "string"
    },
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "YYYY-MM-DD in the user's timezone"
    }
  },
  "required": [
    "itemId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡set_day_mode(date, mode)

Tracking for a day: full (everything recorded, the default) or off (timer and reminders only, nothing stored, no plan required).

輸入結構描述

{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "YYYY-MM-DD in the user's timezone"
    },
    "mode": {
      "type": "string",
      "enum": [
        "full",
        "off"
      ]
    }
  },
  "required": [
    "mode"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_now

What is happening now: running sessions with attention shares, the timer, today's main step, today's minutes, the streak and a one-line nudge.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪start_session(task, area, projectId, leverId, stepId, ...)

Start a session of work and, if none is running, the timer. Returns a verdict: ok | stop | plan_first. On "stop" NO session is created: relay the message, ask the user; if they insist, call again with override=true. Several sessions may run at once (two terminals) and share attention by weight.

輸入結構描述

{
  "type": "object",
  "properties": {
    "task": {
      "type": "string",
      "description": "what you are about to do, specific"
    },
    "area": {
      "description": "default work",
      "type": "string",
      "enum": [
        "health",
        "relations",
        "work",
        "money",
        "happiness"
      ]
    },
    "projectId": {
      "type": "string"
    },
    "leverId": {
      "type": "string"
    },
    "stepId": {
      "description": "path step id",
      "type": "string"
    },
    "itemId": {
      "description": "plan item id",
      "type": "string"
    },
    "weight": {
      "description": "attention weight vs other sessions at the same time, default 1",
      "type": "number",
      "minimum": 0
    },
    "exclusive": {
      "description": "true: nothing else was happening then",
      "type": "boolean"
    },
    "direction": {
      "description": "up (default) counts elapsed time and runs until stopped, with a stand-up reminder every workMin; down is a fixed timebox, for a break",
      "type": "string",
      "enum": [
        "up",
        "down"
      ]
    },
    "minutes": {
      "description": "length for a down timer, or the stand-up interval for an up timer",
      "type": "integer",
      "minimum": 5,
      "maximum": 120
    },
    "workplace": {
      "type": "string",
      "enum": [
        "desktop",
        "mobile"
      ]
    },
    "override": {
      "description": "true only after the user confirmed past a stop",
      "type": "boolean"
    }
  },
  "required": [
    "task"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡add_note(note, session_id)

Add a one-line note to a running session (this connection's, or session_id). May classify a session that was unclassified.

輸入結構描述

{
  "type": "object",
  "properties": {
    "note": {
      "type": "string"
    },
    "session_id": {
      "type": "string"
    }
  },
  "required": [
    "note"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡split_attention(shares)

Set attention weights of the running sessions at once, e.g. {"abc": 0.7, "def": 0.3}. Applies to the whole session. For a finished session use edit_session.

輸入結構描述

{
  "type": "object",
  "properties": {
    "shares": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "number",
        "minimum": 0
      }
    }
  },
  "required": [
    "shares"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡stop_session(summary, outcome, session_id, attention_share)

Stop a running session (this connection's, or session_id) with a summary and outcome. The timer keeps running for other sessions. outcome=done completes the linked plan item or path step. Refuses a session that already ended: use edit_session for that.

輸入結構描述

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string"
    },
    "outcome": {
      "type": "string",
      "enum": [
        "done",
        "partial",
        "abandoned"
      ]
    },
    "session_id": {
      "type": "string"
    },
    "attention_share": {
      "description": "corrects the share in hindsight",
      "type": "number",
      "minimum": 0,
      "maximum": 1
    }
  },
  "required": [
    "summary",
    "outcome"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴stop_timer(summary, outcome)

Stop the timer ("pause", "stop", "stand up") and every running session with it. There is no paused state: resuming starts a new session. Pass summary and outcome to save them on the sessions it closes, or call stop_session first. Returns the break length.

輸入結構描述

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string"
    },
    "outcome": {
      "description": "default partial",
      "type": "string",
      "enum": [
        "done",
        "partial",
        "abandoned"
      ]
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡add_session(task, minutes, start, end, date, ...)

Add past time that was not timed: minutes (ending now, or at end), or start+end as HH:MM on date. For calls, children, workout, paid work, or work done away from the agent.

輸入結構描述

{
  "type": "object",
  "properties": {
    "task": {
      "type": "string"
    },
    "minutes": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "start": {
      "type": "string",
      "pattern": "^\\d{1,2}:\\d{2}$",
      "description": "HH:MM local time"
    },
    "end": {
      "type": "string",
      "pattern": "^\\d{1,2}:\\d{2}$",
      "description": "HH:MM local time"
    },
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "YYYY-MM-DD in the user's timezone"
    },
    "area": {
      "description": "default work",
      "type": "string",
      "enum": [
        "health",
        "relations",
        "work",
        "money",
        "happiness"
      ]
    },
    "projectId": {
      "type": "string"
    },
    "leverId": {
      "type": "string"
    },
    "stepId": {
      "description": "path step id",
      "type": "string"
    },
    "itemId": {
      "description": "plan item id",
      "type": "string"
    },
    "weight": {
      "description": "attention weight vs other sessions at the same time, default 1",
      "type": "number",
      "minimum": 0
    },
    "exclusive": {
      "description": "true: nothing else was happening then",
      "type": "boolean"
    }
  },
  "required": [
    "task"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡edit_session(session_id, date, start, end, task, ...)

Fix a session, running or finished: start and end (HH:MM on date; an end before the start means it ran past midnight), task, area, project, lever, step, plan item, summary, outcome, attention share, weight. It is classified again after a change. Use it when a timer was forgotten or a session was labelled wrong.

輸入結構描述

{
  "type": "object",
  "properties": {
    "session_id": {
      "type": "string"
    },
    "date": {
      "description": "local date of start and end; default the session's own date",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "start": {
      "type": "string",
      "pattern": "^\\d{1,2}:\\d{2}$",
      "description": "HH:MM local time"
    },
    "end": {
      "type": "string",
      "pattern": "^\\d{1,2}:\\d{2}$",
      "description": "HH:MM local time"
    },
    "task": {
      "type": "string"
    },
    "area": {
      "description": "default work",
      "type": "string",
      "enum": [
        "health",
        "relations",
        "work",
        "money",
        "happiness"
      ]
    },
    "projectId": {
      "type": "string"
    },
    "leverId": {
      "type": "string"
    },
    "stepId": {
      "description": "path step id",
      "type": "string"
    },
    "itemId": {
      "description": "plan item id",
      "type": "string"
    },
    "weight": {
      "description": "attention weight vs other sessions at the same time, default 1",
      "type": "number",
      "minimum": 0
    },
    "exclusive": {
      "description": "true: nothing else was happening then",
      "type": "boolean"
    },
    "summary": {
      "type": "string"
    },
    "outcome": {
      "type": "string",
      "enum": [
        "done",
        "partial",
        "abandoned"
      ]
    },
    "attention_share": {
      "description": "share of the session's wall time that was real attention",
      "type": "number",
      "minimum": 0,
      "maximum": 1
    }
  },
  "required": [
    "session_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴delete_session(session_id)

Delete a session, running or finished, so it no longer counts. Without session_id it deletes this connection's running session.

輸入結構描述

{
  "type": "object",
  "properties": {
    "session_id": {
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_sessions(from, to, area, projectId)

Sessions in a date range (default the last 7 days), with ids, optionally filtered by area or project.

輸入結構描述

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "YYYY-MM-DD in the user's timezone"
    },
    "to": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "YYYY-MM-DD in the user's timezone"
    },
    "area": {
      "type": "string",
      "enum": [
        "health",
        "relations",
        "work",
        "money",
        "happiness"
      ]
    },
    "projectId": {
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢find_gaps(date)

Untimed stretches of 20+ minutes between the first and last session of a day. Ask the user what happened there.

輸入結構描述

{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "YYYY-MM-DD in the user's timezone"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢summarize_day(date)

Full summary of a day: wall and attention minutes per area, classification and lever, sessions, gaps, overlaps, overrides.

輸入結構描述

{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "YYYY-MM-DD in the user's timezone"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢summarize_week(date)

A week, Monday to Sunday (to today for the current week): main-step days, goal share, hard share, area balance, overrides, streak, milestone pace.

輸入結構描述

{
  "type": "object",
  "properties": {
    "date": {
      "description": "any day of the week, default today",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢find_leaks(from, to)

Where time leaks: comfortable goal work while the main step waited, overrides, unplanned work, gaps, switching, missed main steps, days without a plan. Default the last 7 days.

輸入結構描述

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "YYYY-MM-DD in the user's timezone"
    },
    "to": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "YYYY-MM-DD in the user's timezone"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_settings

Timezone, where reminders go (desktop or mobile), and timer settings.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡set_settings(timezone, workplace, workMin, breakMin, longBreakEvery, ...)

Change any of: timezone (IANA name, e.g. Europe/Madrid; it sets where each day starts and ends), workplace for reminders, stand-up interval workMin, breakMin, longBreakEvery, longBreakMin, standup on/off.

輸入結構描述

{
  "type": "object",
  "properties": {
    "timezone": {
      "type": "string"
    },
    "workplace": {
      "type": "string",
      "enum": [
        "desktop",
        "mobile"
      ]
    },
    "workMin": {
      "type": "integer",
      "minimum": 5,
      "maximum": 120
    },
    "breakMin": {
      "type": "integer",
      "minimum": 1,
      "maximum": 60
    },
    "longBreakEvery": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10
    },
    "longBreakMin": {
      "type": "integer",
      "minimum": 5,
      "maximum": 60
    },
    "standup": {
      "type": "boolean"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡add_device(token, platform, label)

Register a device token so server reminders (stand up, break over) can reach it. The phone app registers itself; use this for testing or a manual token.

輸入結構描述

{
  "type": "object",
  "properties": {
    "token": {
      "type": "string",
      "minLength": 20
    },
    "platform": {
      "type": "string",
      "enum": [
        "ios",
        "android",
        "macos",
        "web"
      ]
    },
    "label": {
      "type": "string"
    }
  },
  "required": [
    "token",
    "platform"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_devices

Which devices can receive reminders, and when each was last seen.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴delete_device(token)

Remove a device so it stops receiving reminders.

輸入結構描述

{
  "type": "object",
  "properties": {
    "token": {
      "type": "string"
    }
  },
  "required": [
    "token"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本43 個工具