Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": true
}
resources
{
  "subscribe": false,
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
bm_contextA

Follow the Basic Memory knowledge graph from a note: the note, its observations, and the notes its relations reach, up to depth hops (1-5). identifier is a path, permalink, memory:// URL, or a pattern such as 'specs/*'. since limits related results to recent changes. compact returns the graph without note bodies; read chosen notes with bm_read.

bm_deleteA

Delete a Basic Memory note (identifier) or a directory (path). A directory delete removes every file under it and needs recursive=true. Pass expected_checksum (from bm_read) to delete a note only if it is still the revision you read. A note that does not exist is an error. This cannot be undone.

bm_editA

Change part of an existing Basic Memory note. command: append or prepend content; find_replace find_text with content (exact text, which must occur expected_replacements times, default 1); replace_section, insert_before_section or insert_after_section for a section heading ('Decisions', 'Auth/Decisions', 'Decisions[1]', as bm_read takes it); set_metadata to merge metadata into the frontmatter without touching the body. metadata also merges with any other command. Pass expected_checksum (from bm_read) to edit only the revision you read. A missing note is an error; create notes with bm_write.

bm_findA

Find files in a Basic Memory project, recursively. With name, match file names against a glob ('meeting'). With filters, match notes by frontmatter, e.g. {"status": "active"} or {"priority": {"$in": ["high"]}}, and with fields return just those frontmatter values per note. path limits the search to a folder. For ranked text or meaning search, use bm_search.

bm_listA

List one folder of a Basic Memory project: its subfolders, then its files with title, date and id. project is required; '/' lists its root. Discover projects with bm_project(command='list'). Filter files with glob and order them with sort. For a recursive search by name or frontmatter, use bm_find.

bm_manA

Read the Basic Memory manual. With no arguments, the index of every page. page reads one page: 'bm-search(3)' for an MCP tool, 'grep(1)' for a shell command; a tool name such as 'bm_search' works too. query lists the pages that mention every word given, like man -k.

bm_moveA

Move or rename a Basic Memory note (identifier) or a directory (path) within its project. destination is the new project-relative path; ending it with '/' moves into that folder under the current name ('archive/'). A note keeps its file extension ('.markdown' may become '.md'). Pass expected_checksum (from bm_read) to move a note only if it is still the revision you read. Moving into another project is refused: bm_read, bm_write there, then bm_delete.

bm_schemaA

Basic Memory note schemas (Picoschema). command: validate notes against their schema (one note_type, one note by identifier, or every type that has a schema); infer a schema from the notes of a note_type; diff a note_type's notes against its schema to find drift. A schema is a note with type: schema whose entity field names the note type it describes.

bm_projectB

Basic Memory projects. command: list (projects, grouped by workspace); create (name, path, optional set_default, workspace); recent (what changed lately in the required project: since, items, paging).

bm_searchA

Search a Basic Memory project, ranked by relevance. query supports quoted phrases, AND/OR/NOT and tag:name. mode picks hybrid (the default when semantic search is available), text, semantic, title or permalink (globs with *). Narrow with filters (frontmatter), note_types, items (notes, observations, relations) and since. lines returns the matching lines of each hit with that many lines of context, like grep. path limits the search to a folder; identifier searches one note. Scope every search with project (one project), projects (a list), or all_projects=true. Read full notes with bm_read.

bm_readA

Read a Basic Memory note or file by path, permalink, memory:// URL or exact title. Slice a long note with section (a heading), start_line/end_line or max_tokens; line numbers count the whole file, frontmatter included. A text file such as .txt takes start_line/end_line too. include_content=false returns only the metadata and the checksum that bm_write and bm_edit take as expected_checksum. Images come back as images and other binary files as documents. A missing note is an error: find notes with bm_search.

bm_writeA

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]]').

Prompts

Interactive templates invoked by user choice

NameDescription
continue_conversationContinue a previous conversation
getting_startedIntroduce Basic Memory and help the user create their first note
recent_activityGet recent activity from the given or configured default project. Discover projects first when neither resolves.
search_knowledge_baseSearch across all content in basic-memory

Resources

Contextual data attached and managed by the client

NameDescription
ai assistant guideBootstrap an AI assistant on Basic Memory and explain how to fetch current documentation
manualIndex of the Basic Memory manual: every page with a one-line summary.
apropos(1)search the Basic Memory manual
cat(1)print a note's content from the shell
find(1)recursively list files, or query notes by frontmatter metadata
grep(1)search note content from the shell
head(1)print the first lines of a note
ls(1)list one directory level of a project
okf-check(1)check OKF v0.2 structural conformance without a project database
okf-export(1)export a local project as an OKF v0.2-compatible bundle
tree(1)show a directory hierarchy
bm-agent(3)run Basic Memory agents, follow their runs, and review what they changed (hosted server only)
bm-context(3)follow the knowledge graph from a note
bm-delete(3)delete a note or a directory
bm-edit(3)change part of an existing note
bm-find(3)find files by name or notes by frontmatter, recursively
bm-list(3)list one folder: its subfolders, then its files
bm-log(3)read the workspace log of who changed which notes, folders and projects (hosted server only)
bm-man(3)read the Basic Memory manual
bm-move(3)move or rename a note or a directory within its project
bm-open(3)open the Basic Memory app at a notes, folders, note, search or graph view (hosted server only)
bm-project(3)list, create, and show recent activity in projects
bm-project-delete(3)remove a project
bm-read(3)read a note or file by path, permalink, memory:// URL or title
bm-review(3)comment on, suggest changes to, reply to, resolve, accept or reject review items on a note (hosted server only)
bm-schema(3)validate notes against schemas, infer schemas, find drift
bm-search(3)search a project's notes, ranked by relevance
bm-write(3)create or replace a note
chatgpt-fetch(3)OpenAI-actions-compatible document fetch adapter
chatgpt-search(3)OpenAI-actions-compatible search adapter
comark(7)write ::bm-* components that render as charts, tables, boards, and live views
tools-migration(7)map pre-1.0 MCP tools and bm tool commands to their 1.0 replacements

TDQS

A4/5.0

Scored across 12 tools

Disambiguation4/5

There is real overlap among three retrieval tools (bm_find, bm_list, bm_search), but the descriptions explicitly route the agent: bm_list for one folder, bm_find for recursive name/frontmatter matching, bm_search for ranked text/semantic search. Similarly bm_read (one note body) is distinguished from bm_context (graph traversal) and bm_write (full replace) from bm_edit (partial change). Only a small chance of misselection remains for an agent skimming names.

Naming Consistency4/5

All 12 tools follow a single predictable bm_<word> snake_case pattern with no style mixing. Most suffixes are verbs (find, list, read, write, edit, move, delete, search), but a few are nouns/commands (bm_context, bm_schema, bm_project, bm_man), which is a minor deviation rather than an inconsistency.

Tool Count5/5

Twelve tools sit comfortably in the well-scoped range and each maps to a distinct capability: directory listing, find, search, read, write, edit, move, delete, graph context, schema ops, project ops, and docs. None look like padding, and the surface is not so thin that agents would have to chain workarounds.

Completeness4/5

Note lifecycle is fully covered (create/replace, read, partial edit, move, delete, plus graph context and search), and bm_schema and bm_project cover schema and project management. Minor gaps: bm_project only supports list/create/recent (no rename or delete of projects), and there is no copy/duplicate operation, though the description notes the read+write+delete workaround.

Maintenance

ActivityActive
ResponsivenessResponsive