Basic Memory
Reference

MCP Tools Reference

Current MCP tool reference for Basic Memory local and cloud usage.
This is a technical reference for developers and AI integrations. For a conceptual overview of what Basic Memory can do, see What is Basic Memory.

This page lists core Basic Memory MCP tools and their current parameters.

Project resolution order is: constrained project env -> explicit project parameter -> default_project fallback.

Common parameters

Most tools accept these optional parameters. They are not repeated in every table below.

ParameterTypeDefaultNotes
projectstringresolved via fallbackConstrained project env → explicit parameter → default_project config
workspacestringCloud workspace name or tenant ID
output_format"text" or "json""text"Machine-readable JSON output. build_context defaults to "json"; all other tools default to "text"

Knowledge tools

write_note

Create or update a markdown note.

ParameterTypeRequiredNotes
titlestringYesNote title
contentstringYesMarkdown body
directorystringYesRelative folder path
tagsliststring or stringNoComma-separated string accepted
note_typestringNoDefault note. Sets the type frontmatter field (e.g., person, meeting, decision)
metadataobjectNoExtra frontmatter fields merged into the note's YAML header
overwritebooleanNoDefault false. Must be true to replace an existing note. Without this, writing to an existing path returns an error. Set write_note_overwrite_default: true in config to change the default

The note_type parameter controls the type field in frontmatter, which is used for schema resolution and filtering. The metadata parameter accepts any key-value pairs that get written directly into the note's frontmatter — useful for custom fields like status, priority, or due_date.

read_note

Read note content by title/permalink/memory URL.

ParameterTypeRequiredNotes
identifierstringYesTitle, permalink, or memory://...
pageintegerNoPagination page number
page_sizeintegerNoResults per page
include_frontmatterbooleanNoDefault false. When true, includes YAML frontmatter in output

edit_note

Edit an existing note incrementally.

ParameterTypeRequiredNotes
identifierstringYesExact note identifier
operationstringYesappend, prepend, find_replace, replace_section, insert_before_section, insert_after_section
contentstringYesNew content
sectionstringConditionalRequired for replace_section, insert_before_section, insert_after_section
find_textstringConditionalRequired for find_replace
expected_replacementsintegerNoDefault 1

move_note

Move a note or directory.

ParameterTypeRequiredNotes
identifierstringYesNote or directory identifier
destination_pathstringConditionalTarget path. Mutually exclusive with destination_folder
destination_folderstringConditionalTarget folder — moves note into folder preserving filename. Mutually exclusive with destination_path
is_directorybooleanNoDefault false. Set to true to move an entire directory

delete_note

Delete a note or directory.

ParameterTypeRequiredNotes
identifierstringYesNote or directory
is_directorybooleanNoSet to true to delete an entire directory and its contents

read_content

Read raw file content by path or permalink. Returns the file's raw bytes — useful for non-markdown files like images, PDFs, or binary attachments.

ParameterTypeRequiredNotes
pathstringYesFile path, permalink, or memory://... URL

view_note

Render a note as a formatted artifact for display in MCP clients. Returns the note content in a presentation-friendly format.

ParameterTypeRequiredNotes
identifierstringYesNote title, permalink, or memory://... URL
pageintegerNoPagination page number
page_sizeintegerNoResults per page

Search and context tools

search_notes

Main search tool with text, vector, and hybrid modes plus structured filters.

ParameterTypeRequiredNotes
querystringNoSearch query. Optional for metadata-only searches. Supports tag: shorthand (e.g., "tag:security")
pageintegerNoDefault 1
page_sizeintegerNoDefault 10
search_typestringNoDefault None — resolves to hybrid when semantic search is enabled, text otherwise. Options: text, title, permalink, vector, semantic, hybrid
note_typesliststringNoFrontmatter type filter (e.g., ["person", "meeting"])
entity_typesliststringNoResult type filter: entity, observation, relation
after_datestringNoDate/time filter (ISO format)
metadata_filtersobjectNoStructured metadata filters
tagsliststringNoTag filter shorthand
statusstringNoStatus shorthand
min_similarityfloatNoOverrides global semantic_min_similarity threshold per query

The search_type parameter controls the search strategy. hybrid is the default — it combines keyword and semantic search. text is keyword-only. vector and semantic are equivalent — pure meaning-based similarity. See Semantic Search for details on each mode.

build_context

Build context graph from a memory URL. Traverses the knowledge graph from a starting entity, following relations to a configurable depth.

ParameterTypeRequiredNotes
urlstringYesmemory:// URL or path
depthstring or integerNoTraversal depth (default 1). Use 2 or 3 for broader context
timeframestringNoTime window filter (default 7d). Accepts formats like 7d, 1 week, 30d, 3 months
pageintegerNoDefault 1
page_sizeintegerNoDefault 10
max_relatedintegerNoMaximum related entities per level (default 10)
output_formatstringNoDefault "json". Also accepts "text" for human-readable output

TimeFrame examples:

ValueMeaning
7dLast 7 days
30dLast 30 days
1 weekLast week
3 monthsLast 3 months
1 yearLast year

recent_activity

Recent activity in one project or cross-project discovery mode. When called without a project parameter, returns activity across all projects.

ParameterTypeRequiredNotes
typestring or liststringNoFilter by result type: "entity", "relation", "observation"
depthintegerNoRelation traversal depth for context
timeframestringNoTime window (e.g., 7d, 30d, 1 week)
pageintegerNoDefault 1
page_sizeintegerNoDefault 10

Project and filesystem tools

list_memory_projects

List projects and project stats. Returns name, path, default status, note count, and last sync time for each project.

ParameterTypeRequiredNotes
workspacestringNoCloud workspace name or tenant ID

create_memory_project

Create a project.

ParameterTypeRequiredNotes
project_namestringYesName for the new project
project_pathstringYesFilesystem path for the project
set_defaultbooleanNoDefault false. Set to true to make this the default project

delete_project

Remove a project from Basic Memory config.

ParameterTypeRequiredNotes
project_namestringYesName of the project to remove

list_directory

List directory contents with optional depth and glob filter.

ParameterTypeRequiredNotes
dir_namestringNoDirectory path to list (root if omitted)
depthintegerNoHow many levels deep to list
file_name_globstringNoGlob pattern to filter files (e.g., *.md, schemas/*)

canvas

Create Obsidian canvas files for visual knowledge graph exploration.

ParameterTypeRequiredNotes
nodeslistYesList of node definitions for the canvas
edgeslistYesList of edge definitions connecting nodes
titlestringYesCanvas file title
directorystringYesRelative folder path for the canvas file

list_workspaces

List available cloud workspaces. Returns workspace names and tenant IDs for the authenticated user.


Schema tools

Tools for defining, validating, and evolving note structure. See Schema System for concepts and workflow.

schema_validate

Validate notes against their schema. Pass note_type to validate all notes of a type, or identifier to validate a specific note.

ParameterTypeRequiredNotes
note_typestringConditionalNote type to validate (e.g., person). One of note_type or identifier required
identifierstringConditionalSpecific note path or permalink to validate

schema_infer

Analyze existing notes of a type and suggest a schema based on common patterns.

ParameterTypeRequiredNotes
note_typestringYesNote type to analyze (e.g., person)
thresholdfloatNoMinimum field frequency for inclusion (default 0.25)

schema_diff

Compare a schema definition against actual note usage to detect drift.

ParameterTypeRequiredNotes
note_typestringYesNote type to compare (e.g., person)

Discovery tools

Cloud discovery tools

  • cloud_info() — Returns cloud connection information including authentication status, subscription details, and tenant info. No parameters.
  • release_notes() — Returns the latest Basic Memory release notes and changelog. No parameters.

ChatGPT compatibility tools

These are compatibility wrappers for ChatGPT's MCP implementation, which uses a simplified two-tool interface by default.

  • search(query) — Search across the knowledge base. Equivalent to search_notes with default parameters.
  • fetch(id) — Retrieve full document content by permalink. Equivalent to read_note.

See the ChatGPT integration guide for usage details and limitations.