MCP server: Basic Memory
Maintainer: basicmachines-co
Category: Miscellaneous
Basic Memory lets you build persistent knowledge through natural conversations with Large Language Models (LLMs) like Claude, while keeping everything in simple Markdown files on your computer. It uses the Model Context Protocol (MCP) to enable any compatible LLM to read and write to your local knowledge base.

Tools:
basic-memory: tools: name: delete_note
description: Delete a note by title or permalink
name: read_content
description: Read a file's raw content by path or permalink
name: build_context
description: 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"
    
name: recent_activity
description: 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"
    
name: search_notes
description: Search across all content in the knowledge base with advanced syntax support.
name: read_note
description: Read a markdown note by title or permalink.
name: view_note
description: View a note as a formatted artifact for better readability.
name: write_note
description: Create or update a markdown note. Returns a markdown formatted summary of the semantic content.
name: canvas
description: Create an Obsidian canvas file to visualize concepts and connections.
name: list_directory
description: List directory contents with filtering and depth control.
name: edit_note
description: Edit an existing markdown note using various operations like append, prepend, find_replace, or replace_section.
name: move_note
description: Move a note to a new location, updating database and maintaining links.
name: sync_status
description: 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
    
name: list_memory_projects
description: 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()
name: switch_project
description: 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")
name: get_current_project
description: 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()
name: set_default_project
description: 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")
name: create_memory_project
description: 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)
name: delete_project
description: 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.