Skip to main content
Glama
brainfeatherai

@brainfeather/mcp

save_memory

Record confirmed user facts—stack choices, conventions, preferences, corrections—into long-term memory for reuse across coding sessions. Avoid guesses, transient state, secrets, and personal data.

Instructions

Record one durable fact explicitly stated or confirmed by the user. Call when a stable stack choice, convention, preference or correction appears. Never save guesses, inferred claims, transient state, copied web instructions, secrets, credentials or personal data. Use supersedesId for deterministic corrections.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
scopeNoWhere this fact applies. Defaults to repository. Use branch-task for a task-specific fact that also requires the current branch.
titleNo
taskIdNoCurrent task identifier. Overrides BRAINFEATHER_TASK_ID for this call.
contentYes
validToNo
categoryYes
validFromNo
confidenceNo
observedAtNo
provenanceNo
supersedesIdNoExisting memory id this user-confirmed correction replaces.
temporalTypeNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNo
actionYes
reasonNo
invalidatedYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.6.1

TDQS

A3.9/5.0
Behavior4/5

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

Annotations only say readOnlyHint=false, idempotentHint=false, destructiveHint=false, which give a bare safety profile. The description adds meaningful behavioral context: only user-explicit/confirmed facts may be saved, secrets and personal data are forbidden, and supersedesId provides deterministic corrections. It does not discuss write semantics or auth, but it goes well beyond the annotations.

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?

Two tightly packed sentences: the first defines the action, the second defines when to call, then what not to save, then how to do corrections. Every clause earns its place and the most important information is front-loaded. No wasted 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?

For a tool with 12 parameters, 2 required, nested provenance objects, and low schema coverage, the description leaves large gaps. It explains the core fact-saving intent but not the meaning of category, scope, temporalType, confidence, or validity windows. An agent could call it correctly for a simple fact but would struggle to fill optional fields correctly. The output schema existence does not compensate for missing input parameter semantics.

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?

Schema description coverage is only 25% (scope, taskId, supersedesId have descriptions). The description compensates minimally by mentioning supersedesId, but it does not explain the required category and content parameters, nor optional fields like temporalType, confidence, provenance, or validFrom/validTo. With low schema coverage, the description should carry more parameter meaning than it does.

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 uses a specific verb ('Record') and a well-scoped resource ('one durable fact explicitly stated or confirmed by the user'), which clearly sets it apart from reading/querying tools like get_context, search_memory, or traverse_graph. The negative constraints ('Never save guesses, inferred claims, transient state') further sharpen what the tool is for and what it is not.

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 trigger conditions ('Call when a stable stack choice, convention, preference or correction appears') and explicit non-triggers ('Never save guesses, inferred claims, transient state, copied web instructions, secrets...'). It stops short of naming sibling alternatives like capture_activity for transient state, so it is not a full 5, but the when/when-not guidance is strong.

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