Skip to main content
Glama

Write a journal entry or check-in

goalslot_write_journal
Idempotent

Save a journal entry and daily check-in for a specific date, with options to append or replace existing content. Supports mood, energy, and focus ratings and markdown formatting.

Instructions

WRITES. Saves the user's journal entry and daily check-in for one date. Both are upserts keyed by date. IMPORTANT: mode "replace" (the default) REPLACES that day's whole journal body. Use mode "append" to add to what is already there. If the day may already have content and the user did not ask you to overwrite it, append. content is markdown and is converted to the HTML the GoalSlot editor stores. Write in the user's voice, using their words, not a summary of them. focus, worked and blocked are part of the check-in, and the check-in requires mood, energy and focus together. Supplying only some of the three is rejected rather than guessed at. Never invent a mood, an energy level or a reflection the user did not express.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateYesWhich day this entry belongs to. Calendar date as YYYY-MM-DD, for example 2026-08-25, interpreted in the user's timezone (get_context.timezone). Never include a time or a Z suffix. Use get_context.today rather than assuming what today is.
modeNo"replace" overwrites the day's existing body, "append" adds to it. Defaults to replace, so pass append when in doubt.
moodNo1 to 5, where 1 is worst and 5 is best.
focusNo1 to 5. Check-in only, and it requires mood and energy to be sent as well.
energyNo1 to 5, where 1 is drained and 5 is energised.
workedNoCheck-in field: what went well. Requires mood, energy and focus.
blockedNoCheck-in field: what got in the way. Requires mood, energy and focus.
contentNoThe journal body, in markdown. Headings, bullets, bold, italic and inline code survive the round trip.
Behavior1/5

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

The description is rich in behavioral detail, but it directly contradicts the annotations: it warns that mode 'replace' REPLACES that day's whole journal body, while annotations declare destructiveHint=false. Additionally, 'append' mode is not idempotent, conflicting with idempotentHint=true. This is a clear annotation contradiction, so the score must be 1.

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

Conciseness4/5

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

The description is longer than typical but nearly every sentence earns its place by conveying a non-obvious constraint or warning. The 'WRITES.' opener is slightly redundant with 'Saves', but the information is front-loaded and well organized with an 'IMPORTANT' flag.

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

Completeness4/5

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

Given the complexity of this write tool, the description covers the critical input semantics, mode selection, check-in validation, and tone guidance. The main gap is that no output schema exists and the description does not state what the tool returns on success or failure, leaving that to runtime inference.

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

Parameters5/5

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

Although schema coverage is 100%, the description adds substantial meaning beyond the schema: it explains the default replace behavior and when to append, warns that partial check-in fields are rejected, notes markdown conversion to HTML, and instructs the agent to write in the user's voice. This goes well beyond the parameter types and formats in the schema.

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 opens with a clear action verb ('Saves') and names the resource ('user's journal entry and daily check-in for one date'). It also distinguishes this tool from read-only siblings like goalslot_get_journal by emphasizing the write/upsert behavior and the replace/append modes.

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

Usage Guidelines4/5

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

The description gives explicit situational guidance: use 'append' when the day may already have content and the user did not ask to overwrite, and notes that partial check-in data will be rejected. It does not explicitly name alternative sibling tools, but the write-vs-read distinction and the append/replace rule provide strong usage direction.

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/ZeeshanAdilButt/goalslot-mcp'

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