basic-memory

basic-memory

4.5

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.

Basic Memory is a tool designed to facilitate the creation of a persistent knowledge base through natural conversations with Large Language Models (LLMs) like Claude. It leverages the Model Context Protocol (MCP) to enable LLMs to read and write to a local knowledge base stored in Markdown files. This approach allows users to maintain control over their data, ensuring that all information is stored locally. Basic Memory is particularly useful for users who want to build a structured knowledge base that grows over time, with the ability to navigate and edit notes using familiar tools like Obsidian.

Features

  • Local-first storage: All knowledge is stored in local Markdown files, ensuring user control over data.
  • Bi-directional interaction: Both users and LLMs can read and write to the same files, facilitating seamless knowledge sharing.
  • Structured yet simple: Uses Markdown with semantic patterns to create a traversable knowledge graph.
  • Lightweight infrastructure: Operates with local files indexed in a local SQLite database.
  • Integration with existing tools: Compatible with editors like Obsidian for viewing and editing notes.

Tools

  1. delete_note

    Delete a note by title or permalink

  2. read_content

    Read a file's raw content by path or permalink

  3. 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"
    
  4. 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"
    
  5. search_notes

    Search across all content in the knowledge base with advanced syntax support.

  6. read_note

    Read a markdown note by title or permalink.

  7. view_note

    View a note as a formatted artifact for better readability.

  8. write_note

    Create or update a markdown note. Returns a markdown formatted summary of the semantic content.

  9. canvas

    Create an Obsidian canvas file to visualize concepts and connections.

  10. list_directory

    List directory contents with filtering and depth control.

  11. edit_note

    Edit an existing markdown note using various operations like append, prepend, find_replace, or replace_section.

  12. move_note

    Move a note to a new location, updating database and maintaining links.

  13. 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
    
  14. 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_projects()

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

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

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

  18. 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_project("my-research", "~/Documents/research") create_project("work-notes", "/home/user/work", set_default=True)

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