basic-memory
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": true
} |
| resources | {
"subscribe": false,
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| bm_contextA | Follow the Basic Memory knowledge graph from a note: the note, its observations, and the notes its relations reach, up to |
| bm_deleteA | Delete a Basic Memory note ( |
| bm_editA | Change part of an existing Basic Memory note. |
| bm_findA | Find files in a Basic Memory project, recursively. With |
| bm_listA | List one folder of a Basic Memory project: its subfolders, then its files with title, date and id. |
| bm_manA | Read the Basic Memory manual. With no arguments, the index of every page. |
| bm_moveA | Move or rename a Basic Memory note ( |
| bm_schemaA | Basic Memory note schemas (Picoschema). |
| bm_projectB | Basic Memory projects. |
| bm_searchA | Search a Basic Memory project, ranked by relevance. |
| bm_readA | Read a Basic Memory note or file by path, permalink, memory:// URL or exact title. Slice a long note with |
| bm_writeA | Create or replace a Basic Memory note. Give a file path as |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| continue_conversation | Continue a previous conversation |
| getting_started | Introduce Basic Memory and help the user create their first note |
| recent_activity | Get recent activity from the given or configured default project. Discover projects first when neither resolves. |
| search_knowledge_base | Search across all content in basic-memory |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| ai assistant guide | Bootstrap an AI assistant on Basic Memory and explain how to fetch current documentation |
| manual | Index 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
Scored across 12 tools
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.
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.
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.
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.