Skip to main content
Glama

Write note

bm_write
Destructive

Creates or replaces a Basic Memory note as a Markdown file, addressed by file path or title and directory. Guards existing notes against accidental overwrites unless explicitly forced or checksum-matched.

Instructions

Create or replace a Basic Memory note. Give a file path as identifier ('notes/plan.md'), or title plus directory. With a path the file lands exactly there and the title comes from the content's frontmatter, then title, then the file name. An existing note is an error unless overwrite=true; pass expected_checksum (from bm_read) to replace only the revision you read. To change part of a note use bm_edit. Content may hold frontmatter, observations ('- [category] fact #tag') and relations ('- relation_type [[Other Note]]').

Input Schema

NameRequiredDescriptionDefault
tagsNoTags, as a list or 'a,b,c'.
titleNoNote title. With `directory`, it also names the file. With `identifier`, it is used when the content has no frontmatter title.
contentYesThe note's Markdown. Saved as given; it may start with frontmatter.
projectNoProject name, 'workspace/project', or project external id. Omit to use the default project.
metadataNoExtra frontmatter fields, merged into the note's frontmatter.
directoryNoFolder for a note addressed by title, e.g. 'meetings'; '/' is the root.
note_typeNoFrontmatter `type:`. A `type:` in the content wins.note
overwriteNoReplace a note that already exists. Default: the write_note_overwrite_default setting (false unless changed).
identifierNoFile path for the note, e.g. 'notes/plan.md'; '.md' is added when missing. '<project>/path' writes into another project. Use instead of title + directory.
output_formatNotext
expected_checksumNoReplace the note only while it is still this revision (the checksum from bm_read). Implies overwrite=true.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.24.1

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare destructive=true and non-idempotent, but the description adds important behavior: an existing note is an error unless overwrite=true, and expected_checksum allows replacing only the revision read. It also explains title fallback behavior, which materially improves safe invocation.

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 dense but front-loaded, starting with the core create-or-replace behavior before addressing modes, overwrite rules, and content format. Every sentence contributes operational guidance without repetition.

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?

For an 11-parameter write tool with rich annotations, high schema coverage, and an output schema, the description supplies the critical missing behavioral context around addressing, conflict handling, and safe replacement. No essential invocation detail is missing.

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 91%, so the schema does most parameter documentation. The description still adds meaning beyond the schema by clarifying identifier path behavior, title precedence, overwrite defaults, and how expected_checksum relates to bm_read.

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 specific verb and resource: 'Create or replace a Basic Memory note.' It also distinguishes the tool from bm_edit for partial changes and explains the two addressing modes, so an agent can identify its role without inspecting the schema.

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?

It clearly states when to use identifier versus title plus directory, when overwrite is required, and that partial edits belong to bm_edit. It stops short of broader when-not guidance against other siblings, but the critical usage conditions are explicit.

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