Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "add_note", "add_session", "add_steps" and 3 more
⟨4 unchanged words⟩ {"note":{"type":"string"},"op_id":{"description":"for apps replaying queued requests: an id the app minted before its first attempt and reuses on retries, so the write is applied once and a retry gets the first answer back. Do not invent one; an agent calling interactively leaves it out","maxLength":128,"minLength":8,"type":"string"},"session_id":{"description":"from get_now; required with op_id","type":"string"}},"required":[" ⟨3 unchanged words⟩
⟨25 unchanged words⟩ 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.
⟨71 unchanged words⟩ "minimum":1,"type":"integer"},"op_id":{"description":"for apps replaying queued requests: an id the app minted before its first attempt and reuses on retries, so the write is applied once and a retry gets the first answer back. Do not invent one; an agent calling interactively leaves it out","maxLength":128,"minLength":8,"type":"string"},"projectId":{"type":"string"},"start" ⟨45 unchanged words⟩
⟨4 unchanged words⟩ {"milestoneId":{"type":"string"},"op_id":{"description":"for apps replaying queued requests: an id the app minted before its first attempt and reuses on retries, so the write is applied once and a retry gets the first answer back. Do not invent one; an agent calling interactively leaves it out","maxLength":128,"minLength":8,"type":"string"},"steps":{"items":{"properties":{"estimateMin ⟨23 unchanged words⟩
Delete a session, running or finished, so it no longer counts.WithoutPass session_id from get_now or list_sessions; without it,deletesonly this connection's single runningsession.session is deleted, never another one.
{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"op_id":{"description":"for apps replaying queued requests: an id the app minted before its first attempt and reuses on retries, so the write is applied once and a retry gets the first answer back. Do not invent one; an agent calling interactively leaves it out","maxLength":128,"minLength":8,"type":"string"},"session_id":{"description":"required with op_id","type":"string"}},"type":"object"}
⟨45 unchanged words⟩ (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.
⟨83 unchanged words⟩ "minimum":5,"type":"integer"},"op_id":{"description":"for apps replaying queued requests: an id the app minted before its first attempt and reuses on retries, so the write is applied once and a retry gets the first answer back. Do not invent one; an agent calling interactively leaves it out","maxLength":128,"minLength":8,"type":"string"},"override":{"description":"true only after the ⟨5 unchanged words⟩ ","type":"boolean"},"projectId":{"type":"string"},"session_id":{"description":"for apps: the session id the app minted itself. Create-if-absent: if a session with this id exists it is returned and nothing is created. An agent leaves it out; the server mints the id","maxLength":64,"minLength":6,"type":"string"},"start_at":{"description":"when the work began as ISO 8601 with offset, e.g. 2026-10-20T14:05:00+02:00. For apps delivering a request queued offline; an agent calling interactively leaves it out. Rejected before the session start; a clock more than 2 minutes ahead of the server is taken as now","type":"string"},"stepId":{"description ⟨43 unchanged words⟩
Stop a running session(with a summary and outcome. Pass session_id from get_now; without it, only this connection's,orsinglesession_id)runningwithsessionaissummarystopped,andneveroutcome.another one. The timer keeps running for other sessions. outcome=done completes the linked plan item or path step.RefusesWithout 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.
Certificate recorded, valid to 2027-01-10
Authorization not required, issuer https://mcp.aimyear.com/
Changed the definition of "check_goal_draft", "edit_milestone", "edit_plan_item" and 7 more
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 12months,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.
⟨23 unchanged words⟩ {2}$","type":"string"},"kind":{"description":"count (default): a number from baseline to target, e.g. \"15 paying customers\". done: a one-time result checked yes or no, e.g. \"launch v2 in the stores\"; no metric, baseline or target, progress is the share of stages done","enum":["count","done"],"type":"string"},"
Unknown → Live
First tool surface recorded: 43 tools (server version 0.4.2)
https://mcp.aimyear.com/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 7 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨13 unchanged words⟩ "minimum":0,"type":"number"},"end_at":{"description":"when the work ended as ISO 8601 with offset, e.g. 2026-10-20T14:05:00+02:00. For apps delivering a request queued offline; an agent calling interactively leaves it out. Rejected before the session start; a clock more than 2 minutes ahead of the server is taken as now","type":"string"},"op_id":{"description":"for apps replaying queued requests: an id the app minted before its first attempt and reuses on retries, so the write is applied once and a retry gets the first answer back. Do not invent one; an agent calling interactively leaves it out","maxLength":128,"minLength":8,"type":"string"},"outcome":{"enum":["done","partial","abandoned"],"type":"string"},"session_id":{"description":"from get_now; required with op_id or end_at","type":"string"},"summary":{"type ⟨6 unchanged words⟩
Change one milestone: title, kind (count or steps), metric, target, due date or status. status=retired ⟨18 unchanged words⟩
⟨17 unchanged words⟩ {2}$","type":"string"},"kind":{"description":"count: progress is a recorded value against target (\"talk to 20 people\"); steps: progress is steps done (\"implement the onboarding flow\"), no metric needed. Default: count when metric and target are given, else steps; an existing milestone keeps its kind","enum":["count","steps"],"type":"string"},"metric":{"type":"string"},"milestoneId" ⟨20 unchanged words⟩
⟨23 unchanged words⟩ 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.
⟨10 unchanged words⟩ ,"happiness"],"type":"string"},"count":{"description":"units done in this tick, for a routine with perWeek; above 0 ticks it, 0 unticks it","maximum":9007199254740991,"minimum":0,"type":"integer"},"date":{"description":"YYYY-MM-DD in the user's ⟨22 unchanged words⟩ :{"type":"boolean"},"itemId":{"type":"string"},"level":{"description":"routines only; sets done unless done is given","enum":["full","minimum"],"type":"string"},"leverId":{"type ⟨14 unchanged words⟩
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.
Milestones with kind, progress (recorded value or steps done), pace (ahead/on_pace/behind) and their steps. current_milestone_id is ⟨5 unchanged words⟩
⟨8 unchanged words⟩ 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.
Record the current value of the goal metric,e.g.("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 isreached.reached; a countable milestone that reaches its target is done.
⟨17 unchanged words⟩ {2}$","type":"string"},"milestoneId":{"description":"a countable milestone instead of the goal","type":"string"},"value":{"type":"number"}},"required ⟨3 unchanged words⟩
⟨15 unchanged words⟩ string"},"baseline":{"description":"valuetodaytoday; required for kind count","type":"number"},"deadline":{ ⟨12 unchanged words⟩ {2}$","type":"string"},"kind":{"description":"count (default): a number from baseline to target, e.g. \"15 paying customers\". done: a one-time result checked yes or no, e.g. \"launch v2 in the stores\"; no metric, baseline or target, progress is the share of stages done","enum":["count","done"],"type":"string"},"metric":{"description":"required for kind count","type":"string"},"target":{"description":"required for kind count","type":"number"},"title":{"type" ⟨2 unchanged words⟩ type":"string"}},"required":["title","metric","baseline","target","deadline"],"type":"object"}
Replace the list of 2–6 ordered milestones under the goal, eachwith acountable (metric,and target)andor measured by its steps, with a due date before the goal deadline. Pass each ⟨14 unchanged words⟩
⟨24 unchanged words⟩ ,"id":{"type":"string"},"kind":{"description":"count: progress is a recorded value against target (\"talk to 20 people\"); steps: progress is steps done (\"implement the onboarding flow\"), no metric needed. Default: count when metric and target are given, else steps; an existing milestone keeps its kind","enum":["count","steps"],"type":"string"},"metric":{"type":"string"},"target":{" ⟨3 unchanged words⟩ type":"string"}},"required":["title","metric","target","due"],"type":"object"}, ⟨6 unchanged words⟩
⟨40 unchanged words⟩ 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.
⟨39 unchanged words⟩ ,"leverId":{"type":"string"},"minimum":{"description":"the bad-day version, e.g. \"read one thread\"","type":"string"},"perWeek":{"description":"weekly count, e.g. 5 for \"talk to 5 people a week\"","maximum":9007199254740991,"minimum":1,"type":"integer"},"projectId":{"type":"string"},"title" ⟨13 unchanged words⟩