basicmachines-co/basic-memory
basic-memory is hosted online, so all tools can be tested directly either in theInspector tabor in theOnline Client.
If you are the rightful owner of basic-memory and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
Basic Memory is a tool that allows users to build a persistent knowledge base through natural conversations with LLMs, storing information in Markdown files.
Try basic-memory with chat:
Tools
Functions exposed to the LLM to take actions
delete_note
Delete a note by title or permalink
read_content
Read a file's raw content by path or permalink
build_context
Build context from a memory:// URI to continue conversations naturally.
Use this to follow up on previous discussions or explore related topics.
Memory URL Format:
- Use paths like "folder/note" or "memory://folder/note"
- Pattern matching: "folder/*" matches all notes in folder
- Valid characters: letters, numbers, hyphens, underscores, forward slashes
- Avoid: double slashes (//), angle brackets (<>), quotes, pipes (|)
- Examples: "specs/search", "projects/basic-memory", "notes/*"
Timeframes support natural language like:
- "2 days ago", "last week", "today", "3 months ago"
- Or standard formats like "7d", "24h"
recent_activity
Get recent activity from across the knowledge base.
Timeframe supports natural language formats like:
- "2 days ago"
- "last week"
- "yesterday"
- "today"
- "3 weeks ago"
Or standard formats like "7d"
search_notes
Search across all content in the knowledge base with advanced syntax support.
read_note
Read a markdown note by title or permalink.
view_note
View a note as a formatted artifact for better readability.
write_note
Create or update a markdown note. Returns a markdown formatted summary of the semantic content.
canvas
Create an Obsidian canvas file to visualize concepts and connections.
list_directory
List directory contents with filtering and depth control.
edit_note
Edit an existing markdown note using various operations like append, prepend, find_replace, or replace_section.
move_note
Move a note to a new location, updating database and maintaining links.
sync_status
Check the status of file synchronization and background operations.
Use this tool to:
- Check if file sync is in progress or completed
- Get detailed sync progress information
- Understand if your files are fully indexed
- Get specific error details if sync operations failed
- Monitor initial project setup and legacy migration
This covers all sync operations including:
- Initial project setup and file indexing
- Legacy project migration to unified database
- Ongoing file monitoring and updates
- Background processing of knowledge graphs
list_memory_projects
List all available projects with their status.
Shows all Basic Memory projects that are available, indicating which one is currently active and which is the default.
Returns: Formatted list of projects with status indicators
Example: list_memory_projects()
switch_project
Switch to a different project context.
Changes the active project context for all subsequent tool calls. Shows a project summary after switching successfully.
Args: project_name: Name of the project to switch to
Returns: Confirmation message with project summary
Example: switch_project("work-notes") switch_project("personal-journal")
get_current_project
Show the currently active project and basic stats.
Displays which project is currently active and provides basic information about it.
Returns: Current project name and basic statistics
Example: get_current_project()
set_default_project
Set default project in config. Requires restart to take effect.
Updates the configuration to use a different default project. This change only takes effect after restarting the Basic Memory server.
Args: project_name: Name of the project to set as default
Returns: Confirmation message about config update
Example: set_default_project("work-notes")
create_memory_project
Create a new Basic Memory project.
Creates a new project with the specified name and path. The project directory will be created if it doesn't exist. Optionally sets the new project as default.
Args: project_name: Name for the new project (must be unique) project_path: File system path where the project will be stored set_default: Whether to set this project as the default (optional, defaults to False)
Returns: Confirmation message with project details
Example: create_memory_project("my-research", "~/Documents/research") create_memory_project("work-notes", "/home/user/work", set_default=True)
delete_project
Delete a Basic Memory project.
Removes a project from the configuration and database. This does NOT delete the actual files on disk - only removes the project from Basic Memory's configuration and database records.
Args: project_name: Name of the project to delete
Returns: Confirmation message about project deletion
Example: delete_project("old-project")
Warning: This action cannot be undone. The project will need to be re-added to access its content through Basic Memory again.
Prompts
Interactive templates invoked by user choice
Continue Conversation
Continue a previous conversation
Share Recent Activity
Get recent activity from across the knowledge base
Search Knowledge Base
Search across all content in basic-memory
sync_status_prompt
Get sync status with recommendations for AI assistants.
This prompt provides both current sync status and guidance on how
AI assistants should respond when sync operations are in progress or completed.
Resources
Contextual data attached and managed by the client
ai assistant guide
URI: memory://ai_assistant_guide
MIME: text/plain
Give an AI assistant guidance on how to use Basic Memory tools effectively
project_info
URI: memory://project_info
MIME: text/plain
Get information and statistics about the current Basic Memory project.