- Explore MCP Servers
- mcp-dayone
Mcp Dayone
What is Mcp Dayone
MCP-DayOne is a Model Context Protocol server designed for integrating Claude Desktop with the Day One journal. It allows users to create and manage journal entries through natural language commands while offering a direct access to entry data in the database, enhancing the user experience with intuitive interactions.
Use cases
Users can utilize MCP-DayOne to create journal entries, add rich media attachments, retrieve past entries, search for specific content, and view journal statistics. It serves both personal reflection and organizational needs, making it suitable for individuals wanting to track thoughts or experiences and for those managing multiple journal entries across various themes.
How to use
To use MCP-DayOne, first install the Day One CLI and required Python components. Clone the repository, run installation commands, validate setup, and update the Claude Desktop configuration with the appropriate path. After restarting Claude Desktop, users can interact with their Day One journal using conversational commands like asking for recent entries or creating new journal entries.
Key features
Key features include creating journal entries with rich content and metadata, adding attachments, marking entries as important, location tagging, enhanced date/time handling with timezone support, and the ability to read recent entries, search by keywords, and access journal statistics directly from the database.
Where to use
MCP-DayOne can be used in any environment where Claude Desktop is installed and configured with the required Day One CLI setup. It is ideal for personal journaling on macOS and Windows, enabling seamless interaction with Day One journals in a natural language interface.
Overview
What is Mcp Dayone
MCP-DayOne is a Model Context Protocol server designed for integrating Claude Desktop with the Day One journal. It allows users to create and manage journal entries through natural language commands while offering a direct access to entry data in the database, enhancing the user experience with intuitive interactions.
Use cases
Users can utilize MCP-DayOne to create journal entries, add rich media attachments, retrieve past entries, search for specific content, and view journal statistics. It serves both personal reflection and organizational needs, making it suitable for individuals wanting to track thoughts or experiences and for those managing multiple journal entries across various themes.
How to use
To use MCP-DayOne, first install the Day One CLI and required Python components. Clone the repository, run installation commands, validate setup, and update the Claude Desktop configuration with the appropriate path. After restarting Claude Desktop, users can interact with their Day One journal using conversational commands like asking for recent entries or creating new journal entries.
Key features
Key features include creating journal entries with rich content and metadata, adding attachments, marking entries as important, location tagging, enhanced date/time handling with timezone support, and the ability to read recent entries, search by keywords, and access journal statistics directly from the database.
Where to use
MCP-DayOne can be used in any environment where Claude Desktop is installed and configured with the required Day One CLI setup. It is ideal for personal journaling on macOS and Windows, enabling seamless interaction with Day One journals in a natural language interface.
Content
MCP-DayOne
A Model Context Protocol (MCP) server for Day One Journal integration with Claude Desktop.
Overview
This MCP server enables Claude Desktop to interact with your Day One journal through the Model Context Protocol. Claude can create journal entries, list available journals, and get entry counts directly through natural conversation.
Features
βοΈ Write Operations (Day One CLI)
- π Create journal entries with rich content and metadata
- π Add attachments (photos, videos, audio, PDFs) to entries
- β Mark entries as starred/important
- π Add location coordinates to entries
- π Enhanced date/time handling with timezone support
π Read Operations (Direct Database Access)
- π NEW: Read recent journal entries with full metadata
- π NEW: Search entries by text content
- π NEW: List actual journals with entry counts and statistics
- π NEW: Get real entry counts from database
- π·οΈ NEW: View entry tags, dates, and metadata
π§ Technical
- Proper error handling and validation
- Direct SQLite database integration for read operations
- Hybrid approach: CLI for writing, database for reading
- π Easy installation with
uv
Prerequisites
- Day One CLI (
dayone2
) - Install from Day One website - Python 3.11+
- uv - Install from astral.sh
Installation
β‘ Quick Start (5 minutes)
This MCP server is designed for zero-configuration installation - you only need to change one file path!
1. Install Prerequisites (One-time setup)
Day One CLI Installation:
- Download and install Day One from the Mac App Store or Day One website
- The Day One CLI is automatically included with the app - no separate installation needed!
- Verify itβs working:
dayone2 --version
Python and uv:
# Install uv package manager (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Verify Day One CLI is accessible
dayone2 --version
2. Clone and Setup (Automatic dependency management)
git clone <repository-url>
cd mcp-dayone
uv sync # Automatically installs all Python dependencies
3. Validate Installation (Built-in testing)
# Run comprehensive setup validation
uv run python test_setup.py
This test script automatically:
- β Verifies Day One CLI is accessible
- β Tests database connectivity
- β Validates MCP server functionality
- β Lists available tools
- π§ Provides helpful error messages if anything needs fixing
4. Configure Claude Desktop (Only one path to change!)
Add to your Claude Desktop configuration file:
Config File Location:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
Configuration (replace path only):
{
"mcpServers": {
"dayone": {
"command": "uv",
"args": [
"--directory",
"/FULL/PATH/TO/mcp-dayone",
"run",
"python",
"-m",
"mcp_dayone.server"
]
}
}
}
β οΈ Only change needed: Replace /FULL/PATH/TO/mcp-dayone
with your actual repository path.
5. Restart Claude Desktop
After updating the configuration, restart Claude Desktop to load the MCP server.
π What Makes This Easy:
- π Automatic Detection: Database path, CLI location, all dependencies detected automatically
- π¦ Zero Dependencies:
uv sync
handles everything - no manual package installation - π§ͺ Built-in Validation:
test_setup.py
ensures everything works before you configure Claude - π οΈ No Code Changes: Works out-of-the-box for standard Day One installations
- π± Universal Compatibility: Works with any Day One database and journal setup
- π¨ Helpful Errors: Clear guidance if Day One CLI or database isnβt accessible
π Ready to Use!
Once configured, you can immediately start using natural language commands like:
- βShow me my recent journal entriesβ
- βWhat were my journal entries on this day?β
- βCreate a journal entry about my dayβ
No additional setup, configuration files, or environment variables needed!
Usage
Once configured, you can interact with Day One through Claude Desktop:
Examples
π βOn This Dayβ Feature
The MCP server excels at retrieving historical entries for reflection and memory recall:
Query: βShow me all my journal entries for βon this day,β today: June 14th.β
Result: Claude automatically:
- Uses the
get_entries_by_date
tool to search June 14th across multiple years - Groups entries by year with βX years agoβ labels
- Shows detailed content previews with timestamps and metadata
- Includes entry titles, photos/attachments indicators, and full context
Example Output:
π On This Day (06-14) - Found 2 entries: ποΈ 2023 (2 years ago): β’ Morning thoughts (8:30 AM) [Personal] - Reflection on summer goals and upcoming vacation plans. Looking forward to some time off to recharge and spend time with family. ποΈ 2021 (4 years ago): β’ Weekend activities (2:15 PM) [Travel] β - Great day exploring the local farmers market. Tried some amazing local honey and picked up fresh ingredients for dinner. This entry includes photos. #weekend #local #food No entries found for June 14th in other years (searched back 5 years).
This provides a powerful way to:
- Reflect on past experiences from the same date
- Track personal growth across years
- Rediscover forgotten memories and insights
- See patterns in your life and thinking
βοΈ Creating Entries
- βCreate a journal entry about my dayβ - Creates entry with your content
- βCreate a starred entry about my vacation with photos from /path/to/photo.jpgβ - Creates entries with attachments and metadata
- βAdd a journal entry with location coordinates for my current tripβ - Creates location-aware entries
- βAdd tags #work #meeting to an entry about the team standupβ - Creates tagged entries
π Reading & Searching
- βShow me my recent journal entriesβ - Displays recent entries with dates, tags, and previews
- βSearch my journal for entries about workβ - Finds entries containing specific text
- βWhat were my journal entries on this day?β - NEW: Shows βOn This Dayβ entries from previous years
- βShow me entries from June 14th in past yearsβ - NEW: Date-specific historical entries
- βList my Day One journals with entry countsβ - Shows actual journals and statistics
- βHow many entries do I have?β - Gets real entry counts from database
- βFind entries from last weekβ - Search by date ranges
Available MCP Tools
βοΈ Write Tools (CLI-based)
- create_journal_entry - Create entries with rich metadata (attachments, location, tags, etc.)
- create_entry_with_attachments - Specialized for file attachments (photos, videos, audio, PDFs)
- create_location_entry - Specialized for location-aware entries with coordinates
π Read Tools (Database-based)
-
read_recent_entries - NEW: Read recent journal entries with full metadata
- Parameters: limit (1-50), journal (optional filter)
- Returns: Formatted entries with dates, tags, previews, starred status
-
search_entries - NEW: Search entries by text content
- Parameters: search_text, limit (1-50), journal (optional filter)
- Returns: Matching entries with context and metadata
-
list_journals_from_db - NEW: List actual journals with statistics
- Returns: Journal names, entry counts, last entry dates
-
get_entry_count_from_db - NEW: Get real entry counts
- Parameters: journal (optional filter)
- Returns: Actual entry count from database
-
get_entries_by_date - NEW: Get βOn This Dayβ entries from previous years
- Parameters: target_date (MM-DD or YYYY-MM-DD), years_back (default 5)
- Returns: Entries from the same date across multiple years with full content
π Legacy Tools (CLI limitations)
- list_journals - Provides guidance about CLI limitations
- get_entry_count - Explains CLI counting limitations
Development
# Install development dependencies
uv sync --dev
# Run the server directly (for testing)
uv run python -m mcp_dayone.server
# Run tests (when implemented)
uv run pytest
Troubleshooting
Day One CLI Not Found
- Verify Day One CLI is installed:
dayone2 --version
- Check that
dayone2
is in your PATH - Install Day One app and CLI from: https://dayoneapp.com/guides/tips-and-tutorials/command-line-interface-cli
Claude Desktop Connection Issues
- Verify the absolute path in
claude_desktop_config.json
- Check Claude Desktop logs for MCP server errors
- Restart Claude Desktop after configuration changes
Permission Issues
- Ensure Day One CLI has proper permissions to access your journals
- Run Day One app once to initialize if needed
CLI Limitations
- Day One CLI only supports creating entries (
new
command) - Listing journals and counting entries are not supported by the CLI
- Use the Day One app interface to view journals and entry counts
- All entry creation features (attachments, location, etc.) work fully
License
MIT