Skip to main content

MCP server for Day One Journal integration with Claude Desktop

Project description

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

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:

  1. Download and install Day One from the Mac App Store or Day One website
  2. The Day One CLI is automatically included with the app - no separate installation needed!
  3. 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:

  1. Uses the get_entries_by_date tool to search June 14th across multiple years
  2. Groups entries by year with "X years ago" labels
  3. Shows detailed content previews with timestamps and metadata
  4. 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)

  1. create_journal_entry - Create entries with rich metadata (attachments, location, tags, etc.)
  2. create_entry_with_attachments - Specialized for file attachments (photos, videos, audio, PDFs)
  3. create_location_entry - Specialized for location-aware entries with coordinates

๐Ÿ“– Read Tools (Database-based)

  1. 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
  2. search_entries - NEW: Search entries by text content

    • Parameters: search_text, limit (1-50), journal (optional filter)
    • Returns: Matching entries with context and metadata
  3. list_journals_from_db - NEW: List actual journals with statistics

    • Returns: Journal names, entry counts, last entry dates
  4. get_entry_count_from_db - NEW: Get real entry counts

    • Parameters: journal (optional filter)
    • Returns: Actual entry count from database
  5. 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)

  1. list_journals - Provides guidance about CLI limitations
  2. 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

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_quevin_mcp_dayone-2.0.2.tar.gz (15.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iflow_mcp_quevin_mcp_dayone-2.0.2-py3-none-any.whl (16.4 kB view details)

Uploaded Python 3

File details

Details for the file iflow_mcp_quevin_mcp_dayone-2.0.2.tar.gz.

File metadata

  • Download URL: iflow_mcp_quevin_mcp_dayone-2.0.2.tar.gz
  • Upload date:
  • Size: 15.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_quevin_mcp_dayone-2.0.2.tar.gz
Algorithm Hash digest
SHA256 af2fad43d86b7e6b1ceeb0159eae060950000aa7d4c323e16d3e1389b6d65a25
MD5 8cd348ed79197cb4372ba6b98e041b4f
BLAKE2b-256 3dd86e939746eafeb13f70de25636433c897b3b8a92e75384cd68deb5b46dcb7

See more details on using hashes here.

File details

Details for the file iflow_mcp_quevin_mcp_dayone-2.0.2-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_quevin_mcp_dayone-2.0.2-py3-none-any.whl
  • Upload date:
  • Size: 16.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_quevin_mcp_dayone-2.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 93a8460a10ce310753382552587b9137cf5b024b8f1ad2ea6d49a0098ebc2a54
MD5 c4ca14a7e39e1e6790e9f6c4cca9f3e5
BLAKE2b-256 db465b2899ad5225dea4d9070c0de0a1186f52ad4217fd7d7cbf7e48530e2b39

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page