MCP Tools Reference
Complete reference of all Basic Memory MCP tools and prompts available to AI assistants
Basic Memory provides a comprehensive suite of MCP (Model Context Protocol) tools and prompts that enable AI assistants to work directly with your knowledge base. This reference catalogs all available tools and where to find detailed examples.
v0.15.0 Change: Most MCP tools now require an explicit project
parameter to specify which knowledge base to operate on. You can enable default_project_mode
in your configuration for automatic project selection, or use the --project
flag when starting the MCP server to constrain operations to a specific project. See What’s New for migration details.
MCP Tools
Knowledge Management Tools
write_note
Create or update notes
- Parameters: title, content, folder, tags, project
- Creates semantic observations and relations
- Detailed examples →
read_note
Read existing notes with context
- Parameters: identifier, project, page, page_size
- Loads note content and related knowledge
- Detailed examples →
edit_note
Edit notes incrementally
- Parameters: identifier, operation, content, project
- Operations: append, prepend, find_replace, replace_section
- Preserves existing content structure
- Detailed examples →
view_note
Display notes as formatted artifacts
- Parameters: identifier, project
- Shows notes with proper formatting in Claude Desktop
- Enhanced readability and navigation
- Detailed examples →
delete_note
Remove notes from knowledge base
- Parameters: identifier, project
- Removes from database and file system
- Updates search index and relations
move_note
Move and rename notes
- Parameters: identifier, new_path, project
- Maintains database consistency
- Updates search index
- Detailed examples →
Search and Discovery Tools
search_notes
Full-text search across knowledge
- Parameters: query, project, page, page_size, after_date
- Searches content, titles, and frontmatter tags
- Detailed examples →
recent_activity
Show recently modified content
- Parameters: project (optional), timeframe, type, depth
- Discovery mode: omit project to see cross-project activity
- Natural language timeframes (“2 days ago”, “last week”)
- Detailed examples →
build_context
Load context from memory:// URLs
- Parameters: uri, project, depth
- Navigate knowledge graph relationships
- Build conversation context from previous work
- Detailed examples →
list_directory
Browse knowledge base structure
- Parameters: dir_name, project, depth, file_name_glob
- Explore folder organization
- Filter by file patterns
Project Management Tools
Project Modes
Basic Memory supports three different project modes to accommodate different workflows:
Multi-Project Mode (Default)
The standard mode for users with multiple knowledge bases:
- How it works: AI assistants discover projects using
list_memory_projects()
andrecent_activity()
- Project selection: Users specify which project to work with during conversations
- Benefits: Full flexibility to work across multiple projects in one session
- Best for: Users managing separate work, personal, and research knowledge bases
Example workflow:
Assistant: I'll check what projects you have available.
[Calls list_memory_projects()]
Assistant: I see you have 'work', 'personal', and 'research' projects. Which would you like to use?
User: Let's work with the research project
Assistant: Perfect! I'll use the 'research' project for our work.
[Uses project="research" in all subsequent tool calls]
Default Project Mode
For single-project users who want automatic project selection:
Enable in ~/.basic-memory/config.json
:
{
"default_project_mode": true,
"default_project": "main"
}
Behavior:
- Tools automatically use your default project when no
project
parameter is specified - You can still override by explicitly passing a different project to tools
- Best for users who primarily work in one project but occasionally need others
Example:
# With default_project_mode enabled and default_project="main"
write_note("My Note", "Content", "folder") # Uses "main" project
write_note("Work Note", "Content", "folder", project="work") # Uses "work" project
Single Project Mode
For locked, single-project sessions:
Start MCP server with --project
flag:
basic-memory mcp --project work
Behavior:
- Locks the entire MCP session to one project
- The
project
parameter in tool calls is ignored - cannot switch projects - Best for automation, focused sessions, or restricted access scenarios
Example:
# Start locked to "work" project
basic-memory mcp --project work
# All operations use "work" regardless of parameters
write_note("My Note", "Content", "folder") # Uses "work"
write_note("Note", "Content", "folder", project="personal") # Still uses "work"!
Project Resolution Hierarchy
When multiple project specifications exist, Basic Memory uses this priority order:
- Single Project Mode (highest priority) -
--project
CLI parameter orBASIC_MEMORY_MCP_PROJECT
env var - Explicit Parameter (medium priority) -
project
parameter in tool call - Default Project Mode (lowest priority) - Automatic default when
default_project_mode=true
Quick Comparison:
Mode | Can Switch Projects? | Use Case |
---|---|---|
Multi-Project (default) | Yes, via explicit parameters | Managing multiple knowledge bases |
Default Project Mode | Yes, can override default | Single project with occasional multi-project |
Single Project Mode | No, locked to one | Automation, security, focused sessions |
list_memory_projects
Show all available projects
- Displays project status and statistics
- Provides session guidance for project selection
- Use at conversation start when project is unknown
- Detailed examples →
create_memory_project
Create new knowledge projects
- Parameters: project_name, project_path, set_default
- Initialize new knowledge bases
- Set up folder structures
delete_project
Remove projects from configuration
- Parameters: project_name
- Removes from Basic Memory configuration
- Does not delete actual files
- Clean up unused project references
sync_status
Check file synchronization status
- No parameters required (shows all projects)
- Show sync progress and background operations
- Identify any sync issues or conflicts
- Detailed examples →
Deprecated in v0.15.0: switch_project()
and get_current_project()
have been removed. Projects are now specified explicitly via the project
parameter in each tool call, or automatically resolved using default_project_mode
. See What’s New for details.
Utility Tools
read_content
Read raw file content
- Parameters: file_path, project
- Access files without knowledge graph processing
- Support for text, images, and binary files
- Direct file system access
canvas
Create Obsidian canvas visualizations
- Parameters: nodes, edges, title, folder, project
- Generate knowledge graph visualizations
- Detailed examples →
ChatGPT-Specific Tools
Basic Memory provides ChatGPT-compatible tools (search
and fetch
) that use OpenAI’s expected response format. These are automatically available when using Basic Memory with ChatGPT. For details, see the ChatGPT Integration Guide.
MCP Prompts
Basic Memory includes specialized prompts that provide enhanced AI interactions with formatted responses and guided workflows.
Interactive Prompts
ai_assistant_guide
Comprehensive usage guide for AI assistants
- Best practices for using Basic Memory tools
- Workflow recommendations and patterns
- View guide →
continue_conversation
Load context for conversation continuity
- Parameters: topic, timeframe
- Intelligent context loading from knowledge base
- Natural conversation resumption
search_notes
Enhanced search with formatted results
- Parameters: query, after_date
- Structured search results with context
- Better than raw search tool for conversations
recent_activity
Formatted recent activity display
- Parameters: timeframe
- Clean presentation of recent changes
- Contextual information for follow-up
sync_status
Detailed sync status information
- Comprehensive sync progress reporting
- Background operation status
- Troubleshooting guidance
Tool Usage Patterns
Common Workflows
Knowledge Creation Flow:
write_note → edit_note (append/prepend) → move_note → view_note
Start with basic note, enhance incrementally, organize, then review
Example conversation
You: "I want to document my thoughts on the new API design"
Claude: I'll create a note for your API design thoughts.
[Uses write_note to create initial note]
You: "Add a section about authentication concerns"
Claude: I'll append an authentication section to your API design note.
[Uses edit_note with append operation]
You: "This should go in my architecture folder"
Claude: I'll move the API design note to your architecture folder.
[Uses move_note to relocate the file]
You: "Show me the final note"
Claude: Here's your complete API design note formatted for easy reading.
[Uses view_note to display formatted artifact]
Research and Discovery Flow:
search_notes → read_note → build_context → write_note
Find existing knowledge, explore context, create new insights
Example conversation
You: "I'm working on database optimization, what have I learned before?"
Claude: Let me search your knowledge base for database optimization content.
[Uses search_notes to find relevant notes]
You: "Tell me more about that PostgreSQL indexing note"
Claude: I'll read the full PostgreSQL indexing note for you.
[Uses read_note to load complete content and context]
You: "Load the context from my database performance work"
Claude: I'll gather related notes about database performance to build context.
[Uses build_context with memory:// URLs to load related content]
You: "Create a new note combining these insights for my current project"
Claude: I'll create a comprehensive note that synthesizes your database optimization knowledge.
[Uses write_note to capture new insights with full context]
Project Discovery Flow:
list_memory_projects → recent_activity (discovery mode) → project selection
Discover projects, view cross-project activity, choose working project
Example conversation
You: "What projects do I have available?"
Claude: Here are all your Basic Memory projects with their current status.
[Uses list_memory_projects to show available projects]
You: "Show me recent activity across all projects"
Claude: Here's recent activity across all your projects to help you choose which to work with.
[Uses recent_activity without project parameter for discovery mode]
You: "I want to work with my research project"
Claude: I'll use the 'research' project for our work. All subsequent operations will specify this project.
[Remembers project choice for conversation context]
You: "What have I been working on recently in this project?"
Claude: Here's your recent activity in the research project.
[Uses recent_activity with project="research" parameter]
Content Organization Flow:
list_directory → search_notes → move_note → list_directory
Explore structure, find content, reorganize, verify changes
Example conversation
You: "Show me what's in my projects folder"
Claude: Here's the structure of your projects folder.
[Uses list_directory to explore folder contents]
You: "Find all notes about the mobile app project"
Claude: I found several notes related to your mobile app project.
[Uses search_notes to locate relevant content]
You: "Move the mobile app notes to a dedicated folder"
Claude: I'll move all mobile app notes to a new 'mobile-app' folder.
[Uses move_note to reorganize content]
You: "Show me the updated folder structure"
Claude: Here's your reorganized projects folder with the new mobile-app directory.
[Uses list_directory to verify the changes]
Integration Examples
In Claude Desktop:
You: "What have I been working on lately?"
Claude: [Uses recent_activity prompt for formatted response]
You: "Create a note about today's meeting"
Claude: [Uses write_note tool with semantic structure]
You: "Show me my project documentation as a formatted view"
Claude: [Uses view_note tool to display artifact]
In Development Workflows:
You: "Document today's architecture decisions in my work project"
Claude: [Uses write_note with project="work" parameter and technical context]
You: "Find all my API documentation in the work project and update the authentication section"
Claude: [Uses search_notes with project="work", then edit_note with section replacement]
Error Handling and Best Practices
Common Tool Parameters
Identifiers: Most tools accept flexible identifiers:
- Note titles:
"My Important Note"
- Permalinks:
"my-important-note"
- Memory URLs:
"memory://folder/note"
- File paths:
"folder/note.md"
Timeframes: Natural language supported:
"2 days ago"
,"last week"
,"today"
"3 months ago"
,"yesterday"
- Standard formats:
"7d"
,"24h"
Project Parameters: Most content tools require project specification:
- Specify which project to operate on:
project="work-docs"
- Optional if
default_project_mode: true
in configuration - Automatically resolved in constrained mode (
--project
flag) recent_activity()
supports discovery mode (no project = cross-project view)
Advanced Features
Memory URLs
Use memory://
URLs with build_context
for intelligent navigation:
memory://project-planning # Load specific note
memory://architecture/* # Load all architecture notes
memory://decisions/database-choice # Load specific decision document
Project Management vs Content Tools
Basic Memory tools fall into two categories:
Project Management Tools (work globally, no project parameter):
list_memory_projects()
- Shows all projectscreate_memory_project(project_name, project_path)
- Creates new projectdelete_project(project_name)
- Removes project configurationsync_status()
- Shows status across all projects
Content Tools (require project parameter):
write_note(title, content, folder, project="...")
- Creates note in specified projectsearch_notes(query, project="...")
- Searches specified project onlyedit_note(identifier, operation, content, project="...")
- Edits note in specified projectread_note(identifier, project="...")
- Reads note from specified projectrecent_activity(project="...")
- Project-specific activity (or omit for discovery mode)
Example:
# Global operations (no project parameter)
list_memory_projects() # Shows all projects
create_memory_project("new-project", "~/Documents") # Creates new project
# Project-specific operations (project parameter required)
write_note("My Note", "Content", "folder", project="work")
search_notes("api documentation", project="work")
edit_note("My Note", "append", "More content", project="work")
# Discovery mode (no project = cross-project view)
recent_activity() # Shows activity across all projects
Resources and Examples
Where to Find More
- Real workflows: How you can use Basic Memory section
- New features: What’s New with detailed examples
- Setup guides: Integrations for platform-specific usage
- User perspective: User Guide for comprehensive workflows
- AI perspective: AI Assistant Guide for best practices
Quick Reference
Most Common Tools:
write_note
- Create knowledgesearch_notes
- Find informationedit_note
- Update incrementallylist_memory_projects
- Discover projectsrecent_activity
- Check progress
Most Useful Prompts:
continue_conversation
- Resume discussionsai_assistant_guide
- Get usage helpsearch_notes
- Formatted search results
This reference provides the complete catalog of Basic Memory’s MCP capabilities. For detailed examples and real-world usage patterns, explore the guides and how-to sections linked throughout this page.