Obsidian Memory MCP
# Obsidian Memory MCP
MCP server that stores AI memories as Markdown files for visualization in Obsidian's graph view.
<a href="https://glama.ai/mcp/servers/@YuNaga224/obsidian-memory-mcp">
<img width="380" height="200" src="https://glama.ai/mcp/servers/@YuNaga224/obsidian-memory-mcp/badge" alt="Obsidian Memory MCP server" />
</a>
## About
This project is a modified version of [Anthropic's memory server](https://github.com/modelcontextprotocol/servers/tree/main/src/memory) that has been adapted for Obsidian integration. The original server stored memories in JSON format, while this version stores them as individual Markdown files with Obsidian-compatible `[[link]]` syntax for graph visualization.
### Key Changes from Original
- **Storage Format**: Changed from JSON to individual Markdown files
- **Obsidian Integration**: Added `[[link]]` syntax for relations
- **YAML Frontmatter**: Metadata stored in frontmatter instead of JSON
- **File Structure**: Each entity becomes a separate `.md` file
- **Removed Features**: Simplified to focus on Markdown-only storage
## Features
- **Markdown Storage**: Individual `.md` files for each entity
- **Obsidian Integration**: Uses `[[link]]` syntax for graph visualization
- **Knowledge Graph**: Store entities, relations, and observations
- **Search Functionality**: Query across all stored memories
- **YAML Frontmatter**: Metadata stored in frontmatter
## Storage Format
Each entity is stored as an individual Markdown file with:
- **YAML frontmatter** for metadata (entityType, created, updated)
- **Obsidian-compatible `[[links]]`** for relations
- **Organized sections** for observations and relations
Example entity file (`John_Doe.md`):
```markdown
---
entityType: person
created: 2025-07-10
updated: 2025-07-10
---
# John Doe
## Observations
- Works at Tech Corp
- Expert in TypeScript
- Lives in Tokyo
## Relations
- [[Manager of::Alice Smith]]
- [[Collaborates with::Bob Johnson]]
- [[Located in::Tokyo Office]]
```
## Installation & Configuration
```bash
git clone https://github.com/YuNaga224/obsidian-memory-mcp.git
cd obsidian-memory-mcp
npm install
npm run build
```
Then configure in Claude Desktop:
```json
{
"mcpServers": {
"obsidian-memory": {
"command": "node",
"args": ["/full/path/to/obsidian-memory-mcp/dist/index.js"],
"env": {
"MEMORY_DIR": "/path/to/your/obsidian/vault"
}
}
}
}
```
## Usage with Obsidian
1. Configure Claude Desktop with one of the options above
2. Restart Claude Desktop
3. Use the MCP memory tools to create entities and relations
4. Open Obsidian and view the graph
The knowledge graph will be visualized with:
- Entity files as nodes
- `[[links]]` as edges
- Different colors for different entity types (if configured in Obsidian)
## API
The server exposes the following tools:
- `create_entities`: Create new entities
- `create_relations`: Create relations between entities
- `add_observations`: Add observations to existing entities
- `delete_entities`: Delete entities and related data
- `delete_observations`: Remove specific observations
- `delete_relations`: Remove relations
- `read_graph`: Get the entire knowledge graph
- `search_nodes`: Search entities by query
- `open_nodes`: Get specific entities by name
## Development
```bash
npm run watch # Watch for changes and rebuild
```
## Credits
This project is based on [Anthropic's memory server](https://github.com/modelcontextprotocol/servers/tree/main/src/memory) from the Model Context Protocol servers collection. We thank Anthropic for releasing the original implementation under the MIT license.
## License
MIT License - see [LICENSE](LICENSE) file for details.
Original memory server: Copyright (c) 2024 Anthropic, PBC
Obsidian integration modifications: Copyright (c) 2025 YuNaga224TDQS
Scored across 9 tools
Each tool has a clearly distinct purpose targeting specific operations on the knowledge graph: adding/deleting observations, creating/deleting entities/relations, opening/reading/searching nodes. No overlap exists; for example, 'create_entities' and 'create_relations' are distinct, and 'open_nodes' and 'search_nodes' serve different access functions.
All tools follow a consistent verb_noun pattern with snake_case throughout: 'add_observations', 'create_entities', 'delete_relations', etc. The naming is predictable and readable, with verbs like 'add', 'create', 'delete', 'open', 'read', and 'search' applied consistently to their respective nouns.
With 9 tools, the count is well-scoped for managing a knowledge graph, covering core operations like CRUD for entities, relations, and observations, plus graph access. Each tool earns its place without bloat, fitting a typical range of 3-15 tools for this domain.
The tool set provides strong coverage for knowledge graph management, including create, read, delete, and search operations. A minor gap exists in update capabilities (e.g., no 'update_entities' or 'update_relations'), but agents can work around this by deleting and recreating, and core workflows are well-supported.