Skip to main content
Glama

Dear Agent

npm version license: MIT MCP PRs welcome

Your AI agent keeps your diary for you. You never open an app or write a word.

You already talk to an AI agent all day. Dear Agent lets that agent quietly keep your personal life journal — filing what you tell it, the photos you send, and the voice notes you record, neatly by date. No app to open. No blank page to face. No habit to build. You just live your life and mention what matters; your agent does the writing.

It is a single, local-first MCP server plus a skill, so it drops into any agent that speaks MCP: Claude Code, Claude Desktop, Cursor, OpenClaw, and more.

Why it is different

  • You do not write it. Your agent does. Every other journal — Day One, Obsidian, Notion, a paper notebook — needs you to open it and type. Dear Agent flips that: you talk, it records.

  • Cross-agent. One diary, readable and writable by whatever agent you use.

  • Text, photos, and voice. Send a picture or a voice note and it is filed under that day.

  • Local-first and yours. Plain markdown on your own disk. No account, no cloud, no lock-in. Delete the folder and it is gone.

  • It remembers with you. "On this day" resurfaces past entries; a weekly digest lets your agent write you a short reflection.

Related MCP server: MCP Session Memory Bridge

Install

npm install -g dear-agent

Or run it straight from npx (no install):

npx dear-agent

Claude Code / Claude Desktop

claude mcp add dear-agent -- npx -y dear-agent

Or add to your MCP config:

{
  "mcpServers": {
    "dear-agent": {
      "command": "npx",
      "args": ["-y", "dear-agent"]
    }
  }
}

Cursor / OpenClaw / other MCP clients

Point the client at the dear-agent command (stdio transport). Set DEAR_AGENT_DIR if you want the diary somewhere other than ~/.dear-agent.

Then drop SKILL.md into your agent's skills so it knows to keep your diary proactively.

How you use it

You never call tools yourself. You just talk to your agent:

"Remember that I closed the apartment lease today, felt huge relief." "Save this photo for today — first dinner in the new place." (send the photo) "What was I doing a year ago today?" "Give me a recap of this week."

Your agent calls the right tool and keeps the diary current.

It remembers you, and it talks back

Dear Agent is not just storage. Two capabilities turn it into a living memory of your life:

  • recall — your agent can ask the diary "what do you know about this person — their people, patterns, open commitments?" and get a synthesized portrait. Your agent finally remembers your life, so every conversation is grounded in who you actually are.

  • reflect — a proactive loop that surfaces patterns, progress, open loops, and on this day memories, so your diary reflects your life back to you instead of sitting in a folder.

Obsidian stores your notes. Dear Agent remembers your life and talks back. And because it never leaves your machine, it's the one place you can be completely honest.

Works with any agent, harness, or interface

Interface

How

MCP tools

11 tools (below) over stdio.

MCP prompts

daily_checkin, weekly_reflection — surface as slash-commands.

MCP resources

diary://today, diary://index.

Skill

SKILL.md for skill-based harnesses (Claude Code, OpenClaw).

CLI

dear-agent add "...", recall, reflect, … — for any agent that can run a shell.

CLI examples:

dear-agent add "Closed the interview, felt good." --mood hopeful --tags job,win
dear-agent recall Sarah
dear-agent reflect week
dear-agent on-this-day

Tools

Tool

What it does

add_entry

Save a text moment (optional mood, tags) for a day.

add_photo

Save a photo for a day (local path or base64), with a caption.

add_voice_note

Save a voice note for a day, with an optional transcript.

get_day

Read one day's full entry.

get_range

Read entries between two dates.

search

Find days matching a word or phrase.

recall

What the diary knows about a person/topic, or a whole-life profile digest.

reflect

Patterns, progress, open loops, and on-this-day, for a proactive check-in.

on_this_day

Resurface this same calendar date from past years.

weekly_digest

Pull the last 7 days for a reflection.

list_days

List every day on record.

Dates accept today, yesterday, or YYYY-MM-DD.

Where your diary lives

~/.dear-agent/
  entries/
    2026-06-29.md
  media/
    2026-06-29/
      first-dinner.jpg
      morning-thought.ogg

Set DEAR_AGENT_DIR to choose a different location.

Contributing

Issues and pull requests are welcome. Dear Agent is intentionally small and dependency-light — keep changes focused, keep storage as plain files the user owns, and keep everything local-first and private. See ROADMAP.md for where it is headed.

License

MIT © BitmapAsset. Free for anyone, anywhere, in any agent.

Available Tools

11 tools
add_entryA

Record a text moment in the user's diary. Capture whenever they share something worth remembering — an event, feeling, win, or decision. The user never types into an app; you keep the diary for them.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoDay: "today" (default), "yesterday", or YYYY-MM-DD.
moodNoOptional one-word mood.
tagsNoOptional short tags, e.g. work, family, health.
textYesWhat happened, in the user's own meaning, first person where it fits.

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It accurately describes a write operation and clarifies the agent's role. It does not mention idempotency or side effects, but the operation is straightforward with no contradictions.

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?

Three concise sentences, front-loaded with the primary action, followed by examples and role clarification. No wasted words.

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 4 parameters, no output schema, and the listed siblings, the description covers purpose, usage, and role adequately. It could mention the return value or success indication, but it's not required for an add operation.

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 baseline is 3. The description adds value by explaining that the user never types and the agent provides the text in first person, enhancing the 'text' parameter's semantics. Other parameters aren't elaborated, but that's acceptable given schema detail.

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 clearly states the tool records a text moment in the user's diary, using the verb 'record' and specifying the resource as 'text moment'. It distinguishes from siblings by focusing on text and explicitly noting the agent keeps the diary for the user.

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 says to capture 'whenever they share something worth remembering', providing clear usage context. However, it does not explicitly state when not to use it or compare to siblings like add_photo or add_voice_note, leaving some ambiguity.

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

add_photoB

Save a photo into the user's diary for a day (local path or base64), with an optional caption.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
dateNoDay: "today" (default), "yesterday", or YYYY-MM-DD.
pathNo
captionNo
filenameNo

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It only says 'save' indicating a write operation, but does not mention permissions, idempotency, potential overwriting, or whether the date must already exist. This is insufficient for an unannotated mutation tool.

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 a single sentence of 16 words, efficiently conveying the core action. It could benefit from slightly more structure but is appropriately sized.

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

Completeness2/5

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

With 5 parameters, no output schema, and low schema coverage, the description falls short. It does not explain how to specify the photo (data vs path), the role of 'filename', or what the tool returns. A more complete description is needed for effective invocation.

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

Parameters3/5

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

Schema coverage is only 20% (only 'date' has a description). The description adds value by explaining 'data' and 'path' are for local path or base64 input, and that 'caption' is optional. However, it does not clarify the relationship between 'data' and 'path' (e.g., are they alternatives?), nor the purpose of 'filename'.

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 clearly states the verb 'save' and resource 'photo into the user's diary for a day', specifying two possible input formats (local path or base64) and an optional caption. This effectively distinguishes it from sibling tools like add_entry and add_voice_note.

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

Usage Guidelines3/5

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

The description implies the tool is for adding a photo to a diary entry, providing some context on when to use it. However, it lacks explicit guidance on when not to use it or alternatives, leaving the agent to infer from context.

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

add_voice_noteB

Save a voice note into the user's diary for a day (local path or base64), with an optional transcript.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
dateNoDay: "today" (default), "yesterday", or YYYY-MM-DD.
pathNo
filenameNo
transcriptNo

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It states 'save' implying a write operation but does not disclose authentication needs, size limits, overwrite behavior, or return values. The optional transcript is noted but key behavioral details are missing.

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?

Single sentence that efficiently conveys the core purpose and notable options without superfluous words.

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

Completeness2/5

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

Given 5 optional parameters and no output schema, the description lacks critical context: what the tool returns, error scenarios, and behavior when both 'data' and 'path' are provided. The sibling tools suggest a diary context but the description does not fully equip an agent to use this tool reliably.

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

Parameters3/5

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

Schema coverage is low (only 'date' has a description). The description adds that 'data' is base64, 'path' is a local path, and 'transcript' is optional, which provides some meaning beyond the schema. However, 'filename' remains unexplained.

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 clearly states the action ('Save a voice note'), the target resource ('user's diary for a day'), and the format options ('local path or base64, with an optional transcript'). It distinguishes from siblings like add_entry and add_photo.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. No prerequisites, exclusions, or contextual hints beyond the basic action.

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

get_dayA

Read back one day's full diary entry, including any photos and voice notes filed that day.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoDay: "today" (default), "yesterday", or YYYY-MM-DD.

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided; description carries burden. It discloses that tool returns full diary entry with media, implying read-only behavior. However, it does not mention permissions, side effects, or return format beyond a vague 'full diary entry'.

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?

Single sentence of 15 words, front-loading core purpose with no filler. Every word adds value.

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 no output schema, description covers what the return includes (text entry plus photos/voice notes). For a single-day retrieval tool, this is sufficient, though more detail on structure would help.

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

Parameters3/5

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

Schema description coverage is 100% for the single parameter (date), providing valid values. Description adds no extra meaning to the parameter beyond referencing 'one day's full entry'.

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?

Description clearly states verb 'read back' and resource 'one day's full diary entry', including photos and voice notes. Distinguishes from sibling tools like get_range (multiple days) and add_entry (writing).

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

Usage Guidelines3/5

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

Description implies single-day use but does not explicitly state when to use this tool versus alternatives (e.g., get_range for multiple days, on_this_day for historical dates). No when-not-to-use guidance.

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

get_rangeA

Read diary entries between two dates (inclusive).

ParametersJSON Schema
NameRequiredDescriptionDefault
endYes
startYes

TDQS

A3.5/5.0
Behavior3/5

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

States it is a read operation, but lacks details on ordering, pagination, limits, or response format. Without annotations, minimal transparency is provided.

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?

Single sentence, no waste, front-loaded with action and scope.

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

Completeness3/5

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

Adequate for a simple read operation, but missing parameter format and output description; could be more complete for reliable agent use.

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

Parameters3/5

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

Adds meaning that parameters are dates and inclusive, but does not specify date format (e.g., YYYY-MM-DD), which is needed for correct invocation.

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 clearly states the tool reads diary entries between two inclusive dates, which distinguishes it from siblings like get_day (single day) and list_days (list of days).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like get_day or search; no exclusions or context provided.

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

list_daysA

List every day that has a diary entry, oldest to newest.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

Discloses ordering and inclusion criteria (days with diary entries), but no annotations exist to provide additional behavioral context (e.g., authentication, pagination). Adequate for a simple list but could mention limits or output format.

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?

Single sentence, zero waste, front-loaded with essential information. Every word earns its place.

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

Completeness3/5

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

Given no output schema, the description should clarify what is returned (e.g., date strings). It adequately covers input and behavior but omits output details. Sufficient for a simple list but could be more complete.

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?

No parameters exist, so schema coverage is 100% by default. The description doesn't need to add parameter info, and it succinctly explains what the tool does without conflicting with 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?

Clearly states verb 'list' and resource 'every day that has a diary entry' with ordering 'oldest to newest'. Distinguishes from siblings like get_day (single day) and get_range (range of days).

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like get_range or search. The description implies basic listing but doesn't mention exclusions or prerequisites.

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

on_this_dayB

Resurface entries from this same calendar date in past years (true anniversaries). The memory people fall in love with.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoDay: "today" (default), "yesterday", or YYYY-MM-DD.

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description bears full burden. It fails to disclose key behaviors: what is returned (entries? count?), whether current year entries are included, authentication needs, or side effects. The poetic second sentence adds no behavioral info.

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 first sentence is clear and concise. The second sentence is poetic and does not add practical value; it could be replaced with more useful information. Overall, it is acceptably concise.

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

Completeness2/5

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

The tool is simple (one parameter, no output schema), but the description omits output format and fails to distinguish from 'get_day' (which also retrieves entries for a date). Without annotations, more detail is needed for a retrieval tool.

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

Parameters3/5

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

Schema description coverage is 100% and the parameter description in the schema already covers 'today', 'yesterday', and YYYY-MM-DD. The tool description does not add meaning beyond what the schema provides, so baseline 3 is appropriate.

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 clearly states the specific action ('resurface entries') and resource ('same calendar date in past years'), and adds the poetic but distinct 'true anniversaries' phrase that distinguishes it from sibling tools like 'get_day' or 'search'.

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

Usage Guidelines3/5

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

The description implies usage context ('same calendar date in past years') but does not explicitly state when to use this tool versus alternatives like 'get_day' or 'range'. No exclusions or when-not-to-use guidance is provided.

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

recallB

Turn the diary into living memory of the person. With about, returns everything the diary knows about a person/place/topic across time. Without it, returns a profile digest (recurring people, themes, mood pattern, open commitments) for you to synthesize into who this person is. This is what makes Dear Agent a memory, not just a notebook.

ParametersJSON Schema
NameRequiredDescriptionDefault
aboutNoA person, place, project, or topic to recall. Omit for a whole-life profile digest.
limitNo

TDQS

B3.2/5.0
Behavior4/5

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

With no annotations, the description bears full burden. It discloses that recall returns either a comprehensive set of information about an entity or a profile digest with recurring people, themes, mood patterns, and open commitments. However, it does not explain the effect of the 'limit' parameter or any potential side effects.

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

Conciseness3/5

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

The description is three sentences, relatively concise, but the first sentence ('Turn the diary into living memory of the person') is poetic and does not convey precise tool behavior. It could be omitted without loss of clarity.

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

Completeness2/5

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

Given the absence of output schema and annotations, the description should cover output format and pagination. While it describes the two output modes, it omits details on how the 'limit' parameter affects results and the structure of returned data (e.g., text, JSON).

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

Parameters2/5

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

The schema already describes the 'about' parameter as 'A person, place, project, or topic to recall. Omit for a whole-life profile digest.' The description repeats this without adding new semantics. The 'limit' parameter lacks any description in both schema and tool description, leaving its purpose unclear.

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

Purpose4/5

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

The description clearly states the tool retrieves 'everything the diary knows about a person/place/topic across time' or a profile digest. While the opening line is metaphorical, the subsequent sentences provide a specific verb and resource, distinguishing it from siblings like get_day or search.

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

Usage Guidelines3/5

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

The description explains two usage modes (with or without the 'about' parameter) but does not explicitly compare to sibling tools or state when to prefer recall over search, reflect, or weekly_digest. The guidance is internal only.

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

reflectA

Get reflection material so you can proactively talk back to the user: patterns, progress, open loops, and on-this-day memories over the last week or month. Use for a daily check-in or weekly recap so the diary feels alive.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoDay: "today" (default), "yesterday", or YYYY-MM-DD.
periodNo

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It describes the output (patterns, progress, etc.) but does not disclose behavioral traits such as whether the tool is read-only, requires authentication, or has any side effects. The description is adequate but lacks full transparency.

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 two sentences, front-loaded with the purpose and followed by usage guidance. There is no redundancy or wasted words.

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?

The description explains the return content (patterns, progress, etc.) but does not specify format or structure. Given no output schema, this is acceptable. The tool has 2 optional parameters, and the description covers the key use cases. It lacks explicit differentiation from siblings but is sufficient for its simplicity.

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 description coverage is 50% (only 'end' is described). The description adds context by mentioning 'over the last week or month,' which explains the 'period' parameter implicitly. This adds meaning beyond the schema, compensating for the missing description 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 clearly states 'Get reflection material', specifying the verb and resource. It details the content: patterns, progress, open loops, and on-this-day memories. The scope 'over the last week or month' distinguishes it from sibling tools like weekly_digest and on_this_day.

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 explicitly says 'Use for a daily check-in or weekly recap so the diary feels alive', providing clear context for when to use the tool. However, it does not mention when not to use it or provide explicit alternatives to sibling tools.

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

weekly_digestB

Pull the last 7 days of entries so you can write the user a short weekly reflection.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoDay: "today" (default), "yesterday", or YYYY-MM-DD.

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only says 'Pull the last 7 days of entries.' It does not disclose whether this is read-only, if it requires authentication, or what side effects (if any) occur. For a data retrieval tool, more transparency is expected.

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 a single, clear sentence with no wasted words. It front-loads the action and purpose. However, it could be slightly expanded without losing conciseness.

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

Completeness2/5

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

The description lacks details about the return format, pagination, or any constraints (e.g., maximum entries). Without an output schema, more context is needed for an agent to correctly interpret the tool's output.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds no parameter details beyond what the schema provides (the 'end' parameter is not mentioned in the description). No added value.

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 clearly states it pulls the last 7 days of entries to write a weekly reflection. This distinguishes it from siblings like 'get_day' (single day) and 'get_range' (arbitrary range), making its specific purpose obvious.

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

Usage Guidelines3/5

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

The description implies usage for creating weekly reflections, but it does not specify when to avoid using it (e.g., if you need a different period), nor does it mention alternatives like 'get_range' for custom durations.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 11 tool updatesv0.2.3
    • First observedadd_entry
    • First observedadd_photo
    • First observedadd_voice_note
    • First observedget_day
    • First observedget_range
    • First observedlist_days
    • First observedon_this_day
    • First observedrecall
    • First observedreflect
    • First observedsearch
    • First observedweekly_digest

TDQS

A3.8/5.0
Disambiguation5/5

Each tool has a distinct purpose: adding different types of entries, reading entries in various ways, searching, and generating reflections. No two tools have overlapping functionality.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with lowercase and underscores (e.g., add_entry, get_day, list_days). The naming is predictable and uniform.

Tool Count5/5

11 tools is a well-scoped set for a diary/memory application, covering entry addition, retrieval, search, and insight generation without being excessive or sparse.

Completeness4/5

The tool set covers core diary operations (add, read, search, reflect) but lacks update/delete capabilities. However, the domain may be append-only, so this is a minor gap.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides tools for AI agents to manage long-term memories, daily notes, and TODO lists through a structured markdown file system. It enables context awareness by allowing agents to read, write, and search entries for persistent information storage.
    12
    MIT
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides cross-session memory for AI agents by maintaining a rolling 24-hour event stream and searchable daily archives to prevent context loss. It enables agents to record, query, and retrieve historical events and decisions through a structured markdown-based workspace.
    1
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Persistent activity journal for AI agents - enables logging and querying decisions, changes, errors, and observations across sessions.
    13
    1
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Persistent memory for AI agents enabling saving, searching, and managing knowledge across sessions with local markdown files.
    2
    -

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/BitmapAsset/dear-agent'

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