Skip to main content
Glama

palinode_save

Save important facts, decisions, insights, or project updates to a git-versioned memory for recall across sessions.

Instructions

Save a memory to Palinode. Use for important facts, decisions, insights, or project updates worth remembering across sessions. Provide either type (one of the enum values) or ps=true for the ProjectSnapshot shortcut — exactly one is required. If this call times out, the save may still have committed server-side: call palinode_search with a distinctive phrase from your content to confirm before retrying, so you don't create a duplicate entry.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
psNoShorthand for type=ProjectSnapshot — matches the CLI `--ps` flag and the `/ps` slash command. If true, `type` may be omitted (or set to ProjectSnapshot redundantly); other type values conflict and error.
coreNoIf true, this memory is always injected at session start (core memory).
slugNoOptional URL-safe filename slug (auto-generated if omitted)
typeNoMemory type. Required unless `ps=true` is given.
titleNoOptional human-readable title. Stored in frontmatter and used in list/search displays.
claimsNoClaim-level source anchors: list of {text, source_id, span:{quote, quote_hash}} bindings resolving each claim to the source span that justifies it. claim_id is derived on save; read back via palinode_blame with claims=true.
sourceNoSource surface that created this memory.
contentYesThe memory content to save (markdown supported)
projectNoProject slug shorthand — e.g. 'palinode' becomes entity 'project/palinode'. Pairs with `palinode_session_end`'s `project` field for consistent project tagging across save and session-end.
sourcesNoSource-citation anchors: list of {ref, quote, quote_hash} for passages this memory cites.
entitiesNoRelated entity refs e.g. ['person/alice', 'project/alpha']
metadataNoAdditional frontmatter fields to merge into the saved memory.
priorityNoHuman-assigned memory priority (1–5). Stored as `priority` frontmatter; missing means normal (3).
backed_byNoRefs (category/slug) that support/back this memory (evidence links).
epistemicNoEpistemic marker: 'fact' (observed/verified), 'inference' (derived, lower trust), 'open_question' (unresolved), or 'unverified' (asserted but not checked). Omit to leave the memory unmarked (no claim is made — not treated as fact).
confidenceNoConfidence in this memory's accuracy (0.0-1.0).
contradictsNoRefs (category/slug) this memory conflicts with; neither wins — surfaced for review.
external_refsNoSDLC object references such as github_pr or jira_issue.
update_policyNoSave behavior: append episodic memory or replace a living document.
Behavior4/5

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

Annotations already indicate non-read-only, non-idempotent, non-destructive. The description adds critical timeout behavior (save may commit despite timeout) and suggests confirmation steps, which is valuable beyond annotations.

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?

Single paragraph effectively front-loads purpose, then gives usage rule, then timeout behavior. Every sentence earns its place, though slightly longer than minimal.

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?

For a tool with 19 parameters, high schema coverage, and no output schema, the description adequately covers key constraints (type/ps exclusivity), timeout edge case, and links to related tools (palinode_search, palinode_blame). No major gaps.

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%, but the description enhances understanding by explaining mutual exclusivity of 'type' and 'ps', linking 'project' to 'palinode_session_end', and noting that 'claims' are read via 'palinode_blame'. Adds meaning beyond raw 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 'Save a memory to Palinode' with a specific verb and resource. It elaborates on use cases ('important facts, decisions, insights, or project updates'), distinguishing it from sibling tools like palinode_search or palinode_list.

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?

Explicitly instructs to provide either 'type' or 'ps=true', and advises on timeout handling by calling palinode_search to avoid duplicates. Lacks explicit when-not-to-use guidance, but the context is sufficient.

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/phasespace-labs/palinode'

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