Basic Memory
Reference

MCP Tools Reference

Current MCP tool reference for Basic Memory local and cloud usage.

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.

Knowledge tools

write_note

Create or update a markdown note.

ParameterTypeRequiredNotes
titlestringYesNote title
contentstringYesMarkdown body
directorystringYesRelative folder path
projectstringNoUses resolver fallback when omitted
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

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://...
projectstringNoOptional
pageintegerNoPagination page number
page_sizeintegerNoResults per page
output_formatstringNodefault (structured), ascii (plain table), ansi (colorized terminal)

edit_note

Edit an existing note incrementally.

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

move_note

Move a note or directory.

ParameterTypeRequiredNotes
identifierstringYesNote or directory identifier
destination_pathstringYesTarget path
is_directorybooleanNoDefault false. Set to true to move an entire directory
projectstringNoOptional

delete_note

Delete a note or directory.

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

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
identifierstringYesFile path, permalink, or memory://... URL
projectstringNoOptional

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
projectstringNoOptional
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
querystringYesSearch query
projectstringNoOptional
pageintegerNoDefault 1
page_sizeintegerNoDefault 10
search_typestringNotext, title, permalink, vector, semantic, hybrid
output_formatstringNodefault (structured), ascii (plain table), ansi (colorized terminal)
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. text is the default keyword search. vector and semantic are equivalent — pure meaning-based similarity. hybrid combines both. See Semantic Search for details on each mode.

search_by_metadata

Metadata-first structured search. Finds notes based on their frontmatter fields rather than content.

ParameterTypeRequiredNotes
filtersobjectYesKey-value pairs to match against note frontmatter
projectstringNoOptional
limitintegerNoMaximum results to return
offsetintegerNoPagination offset

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

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
typestringNoFilter by entity type (e.g., note, person, meeting)
depthintegerNoRelation traversal depth for context
timeframestringNoTime window (e.g., 7d, 30d, 1 week)
projectstringNoSpecific project, or omit for cross-project discovery

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.

create_memory_project

Create a project.

delete_project

Remove a project from Basic Memory config.

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/*)
projectstringNoOptional

canvas

Create Obsidian canvas files for visual knowledge graph exploration.


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 entity_type to validate all notes of a type, or identifier to validate a specific note.

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

schema_infer

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

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

schema_diff

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

ParameterTypeRequiredNotes
entity_typestringYesNote type to compare (e.g., person)
projectstringNoOptional

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.