Skip to main content
Glama
aic0t

AI Coach MCP Server

by aic0t

Write an AI Coach memo

write_ai_coach_note
Idempotent

Create, replace, or append Markdown memos in AI Coach, organizing them into groups. Uses conflict detection to avoid overwriting user edits.

Instructions

Create a memo in AI Coach, replace one, or append to one. The memo is a plain Markdown file on the user's own machine and shows up in the AI Coach memo list immediately. Pass 'group' when creating to file it under a group (a folder); the group is created if it does not exist. Use mode 'create' for a new memo, 'replace' to rewrite an existing one and 'append' to add to the end (also how you write a body larger than the per-call limit). When changing an existing memo, first read it and pass its modifiedAt as expectedModifiedAt so a memo the user edited meanwhile is not overwritten. AI Coach asks the user to confirm the change on their screen, so the call can take a few seconds; if it comes back with note_confirmation_denied, the user declined it.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNocreate (a new memo, the default) / replace (overwrite the whole body) / append (add to the end). For a body over the size limit, create it first and then append the rest.
groupNoGroup to create the memo in. It is created if it does not exist. Ungrouped when omitted.
titleNoFile name to use for create. Derived from the first line of the body when omitted.
localeNoDisplay language hint (BCP 47). The dashboard view passes hostContext.locale through unchanged.
noteIdNoTarget of replace / append. It cannot be given for create.
contentYesMarkdown body (up to 32768 bytes per call).
idempotencyKeyNoKey that keeps a resent write from being applied twice. The server generates one when omitted.
expectedModifiedAtNoThe modifiedAt returned by read. When given, the write stops with note_conflict instead of overwriting if the user or another tool changed the memo first.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
hitsNo
noteNo
errorNo
notesNo
totalNo
groupsNo
offsetNo
deletedNo
writtenNo
updatedAtYes
connectionYes
folderNameNo
protocolVersionYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses all critical behavioral traits beyond the annotations: the write can take seconds due to user confirmation, it may return note_confirmation_denied, it handles conflicts via expectedModifiedAt, and it supports idempotency via idempotencyKey. It aligns with idempotentHint=true and readOnlyHint=false without contradiction. This is exemplary disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is information-dense but well-organized. It starts with the core purpose, then groups related details (modes, group, conflict handling, confirmation). Every sentence earns its place; nothing is redundant or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the tool's complexity (8 params, 3 modes, conflict handling), the description covers all important aspects: mode selection, group behavior, conflict avoidance, idempotency, and the user-confirmation side effect. The output schema exists to cover return values, so nothing essential is missing here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value by explaining how mode interacts with noteId and group, the meaning of expectedModifiedAt for conflict prevention, and the idempotencyKey's purpose. It clarifies the workflow that ties parameters together, lifting it above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action set (create, replace, append) on a specific resource (AI Coach memo), and explicitly distinguishes it from sibling tools like read, delete, and list. It also clarifies the memo is a Markdown file on the user's machine, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit guidance on when to use each mode (create, replace, append), including the strategy for large bodies. It also explains the conditional use of expectedModifiedAt for safe updates and warns about the user confirmation delay and note_confirmation_denied result. This is actionable and leaves no ambiguity about tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aic0t/ai-coach-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server