Skip to content

AimYear

by Yahhi · remote · no sign-in to list tools · v0.4.2 · published by GitHub user Yahhi

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

Deletes · 12Changes · 16

43 tools: 12 can delete or cancel things, 16 change things and 15 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http aimyear https://mcp.aimyear.com/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "next_steps" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "open": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

43 tools

Deletes or cancels 12Claude Code: deny
  • delete_deviceRemove a device so it stops receiving reminders.No findings

    Why it is in this group

    • The name "delete_device" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Remove a device so it stops receiving reminders.

    Annotations the server declares

    • title: Delete device
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • delete_plan_itemRemove one item from a day's plan.No findings

    Why it is in this group

    • The name "delete_plan_item" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Remove one item from a day's plan. A routine item is skipped for that day only.

    Annotations the server declares

    • title: Delete plan item
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • delete_sessionDelete a session, running or finished, so it no longer counts.No findings

    Why it is in this group

    • The name "delete_session" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete a session, running or finished, so it no longer counts. Pass session_id from get_now or list_sessions; without it, only this connection's single running session is deleted, never another one.

    Annotations the server declares

    • title: Delete session
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • delete_stepDelete one step from the path.No findings

    Why it is in this group

    • The name "delete_step" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete one step from the path.

    Annotations the server declares

    • title: Delete step
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • set_commitmentsReplace the list of recurring weekly commitments.No findings

    Why it is in this group

    • The name "set_commitments" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Set commitments
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • set_goalSave the yearly goal, or replace it with the next one.No findings

    Why it is in this group

    • The name "set_goal" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Set goal
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • set_leversReplace the list of levers: the recurring kinds of goal work.No findings

    Why it is in this group

    • The name "set_levers" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Set levers
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • set_milestonesReplace the list of 2–6 ordered milestones under the goal, each countable (metric and target) or measured by its steps, with a due date before the goal deadline.No findings

    Why it is in this group

    • The name "set_milestones" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Replace the list of 2–6 ordered milestones under the goal, each countable (metric and target) or measured by its steps, with a due date before the goal deadline. Pass each existing id, or that milestone's steps are deleted. To change one milestone, use edit_milestone.

    Annotations the server declares

    • title: Set milestones
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • set_planReplace the plan for a day.No findings

    Why it is in this group

    • The name "set_plan" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Set plan
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • set_projectsReplace the list of other projects (paid work, other products, life routines), so their sessions count as other work or life, not goal work.No findings

    Why it is in this group

    • The name "set_projects" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Set projects
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • set_routinesReplace the list of routines: small steps that repeat on fixed weekdays.No findings

    Why it is in this group

    • The name "set_routines" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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. perWeek makes it a weekly count: each tick adds its count (default 1), and once the week reaches perWeek it leaves the plan until Monday. Link it to the goal with leverId. minimum is the small version for a bad day ("read one thread" for "talk to one person"). Pass existing ids to keep them.

    Annotations the server declares

    • title: Set routines
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • stop_timerStop the timer ("pause", "stop", "stand up") and every running session with it.No findings

    Why it is in this group

    • The name "stop_timer" says "stop": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Stop timer
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
Changes things 16Claude Code: ask
  • add_deviceRegister a device token so server reminders (stand up, break over) can reach it.No findings

    Why it is in this group

    • The name "add_device" says "add": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Add device
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • add_noteAdd a one-line note to a running session (this connection's, or session_id).No findings

    Why it is in this group

    • The name "add_note" says "add": a word for a change.
    Description, as the server wrote it
    Add a one-line note to a running session (this connection's, or session_id). May classify a session that was unclassified.

    Annotations the server declares

    • title: Add note
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • add_sessionAdd past time that was not timed: minutes (ending now, or at end), or start+end as HH:MM on date.No findings

    Why it is in this group

    • The name "add_session" says "add": a word for a change.
    Description, as the server wrote it
    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. Apps replaying a queued entry pass op_id, so a retry does not count the time twice.

    Annotations the server declares

    • title: Add session
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • add_stepsAdd concrete steps to a milestone.No findings

    Why it is in this group

    • The name "add_steps" says "add": a word for a change.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • title: Add steps
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • check_goal_draftCheck a goal that is not saved yet against the rubric (a countable metric with value today and target, or a done-or-not result you can check yes or no; deadline within 12 months; p…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Check a goal that is not saved yet against the rubric (a countable metric with value today and target, or a done-or-not result you can check yes or no; deadline within 12 months; pace per week). Changes nothing. Returns problems[] and next_question: loop until problems is empty, then call set_goal. Prefer count; use done only when no honest number exists.

    Annotations the server declares

    • title: Check goal draft
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • edit_milestoneChange one milestone: title, kind (count or steps), metric, target, due date or status.No findings

    Why it is in this group

    • The name "edit_milestone" says "edit": a word for a change.
    Description, as the server wrote it
    Change one milestone: title, kind (count or steps), 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.

    Annotations the server declares

    • title: Edit milestone
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • edit_plan_itemChange one plan item: mark it done or not done, rename it, change its estimate, area or links, or make it the main step.No findings

    Why it is in this group

    • The name "edit_plan_item" says "edit": a word for a change.
    Description, as the server wrote it
    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. For a weekly routine, count says how many units this tick did (talked to 2 people today). For a routine, level minimum says only its bad-day minimum was done: it counts for the day, reported apart from full.

    Annotations the server declares

    • title: Edit plan item
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • edit_sessionFix 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…No findings

    Why it is in this group

    • The name "edit_session" says "edit": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Edit session
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • edit_stepChange one step: title, status (todo/doing/done), order, lever, estimate.No findings

    Why it is in this group

    • The name "edit_step" says "edit": a word for a change.
    Description, as the server wrote it
    Change one step: title, status (todo/doing/done), order, lever, estimate.

    Annotations the server declares

    • title: Edit step
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • next_stepsOpen steps of the current milestone, hard-lever steps first: the candidates for today's main step.1 finding

    Why it is in this group

    • The description's first verb is "open": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "next_steps" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "open": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Open steps of the current milestone, hard-lever steps first: the candidates for today's main step.

    Annotations the server declares

    • title: Next steps
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • record_progressRecord the current value of the goal metric ("I now have 4 customers"), or of a countable milestone when milestoneId is given ("I have talked to 7 people").No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Record the current value of the goal metric ("I now have 4 customers"), or of a countable milestone when milestoneId is given ("I have talked to 7 people"). For a done-or-not goal, 1 marks it done. One value per date: calling again for the same date corrects it. Says when the target is reached; a countable milestone that reaches its target is done.

    Annotations the server declares

    • title: Record progress
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • set_day_modeTracking for a day: full (everything recorded, the default) or off (timer and reminders only, nothing stored, no plan required).No findings

    Why it is in this group

    • The name "set_day_mode" says "set": a word for a change.
    Description, as the server wrote it
    Tracking for a day: full (everything recorded, the default) or off (timer and reminders only, nothing stored, no plan required).

    Annotations the server declares

    • title: Set day mode
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • set_settingsChange any of: timezone (IANA name, e.g.No findings

    Why it is in this group

    • The name "set_settings" says "set": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Set settings
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • split_attentionSet attention weights of the running sessions at once, e.g.No findings

    Why it is in this group

    • The description's first verb is "set": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Split attention
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • start_sessionStart a session of work and, if none is running, the timer.No findings

    Why it is in this group

    • The name "start_session" says "start": a word for a change.
    Description, as the server wrote it
    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. Apps replaying a queued start pass op_id, their own session_id and start_at; an agent leaves all three out.

    Annotations the server declares

    • title: Start session
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • stop_sessionStop a running session with a summary and outcome.No findings

    Why it is in this group

    • The name "stop_session" says "stop": a word for a change.
    Description, as the server wrote it
    Stop a running session with a summary and outcome. Pass session_id from get_now; without it, only this connection's single running session is stopped, never another one. The timer keeps running for other sessions. outcome=done completes the linked plan item or path step. Without end_at or op_id it refuses a session that already ended: use edit_session for that. With end_at (apps delivering a stop queued offline) a second stop on the same session is merged, whatever order they arrive in: the earliest end wins, done wins over any other outcome, the first summary stays and a different later one goes to the notes; the answer says applied: ended | shortened | recorded.

    Annotations the server declares

    • title: Stop session
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
Only reads 15Claude Code: allow
  • find_gapsUntimed stretches of 20+ minutes between the first and last session of a day.No findings

    Why it is in this group

    • The name "find_gaps" says "find": a word for reading.
    Description, as the server wrote it
    Untimed stretches of 20+ minutes between the first and last session of a day. Ask the user what happened there.

    Annotations the server declares

    • title: Find gaps
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • find_leaksWhere time leaks: comfortable goal work while the main step waited, overrides, unplanned work, gaps, switching, missed main steps, days without a plan.No findings

    Why it is in this group

    • The name "find_leaks" says "find": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Find leaks
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_capacityWeekly time budget out of 168 hours: overhead, hours committed per area, focus windows, and what is still unaccounted for.No findings

    Why it is in this group

    • The name "get_capacity" says "get": a word for reading.
    Description, as the server wrote it
    Weekly time budget out of 168 hours: overhead, hours committed per area, focus windows, and what is still unaccounted for. Nothing is assumed.

    Annotations the server declares

    • title: Get capacity
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_commitmentsRecurring weekly time: commitments (school runs, training, classes), overhead (sleep, meals) and focus windows.No findings

    Why it is in this group

    • The name "get_commitments" says "get": a word for reading.
    Description, as the server wrote it
    Recurring weekly time: commitments (school runs, training, classes), overhead (sleep, meals) and focus windows.

    Annotations the server declares

    • title: Get commitments
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_goalThe one yearly goal: kind (count or done), metric, starting value, current value, target, deadline, progress, levers (hard/comfortable) and other projects.No findings

    Why it is in this group

    • The name "get_goal" says "get": a word for reading.
    Description, as the server wrote it
    The one yearly goal: kind (count or done), metric, starting value, current value, target, deadline, progress, levers (hard/comfortable) and other projects. Call first in most flows.

    Annotations the server declares

    • title: Get goal
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_nowWhat is happening now: running sessions with attention shares, the timer, today's main step, today's minutes, the streak and a one-line nudge.No findings

    Why it is in this group

    • The name "get_now" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Get now
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_pathMilestones with kind, progress (recorded value or steps done), pace (ahead/on_pace/behind) and their steps.No findings

    Why it is in this group

    • The name "get_path" says "get": a word for reading.
    Description, as the server wrote it
    Milestones with kind, progress (recorded value or steps done), pace (ahead/on_pace/behind) and their steps. current_milestone_id is the one to work on.

    Annotations the server declares

    • title: Get path
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_planThe plan for a day (default today).No findings

    Why it is in this group

    • The name "get_plan" says "get": a word for reading.
    Description, as the server wrote it
    The plan for a day (default today).

    Annotations the server declares

    • title: Get plan
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_planning_contextEverything needed to plan a day: goal and pace, next_steps, yesterday's summary and undone items, week balance, days since a hard lever.No findings

    Why it is in this group

    • The name "get_planning_context" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Get planning context
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_routinesRoutines: small steps that repeat on fixed weekdays, e.g.No findings

    Why it is in this group

    • The name "get_routines" says "get": a word for reading.
    Description, as the server wrote it
    Routines: small steps that repeat on fixed weekdays, e.g. "talk with one person on Reddit", or that count up to a number a week, e.g. "talk to 5 people a week", each with an optional bad-day minimum. The server adds them to each matching day's plan, so every device and agent sees the same checks. With no routines yet, returns ready-made starters for the aim's area to offer as they are.

    Annotations the server declares

    • title: Get routines
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_settingsTimezone, where reminders go (desktop or mobile), and timer settings.No findings

    Why it is in this group

    • The name "get_settings" says "get": a word for reading.
    Description, as the server wrote it
    Timezone, where reminders go (desktop or mobile), and timer settings.

    Annotations the server declares

    • title: Get settings
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_devicesWhich devices can receive reminders, and when each was last seen.No findings

    Why it is in this group

    • The name "list_devices" says "list": a word for reading.
    Description, as the server wrote it
    Which devices can receive reminders, and when each was last seen.

    Annotations the server declares

    • title: List devices
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_sessionsSessions in a date range (default the last 7 days), with ids, optionally filtered by area or project.No findings

    Why it is in this group

    • The name "list_sessions" says "list": a word for reading.
    Description, as the server wrote it
    Sessions in a date range (default the last 7 days), with ids, optionally filtered by area or project.

    Annotations the server declares

    • title: List sessions
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • summarize_dayFull summary of a day: wall and attention minutes per area, classification and lever, sessions, gaps, overlaps, overrides.No findings

    Why it is in this group

    • The name "summarize_day" says "summarize": a word for reading.
    Description, as the server wrote it
    Full summary of a day: wall and attention minutes per area, classification and lever, sessions, gaps, overlaps, overrides.

    Annotations the server declares

    • title: Summarize day
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • summarize_weekA week, Monday to Sunday (to today for the current week): main-step days, goal share, hard share, area balance, overrides, streak, milestone pace.No findings

    Why it is in this group

    • The name "summarize_week" says "summarize": a word for reading.
    Description, as the server wrote it
    A week, Monday to Sunday (to today for the current week): main-step days, goal share, hard share, area balance, overrides, streak, milestone pace.

    Annotations the server declares

    • title: Summarize week
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 0.4.2. Values in angle brackets are yours to fill in.

claude mcp add --transport http aimyear https://mcp.aimyear.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__aimyear__get_goal",
      "mcp__aimyear__get_path",
      "mcp__aimyear__get_commitments",
      "mcp__aimyear__get_capacity",
      "mcp__aimyear__get_planning_context",
      "mcp__aimyear__get_plan",
      "mcp__aimyear__get_routines",
      "mcp__aimyear__get_now",
      "mcp__aimyear__list_sessions",
      "mcp__aimyear__find_gaps",
      "mcp__aimyear__summarize_day",
      "mcp__aimyear__summarize_week",
      "mcp__aimyear__find_leaks",
      "mcp__aimyear__get_settings",
      "mcp__aimyear__list_devices"
    ],
    "ask": [
      "mcp__aimyear__check_goal_draft",
      "mcp__aimyear__record_progress",
      "mcp__aimyear__edit_milestone",
      "mcp__aimyear__add_steps",
      "mcp__aimyear__edit_step",
      "mcp__aimyear__next_steps",
      "mcp__aimyear__edit_plan_item",
      "mcp__aimyear__set_day_mode",
      "mcp__aimyear__start_session",
      "mcp__aimyear__add_note",
      "mcp__aimyear__split_attention",
      "mcp__aimyear__stop_session",
      "mcp__aimyear__add_session",
      "mcp__aimyear__edit_session",
      "mcp__aimyear__set_settings",
      "mcp__aimyear__add_device"
    ],
    "deny": [
      "mcp__aimyear__set_goal",
      "mcp__aimyear__set_levers",
      "mcp__aimyear__set_projects",
      "mcp__aimyear__set_milestones",
      "mcp__aimyear__delete_step",
      "mcp__aimyear__set_commitments",
      "mcp__aimyear__set_plan",
      "mcp__aimyear__set_routines",
      "mcp__aimyear__delete_plan_item",
      "mcp__aimyear__stop_timer",
      "mcp__aimyear__delete_session",
      "mcp__aimyear__delete_device"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as aimyear. Review it before you use it.