Day One MCP Server
The Day One MCP Server lets you connect Day One on Mac to an AI assistant (such as Claude Desktop, ChatGPT, or any other MCP-compatible client), so the assistant can read, search, and create journal entries on your behalf. Connecting (or authorizing) an AI assistant to Day One is opt-in: nothing is enabled by default, and you choose which journals each assistant can access. Common questions this guide covers: how to authorize an AI assistant (Claude Desktop, ChatGPT, etc.), how to connect Day One to an AI assistant, how to set up the Day One MCP integration, and how to control which journals AI assistants can read.
Setup and Connection
To connect an AI assistant (such as Claude Desktop, ChatGPT, or any other MCP-compatible client) to Day One:
- Install the Day One CLI. You only need to do this once. From the menu bar in Day One, choose Day One → Install Command Line Tools, or run
sudo bash /Applications/Day\ One.app/Contents/Resources/install_cli.shin Terminal. For full details, see the Day One CLI installation guide. - Enable MCP Access Control. In Day One, go to Preferences → Labs → MCP Access Control, then grant access to each journal you want the AI assistant to read or write.
- Authorize the AI assistant. In your AI assistant (for example, Claude Desktop or ChatGPT), open its MCP server / extensions settings and add the Day One MCP server. Once added, the AI assistant can use the tools listed below.
The same pattern applies to any MCP-compatible AI assistant: install the CLI, enable MCP Access Control for the journals you want to share, then point the AI assistant at the Day One MCP server. The integration runs locally on your Mac (see Privacy and Security).
Available Tools
The Day One MCP Server provides the following tools to AI assistants:
List Journals
Returns a list of all journals that have MCP access enabled, including their IDs and names.
Use cases:
- “Show me all my journals”
- “What journals do I have?”
Create Entry
Creates a new journal entry with text content and optional metadata.
Parameters:
- text (required): The content of the journal entry in markdown format
- journal_id or journal_name (optional): Specify which journal to use
- date (optional): Entry date in ISO8601 format (e.g., ‘2025-08-20T15:30:00Z’)
- tags (optional): Comma-separated list of tags (e.g., ‘work,meeting,important’)
- attachments (optional): Comma-separated file paths to attach (images, videos, audio, PDFs)
- starred (optional): Mark the entry as starred/favorite
- all_day (optional): Mark the entry as an all-day event
Use cases:
- “Create a journal entry about today’s meeting”
- “Add a new entry to my Work Journal with tags ‘project’ and ‘ideas’”
- “Write a journal entry dated yesterday about my trip”
Get Entries
Retrieves journal entries by search query, date range, or from specific journals.
Parameters:
- journal_ids or journal_names (optional): Specify which journals to search
- query (optional): Search text to find entries
- start_date (optional): Filter entries from this date onwards (YYYY-MM-DD)
- end_date (optional): Filter entries up to this date (YYYY-MM-DD)
- limit (optional): Maximum number of entries to return (default: 10, max: 50)
Use cases:
- “Find all entries about ‘vacation’ from last year”
- “Show me entries from my Travel Journal in August”
- “What did I write about on this day in previous years?”
- “Search for entries mentioning ‘project alpha’”
Update Entry
Updates an existing journal entry’s content or metadata.
Parameters:
- entry_id (required): The ID of the entry to update
- journal_id (optional): Journal ID for unique identification
- text (optional): New content for the entry in markdown format
- tags (optional): Comma-separated list of tags (replaces existing tags)
- attachments (optional): File paths to add as attachments
- starred (optional): Update starred status
- all_day (optional): Update all-day event status
Use cases:
- “Update yesterday’s entry to add more details”
- “Add the tag ‘important’ to my last entry”
- “Edit my most recent entry to fix a typo”
Privacy and Security
Password Lock
If you have password lock enabled in Day One, the MCP server will not start. This ensures your journals remain secure when your Mac is unlocked but Day One requires authentication.
Journal-Level Access Control
You have granular control over which journals are accessible through the MCP server. Only journals you explicitly enable in the MCP Access Control panel can be accessed by AI assistants.
Local Processing
The Day One MCP server runs entirely on your Mac. Your journal data is never sent to external servers – it’s only accessible to AI assistants you’ve configured to use the MCP server.
Troubleshooting
“CLI Not Installed” Error
Make sure you’ve installed the Day One CLI by following the installation guide.
You can check if Day One CLI is properly installed by executing the following command in Terminal.app:
$ /usr/local/bin/dayone -version
If it’s installed correctly, you should see output similar to the following.
Version: 2025.23.1709
Loaded From: /Applications/Day One.app/Contents/Frameworks/CLIKit.framework
Also, you can check if Day One MCP server is enabled in the Labs by the following command.
$ /usr/local/bin/dayone mcp
If it’s enabled, you should see output similar to the following. (Then, Ctrl + C to stop the MCP server)
2025-11-20 09:13:06:950 [main ] I <App> **** NEW SESSION ****
2025-11-20 09:13:06:950 [main ] I <App> **** NEW SESSION ****
2025-11-20 09:13:06:951 [main ] I <App> dayone/0 (en_US; macOS/26.1; MacBook Pro; MacBookPro18,2; Release/0; Core/1709) <11/20/2025 09:13:06 EST(-0500)> <11/20/2025 07:13:06 MST(-0700)>
2025-11-20 09:13:06:951 [main ] I <App> dayone/0 (en_US; macOS/26.1; MacBook Pro; MacBookPro18,2; Release/0; Core/1709) <11/20/2025 09:13:06 EST(-0500)> <11/20/2025 07:13:06 MST(-0700)>
2025-11-20 09:13:06:955 [com.apple.root.u] I <Core> Starting Day One MCP Server
2025-11-20 09:13:06:955 [com.apple.root.u] I <Core> Starting Day One MCP Server
“No Journals Available” Message
This means no journals have MCP access enabled. Go to Day One → Preferences → Labs → MCP Access Control and enable access for the journals you want to use.
MCP Server Not Working in AI Assistant
- Verify the CLI is installed: Open Terminal and run
/usr/local/bin/dayone --version - Check that MCP access is enabled for at least one journal
- Restart your AI assistant application
- In your AI assistant (for example, Claude Desktop): check its MCP server / extensions settings to ensure Day One MCP is installed and authorized
FAQs
Is the MCP server included in Day One?
The MCP server code is included in Day One’s frameworks, but it is completely inactive by default. To use it, you must:
- Install the Day One Command Line Interface (CLI). From the menu bar in Day One, choose Day One → Install Command Line Tools, or run
sudo bash /Applications/Day\ One.app/Contents/Resources/install_cli.shin Terminal. See the Day One CLI installation guide for details. - Click “MCP Access Control” in Day One → Preferences → Labs
- Grant explicit access to each journal you want to make available
Without these deliberate steps, the MCP functionality remains dormant and cannot access your journals.
How do I completely disable or remove MCP access?
You have several options depending on your needs:
- Revoke journal access: Disable individual journals in Day One → Preferences → Labs → MCP Access Control
- Complete removal: Uninstall the Day One CLI by deleting
/usr/local/bin/dayone(or wherever you installed it)
Which AI assistants does the Day One MCP Server work with?
The Day One MCP Server works with any AI assistant that supports the Model Context Protocol (MCP). Common choices include Claude Desktop and ChatGPT, but any MCP-compatible client can connect using the same Day One MCP server endpoint.
How do I authorize an AI assistant (Claude Desktop, ChatGPT, etc.) to access Day One?
First, install the Day One CLI. From the menu bar in Day One, choose Day One → Install Command Line Tools, or run sudo bash /Applications/Day\ One.app/Contents/Resources/install_cli.sh in Terminal. See the Day One CLI installation guide for details.
Next, enable MCP Access Control for the journals you want the AI assistant to read (Day One → Preferences → Labs → MCP Access Control).
Finally, in your AI assistant (for example, Claude Desktop or ChatGPT), open its MCP server / extensions settings and add the Day One MCP server. The AI assistant will then have access to the journals you authorized.
