Skip to main content
Glama

Projects

bm_project

List, create, and review Basic Memory projects to manage note folders, set a default workspace, and track recent changes in a selected project.

Instructions

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

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "command": "<command>"
    },
    "name": "bm_project"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameNoFor create: the new project's name.
pageNoPage number.
pathNoFor create: the folder that holds the project's notes.
itemsNoWhat to return: notes, observations, relations, or a mix. Default: notes.
sinceNoHow far back to look: '7d', '24h', '2 days ago', 'last week', or a date. Windows shorter than one day are widened to one day.7d
commandYesWhat to do.
projectNoProject name, 'workspace/project', or external id. Required for one-project operations; search may instead use `projects` or `all_projects=true`. Project discovery needs no scope.
page_sizeNoResults per page (1-100).
workspaceNoIn Cloud: the workspace slug, name or id that holds the project.
set_defaultNoFor create: make the new project the default.
output_formatNotext

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / project / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / project / description
      Previous value: -"Project name, 'workspace/project', or project external id. Omit to use the default project."New value: +"Project name, 'workspace/project', or external id. Required for one-project operations; search may instead use `projects` or `all_projects=true`. Project discovery needs no scope."
  2. Addedv0.24.1

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare non-readOnly, non-destructive, non-idempotent, closed-world, so the safety profile is set. The description adds that `list` groups by workspace and that `recent` requires a project scope, but says nothing about what `create` actually does on disk (folder creation, failure modes, whether it overwrites), which is the one mutating path and the main behavioral risk.

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?

A single dense sentence that front-loads the resource and then walks the commands in order with their parameters. No filler, though the heavy parenthetical nesting makes it slightly harder to scan than a short bulleted form would be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 11 parameters, an output schema, and annotations present, the description covers the command-to-parameter mapping adequately. It leaves gaps on what `create` produces, how errors surface, and why an agent would choose this over bm_list/bm_search for project awareness, which matter given three divergent modes behind one tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 91%, so individual parameters are already well documented, and the description largely restates the schema's per-command mapping (name/path/set_default/workspace for create, since/items/paging for recent). It does clarify which parameters group together per command, a mild add over the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource (Basic Memory projects) and enumerates the three distinct operations (list, create, recent) with the parameters each consumes, so an agent can map intent to command. It does not explicitly contrast with siblings such as bm_list or bm_search, which handle notes rather than project administration, so it falls short of 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"recent (what changed lately in the required `project`)" implies when to pick that command, and the create/list breakdown hints at contexts, but there is no explicit statement of when to use this tool instead of bm_list, bm_read, or bm_search, nor any exclusions. Usage must be inferred from the command names.

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