LifeOS MCP Server
An MCP server for managing LifeOS Obsidian vaults, enabling AI assistants to create, read, and search notes with YAML compliance and organizational standards.
README
LifeOS MCP Server
Last updated: 2025-11-05
A Model Context Protocol (MCP) server for managing the LifeOS Obsidian vault. Provides AI assistants with structured access to create, read, and search notes while maintaining YAML compliance and organizational standards.
Features
- YAML-Compliant Note Creation: Automatically follows LifeOS YAML rules
- Custom YAML Rules Integration: Reference your own YAML frontmatter guidelines
- PARA Method Organization: Respects Projects/Areas/Resources/Archives structure
- Template System: Integration with 11+ LifeOS templates (restaurant, article, person, etc.)
- Search Engine: Full-text search with relevance scoring and context extraction
- Obsidian Integration: Clickable links that open notes directly in Obsidian
- Daily Notes Management: Create and manage daily journal entries
- Analytics Dashboard: Telemetry with visual insights (⚠️ currently buggy, not recommended for use)
- Universal Tools: Consolidates 6 search tools into 1, with auto-routing
- iCloud Sync Resilience: Automatic retry logic for file operations on macOS
- Backward Compatibility: All 11 legacy tool aliases continue to work with deprecation warnings via dedicated handler module (MCP-97) and hybrid dispatch fallback
Platform Support
✅ Supported Platforms:
- macOS - Primary development platform
- Linux - Full support (production deployments)
- WSL2 - Windows users via Unix subsystem
MCP Client Compatibility:
- Claude Desktop (macOS, Linux, Windows via WSL2)
- Cursor IDE (macOS, Linux, Windows via WSL2)
- Raycast (macOS only)
- Custom MCP clients on Unix systems
❌ Not Supported:
- Native Windows (cmd.exe, PowerShell)
Windows Users: This project officially supports Unix-only platforms. For Windows compatibility, install WSL2 for a full Unix environment. All features work seamlessly in WSL2. See WSL2 Setup Guide for detailed installation instructions.
Rationale: See ADR-007: Unix-Only Platform Support for the full decision context.
Quick Start
Automated Setup (Recommended)
# Clone and run automated setup
git clone https://github.com/shayonpal/mcp-for-lifeos.git
cd mcp-for-lifeos
chmod +x scripts/setup.sh
./scripts/setup.sh
The setup script will install dependencies, generate configuration, and build the application.
Manual Installation
npm install
npm run build
📖 For detailed deployment instructions, see Deployment Guide
Configuration
- Copy
src/config.example.tstosrc/config.ts - Update the vault paths to match your Obsidian vault location
- Customize the PEOPLE_MAPPINGS for your specific contacts
- Optional: Set
yamlRulesPathto reference your YAML frontmatter guidelines
export const LIFEOS_CONFIG: LifeOSConfig = {
vaultPath: '/path/to/your/obsidian/vault',
templatesPath: '/path/to/your/obsidian/vault/Templates',
yamlRulesPath: '/path/to/your/vault/YAML Rules.md', // Optional
// ... other paths
};
Tool Mode Configuration
Control which MCP tools are registered using the TOOL_MODE environment variable:
consolidated-only(default): Only modern consolidated tools (13 tools) - clean, focused tool listconsolidated-with-aliases: Both consolidated and legacy tools (24 tools) - maximum compatibilitylegacy-only: Only legacy tools (21 tools) - for legacy integrations
Default behavior (no configuration needed):
- ✅ Modern consolidated tools (
search,create_note,list) - ✅ Core utilities (10 always-available tools)
- ❌ Legacy tool aliases hidden
Tool Name Change (MCP-60):
create_note_smarthas been renamed tocreate_note(smart functionality is now default)- Legacy
create_note_smartalias available inconsolidated-with-aliasesmode
To restore legacy tools, set in your MCP client configuration:
{
"mcpServers": {
"lifeos": {
"command": "node",
"args": ["/path/to/build/index.js"],
"env": {
"VAULT_PATH": "/path/to/vault",
"TOOL_MODE": "consolidated-with-aliases"
}
}
}
}
📖 For complete configuration options, see Configuration Guide
Available Tools
Recommended: Consolidated Tools
search - Universal search with auto-routing for all search operations
- Supports modes: auto, advanced, quick, content_type, recent, pattern
- Natural language queries (e.g., "Quebec barbecue restaurants")
- Automatic token budget management
create_note - Smart note creation with automatic template detection
- Auto-detects templates from title/content
- Handles YAML validation and folder placement
list - Universal listing for folders, daily notes, templates, YAML properties
- Auto-detection of list type
- Supports concise and detailed formats
Core Operations
Note Management:
create_note- Create notes with YAML frontmatter and templatesread_note- Read existing notesedit_note- Edit notes with frontmatter mergingget_daily_note- Get or create daily notesmove_items- Move notes and foldersrename_note- Atomic note renaming with vault-wide link updates, dry-run preview, and crash recoveryinsert_content- Insert content at specific locations
Utilities:
diagnose_vault- Diagnose vault issuesget_server_version- Get server version and capabilitiesget_yaml_rules- Retrieve custom YAML rules
Search:
advanced_search- Full-text search with metadata filterslist_yaml_properties- Discover YAML propertieslist_yaml_property_values- Analyze property values
📖 For complete tools documentation, see Tools API Reference
Client Integration
Claude Desktop
Add to your Claude Desktop configuration:
{
"mcpServers": {
"lifeos": {
"command": "node",
"args": ["/absolute/path/to/mcp-for-lifeos/dist/src/index.js"],
"env": {
"ENABLE_WEB_INTERFACE": "false"
}
}
}
}
Raycast
Use @lifeos-mcp to mention the server in AI chats and commands for quick vault search and note creation.
Cursor IDE
Access vault context directly in Agent Mode to research existing knowledge while coding.
📖 For complete integration guides, see Integrations Guide
Template System
The server includes intelligent template integration with 11+ templates:
- restaurant, article, person, daily, reference
- medicine, application, book, place, fleeting, moc
Templates automatically process Templater syntax and place notes in correct PARA folders.
# Auto-detect template from title
create_note title: "Pizza Palace" # → restaurant template
# Explicit template
create_note title: "My Article" template: "article"
📖 For template system details, see Templates Guide
Analytics Dashboard
⚠️ IMPORTANT: The analytics dashboard is currently buggy and should not be used.
The analytics system has known issues affecting data collection and visualization. Work is underway to fix these issues. Until then, we recommend disabling analytics:
{
"mcpServers": {
"lifeos": {
"env": {
"DISABLE_USAGE_ANALYTICS": "true"
}
}
}
}
Status: Analytics collection and dashboard temporarily unreliable. Use with caution or disable entirely.
📊 For complete analytics documentation, see analytics/README.md
Documentation
Guides
- 📖 Deployment Guide - Complete setup and deployment instructions
- ⚙️ Configuration Guide - Detailed configuration options
- 🔧 Templates Guide - Template system and customization
- 🔌 Integrations Guide - Client integration (Claude Desktop, Raycast, Cursor)
- 🐛 Troubleshooting Guide - Common issues and solutions
- 📱 Raycast Integration - Raycast-specific setup
- 💻 Cursor Integration - Cursor IDE-specific setup
API Reference
- 🔧 Tools API Reference - Complete tool documentation with parameters and examples
Analytics
- 📊 Analytics Dashboard - Analytics configuration and insights
Development
# Development mode with auto-reload
npm run dev
# Build for production
npm run build
# Run tests
npm test
# Type checking
npm run typecheck
Testing
# All tests
npm test
# Unit tests only
npm run test:unit
# Integration tests only
npm run test:integration
Versioning
The server follows semantic versioning (MAJOR.MINOR.PATCH):
- MAJOR: Incompatible API changes
- MINOR: New functionality (backward compatible)
- PATCH: Bug fixes (backward compatible)
All API responses include version metadata for compatibility checking.
YAML Compliance
The server automatically enforces LifeOS YAML rules:
- Uses
sourcefield for URLs (noturlorURL) - Maintains location format:
Country [CODE](e.g.,Canada [CA]) - Never edits auto-managed fields (
date created,date modified) - Validates YAML syntax and provides error reporting
- Supports flexible tag formats: string, array, or YAML list
File Naming Convention
Notes use natural file naming that preserves readability:
- Preserves: Spaces, punctuation, numbers, parentheses
- Removes: Square brackets
[], colons:, semicolons; - Example: "Book Review - The 48 Laws of Power" → "Book Review - The 48 Laws of Power.md"
Support and Contributing
- 🐛 Issues: Report bugs and request features via GitHub Issues
- 💬 Discussions: Join community discussions in the repository
- 📖 Documentation: Check docs/ for guides and references
License
This project is licensed under the GNU General Public License v3.0. See LICENSE.md for details.
Copyright (C) 2025 Shayon Pal
AgileCode Studio - https://agilecode.studio
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。