A Model Context Protocol (MCP) server for interacting with Microsoft 365 and Office services through the Graph API
AimYear is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Accountability partner in your agent: one yearly aim, one main step a day, a timer your agent runs.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http aimyear-mcp https://mcp.aimyear.com/mcp
# 2 — ask your agent for something these tools do
# get_goal, check_goal_draft, set_goal and 40 more
AimYear costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http aimyear-mcp https://mcp.aimyear.com/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
43 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
The one yearly goal: metric, starting value, current value, target, deadline, levers (hard/comfortable) and other projects. Call first in most flows.
No parameter schema on file.
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| title | string | no | — |
| metric | string | no | the one number and its unit, e.g. "paying customers" |
| baseline | number | no | value today |
| target | number | no | — |
| deadline | string | no | YYYY-MM-DD in the user's timezone |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| title | string | yes | — |
| why | string | no | — |
| metric | string | yes | — |
| baseline | number | yes | value today |
| target | number | yes | — |
| deadline | string | yes | YYYY-MM-DD in the user's timezone |
| area | string | no | default money |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| value | number | yes | — |
| date | string | no | YYYY-MM-DD in the user's timezone |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| levers | array | yes | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| projects | array | yes | — |
Milestones with pace (ahead/on_pace/behind) and their steps. current_milestone_id is the one to work on.
No parameter schema on file.
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| milestones | array | yes | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| milestoneId | string | yes | — |
| title | string | no | — |
| metric | string | no | — |
| target | number | no | — |
| due | string | no | YYYY-MM-DD in the user's timezone |
| status | string | no | — |
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).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| milestoneId | string | yes | — |
| steps | array | yes | — |
Change one step: title, status (todo/doing/done), order, lever, estimate.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| stepId | string | yes | — |
| title | string | no | — |
| status | string | no | — |
| order | integer | no | — |
| leverId | string | no | — |
| estimateMin | integer | no | — |
Delete one step from the path.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| stepId | string | yes | — |
Open steps of the current milestone, hard-lever steps first: the candidates for today's main step.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| count | integer | no | — |
Recurring weekly time: commitments (school runs, training, classes), overhead (sleep, meals) and focus windows.
No parameter schema on file.
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| commitments | array | yes | — |
Weekly time budget out of 168 hours: overhead, hours committed per area, focus windows, and what is still unaccounted for. Nothing is assumed.
No parameter schema on file.
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| date | string | no | YYYY-MM-DD in the user's timezone |
The plan for a day (default today).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| date | string | no | YYYY-MM-DD in the user's timezone |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| date | string | no | YYYY-MM-DD in the user's timezone |
| items | array | yes | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| itemId | string | yes | — |
| date | string | no | YYYY-MM-DD in the user's timezone |
| done | boolean | no | — |
| title | string | no | — |
| area | string | no | — |
| projectId | string | no | — |
| leverId | string | no | — |
| stepId | string | no | — |
| isMainStep | boolean | no | — |
| estimateMin | integer | no | — |
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.
No parameter schema on file.
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| routines | array | yes | — |
Remove one item from a day's plan. A routine item is skipped for that day only.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| itemId | string | yes | — |
| date | string | no | YYYY-MM-DD in the user's timezone |
Tracking for a day: full (everything recorded, the default) or off (timer and reminders only, nothing stored, no plan required).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| date | string | no | YYYY-MM-DD in the user's timezone |
| mode | string | yes | — |
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.
No parameter schema on file.
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| task | string | yes | what you are about to do, specific |
| area | string | no | default work |
| projectId | string | no | — |
| leverId | string | no | — |
| stepId | string | no | path step id |
| itemId | string | no | plan item id |
| weight | number | no | attention weight vs other sessions at the same time, default 1 |
| exclusive | boolean | no | true: nothing else was happening then |
| direction | string | no | up (default) counts elapsed time and runs until stopped, with a stand-up reminder every workMin; down is a fixed timebox, for a break |
| minutes | integer | no | length for a down timer, or the stand-up interval for an up timer |
| workplace | string | no | — |
| override | boolean | no | true only after the user confirmed past a stop |
Add a one-line note to a running session (this connection's, or session_id). May classify a session that was unclassified.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| note | string | yes | — |
| session_id | string | no | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| shares | object | yes | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| summary | string | yes | — |
| outcome | string | yes | — |
| session_id | string | no | — |
| attention_share | number | no | corrects the share in hindsight |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| summary | string | no | — |
| outcome | string | no | default partial |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| task | string | yes | — |
| minutes | integer | no | — |
| start | string | no | HH:MM local time |
| end | string | no | HH:MM local time |
| date | string | no | YYYY-MM-DD in the user's timezone |
| area | string | no | default work |
| projectId | string | no | — |
| leverId | string | no | — |
| stepId | string | no | path step id |
| itemId | string | no | plan item id |
| weight | number | no | attention weight vs other sessions at the same time, default 1 |
| exclusive | boolean | no | true: nothing else was happening then |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| session_id | string | yes | — |
| date | string | no | local date of start and end; default the session's own date |
| start | string | no | HH:MM local time |
| end | string | no | HH:MM local time |
| task | string | no | — |
| area | string | no | default work |
| projectId | string | no | — |
| leverId | string | no | — |
| stepId | string | no | path step id |
| itemId | string | no | plan item id |
| weight | number | no | attention weight vs other sessions at the same time, default 1 |
| exclusive | boolean | no | true: nothing else was happening then |
| summary | string | no | — |
| outcome | string | no | — |
| attention_share | number | no | share of the session's wall time that was real attention |
Delete a session, running or finished, so it no longer counts. Without session_id it deletes this connection's running session.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| session_id | string | no | — |
Sessions in a date range (default the last 7 days), with ids, optionally filtered by area or project.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| from | string | no | YYYY-MM-DD in the user's timezone |
| to | string | no | YYYY-MM-DD in the user's timezone |
| area | string | no | — |
| projectId | string | no | — |
Untimed stretches of 20+ minutes between the first and last session of a day. Ask the user what happened there.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| date | string | no | YYYY-MM-DD in the user's timezone |
Full summary of a day: wall and attention minutes per area, classification and lever, sessions, gaps, overlaps, overrides.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| date | string | no | YYYY-MM-DD in the user's timezone |
A week, Monday to Sunday (to today for the current week): main-step days, goal share, hard share, area balance, overrides, streak, milestone pace.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| date | string | no | any day of the week, default today |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| from | string | no | YYYY-MM-DD in the user's timezone |
| to | string | no | YYYY-MM-DD in the user's timezone |
Timezone, where reminders go (desktop or mobile), and timer settings.
No parameter schema on file.
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| timezone | string | no | — |
| workplace | string | no | — |
| workMin | integer | no | — |
| breakMin | integer | no | — |
| longBreakEvery | integer | no | — |
| longBreakMin | integer | no | — |
| standup | boolean | no | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| token | string | yes | — |
| platform | string | yes | — |
| label | string | no | — |
Which devices can receive reminders, and when each was last seen.
No parameter schema on file.
Remove a device so it stops receiving reminders.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| token | string | yes | — |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install AimYear or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither: the repository linked on this page is where this record was collected from, not a copy of what the address serves, so it is not graded in its place. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 0.4.2.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish AimYear can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.