AI Assistant Guide
A comprehensive guide for AI assistants to effectively use Basic Memory tools through the Model Context Protocol (MCP)
This is an optional document that can be copy/pasted into the project knowledge for an LLM to provide a full description of how it can work with Basic Memory. It is provided as a helpful resource. The tools contain extensive usage description prompts with enable the LLM to understand them.
You can download the contents of this file from GitHub
This guide helps you, the AI assistant, use Basic Memory tools effectively when working with users. It covers reading, writing, and navigating knowledge through the Model Context Protocol (MCP).
Quick Reference
Essential Tools
write_note()
- Create/update notes (primary tool)read_note()
- Read existing contentsearch_notes()
- Find informationedit_note()
- Modify existing notes incrementally (v0.13.0)move_note()
- Organize files with database consistency (v0.13.0)
Project Management (v0.13.0)
list_projects()
- Show available projectsswitch_project()
- Change active projectget_current_project()
- Current project info
Key Principles:
- Build connections - Rich knowledge graphs > isolated notes
- Ask permission - “Would you like me to record this?”
- Use exact titles - For accurate
[[WikiLinks]]
- Leverage v0.13.0 - Edit incrementally, organize proactively, switch projects contextually
Overview
Basic Memory allows you and users to record context in local Markdown files, building a rich knowledge base through natural conversations. The system automatically creates a semantic knowledge graph from simple text patterns.
- Local-First: All data is stored in plain text files on the user’s computer
- Real-Time: Users see content updates immediately
- Bi-Directional: Both you and users can read and edit notes
- Semantic: Simple patterns create a structured knowledge graph
- Persistent: Knowledge persists across sessions and conversations
The Importance of the Knowledge Graph
Basic Memory’s value comes from connections between notes, not just the notes themselves. When writing notes, your primary goal should be creating a rich, interconnected knowledge graph.
Remember that a knowledge graph with 10 heavily connected notes is more valuable than 20 isolated notes. Your job is to help build these connections.
When creating content, focus on:
- Increasing Semantic Density: Add multiple observations and relations to each note
- Using Accurate References: Aim to reference existing entities by their exact titles
- Creating Forward References: Feel free to reference entities that don’t exist yet - Basic Memory will resolve these when they’re created later
- Creating Bidirectional Links: When appropriate, connect entities from both directions
- Using Meaningful Categories: Add semantic context with appropriate observation categories
- Choosing Precise Relations: Use specific relation types that convey meaning
Core Tools Reference
Essential Content Management
Writing knowledge (most important tool):
Reading knowledge:
Viewing notes as formatted artifacts (Claude Desktop):
Incremental editing (v0.13.0):
Important: edit_note
requires exact identifiers (no fuzzy matching). Use search_notes()
first if uncertain.
File organization (v0.13.0):
Important: move_note
requires exact identifiers (no fuzzy matching). Use search_notes()
first if uncertain.
Project Management (v0.13.0)
Search & Discovery
memory:// URLs Explained
Basic Memory uses a special URL format to reference entities in the knowledge graph:
Semantic Markdown Format
Knowledge is encoded in standard markdown using simple patterns:
Facts about an entity:
Facts about an entity:
Links between entities:
Common Categories & Relation Types:
- Categories:
[idea]
,[decision]
,[question]
,[fact]
,[requirement]
,[technique]
,[recipe]
,[preference]
- Relations:
relates_to
,implements
,requires
,extends
,part_of
,pairs_with
,inspired_by
,originated_from
When to Record Context
Always consider recording context when
- Users make decisions or reach conclusions
- Important information emerges during conversation
- Multiple related topics are discussed
- The conversation contains information that might be useful later
- Plans, tasks, or action items are mentioned
Protocol for recording context:
- Identify valuable information in the conversation
- Ask the user: “Would you like me to record our discussion about [topic] in Basic Memory?”
- If they agree, use
write_note
to capture the information - If they decline, continue without recording
- Let the user know when information has been recorded: “I’ve saved our discussion about [topic] to Basic Memory.”
Understanding User Interactions
Users will interact with Basic Memory in patterns like:
Key Things to Remember
Files are Truth
- All knowledge lives in local files on the user’s computer
- Users can edit files outside your interaction
- Changes need to be synced by the user (usually automatic)
- Always verify information is current with
recent_activity()
Building Context Effectively
- Start with specific entities
- Follow meaningful relations
- Check recent changes
- Build context incrementally
- Combine related information
Writing Knowledge Wisely
- Same title+folder overwrites existing notes
- Structure with clear headings and semantic markup
- Use tags for searchability (v0.13.0: frontmatter tags indexed)
- Keep files organized in logical folders
Leverage v0.13.0 Features
- Edit incrementally: Use
edit_note()
for small changes vs rewriting - Switch projects: Change context when user mentions different work areas
- Organize proactively: Move old content to archive folders
- Cross-project operations: Create notes in specific projects while maintaining context
Common Knowledge Patterns
Capturing Decisions
Recording Project Structure
Technical Discussions
v0.13.0 Workflow Examples
Multi-Project Conversations
User: “I need to update my work documentation and also add a personal recipe note.”
Workflow:
list_projects()
- Check available projectswrite_note(title="Sprint Planning", project="work-notes")
- Work contentwrite_note(title="Weekend Recipes", project="personal")
- Personal content
Incremental Note Building
User: “Add a troubleshooting section to my setup guide.”
Workflow:
edit_note(identifier="Setup Guide", operation="append", content="\n## Troubleshooting\n...")
User: “Update the authentication section in my API docs.”
Workflow:
edit_note(identifier="API Documentation", operation="replace_section", section="## Authentication")
Smart File Organization
User: “My notes are getting messy in the main folder.”
Workflow:
move_note("Old Meeting Notes", "archive/2024/old-meetings.md")
move_note("Project Notes", "projects/client-work/notes.md")
Creating Effective Relations
When creating relations:
- Reference existing entities by their exact title:
[[Exact Title]]
- Create forward references to entities that don’t exist yet - they’ll be linked automatically when created
- Search first to find existing entities to reference
- Use meaningful relation types:
implements
,requires
,part_of
vs genericrelates_to
Example workflow:
search_notes("travel")
to find existing travel-related notes- Reference found entities:
- part_of [[Japan Travel Guide]]
- Add forward references:
- located_in [[Tokyo]]
(even if Tokyo note doesn’t exist yet)
Common Issues & Solutions
Best Practices
1. Proactively Record Context
Offer to capture important discussions
Record decisions, rationales, and conclusions
Link to related topics
Ask for permission first: “Would you like me to save our discussion about [topic]?”
Confirm completion
“I’ve saved our discussion to Basic Memory”
2. Create a Rich Semantic Graph
Graph Building Guidelines
- Add meaningful observations: Include at least 3-5 categorized observations in each note
- Create deliberate relations: Connect each note to at least 2-3 related entities
- Use existing entities: Before creating a new relation, search for existing entities
- Verify wikilinks: When referencing
[[Entity]]
, use exact titles of existing notes - Check accuracy: Use
search_notes()
orrecent_activity()
to confirm entity titles - Use precise relation types: Choose specific relation types that convey meaning (e.g., “implements” instead of “relates_to”)
- Consider bidirectional relations: When appropriate, create inverse relations in both entities
3. Structure Content Thoughtfully
- Use clear, descriptive titles
- Organize with logical sections (Context, Decision, Implementation, etc.)
- Include relevant context and background
- Add semantic observations with appropriate categories
- Use a consistent format for similar types of notes
- Balance detail with conciseness
4. Navigate Knowledge Effectively
- Start with specific searches
- Follow relation paths
- Combine information from multiple sources
- Verify information is current
- Build a complete picture before responding
5. Help Users Maintain Their Knowledge
- Suggest organizing related topics
- Identify potential duplicates
- Recommend adding relations between topics
- Offer to create summaries of scattered information
- Suggest potential missing relations: “I notice this might relate to [topic], would you like me to add that connection?”
Built with ♥️ by Basic Machines