A Model Context Protocol (MCP) server that provides AI assistants with programmatic access to Day One journals through stdio communication.
The Day One MCP Server is provided as part of the Day One Mac application and implements the Model Context Protocol to expose Day One journal operations as tools that AI assistants can invoke.
This repository provides:
- π¦ Distribution of the
.mcpb
bundle for easy installation in MCP clients - π Documentation for setup and usage
Capabilities:
- π Programmatic journal entry creation and updates
- π Full-text search across journal entries
- π·οΈ Tag and metadata management
- π Date-based entry retrieval and filtering
The MCP server runs as a local stdio-based process that communicates via JSON-RPC 2.0:
- Transport: stdio (standard input/output)
- Data Access: Direct read/write to Day One's Core Data store
- Security: Journal-level access control with opt-in configuration
Privacy Note: The MCP server runs entirely on your local machine. However, MCP clients will send retrieved journal content to their respective LLM providers for processing.
- macOS only - The Day One MCP server is currently available only for Day One for Mac
- Day One Mac app - Available on the Mac App Store
- Day One CLI - Required for MCP server functionality
Download and install Day One from the Mac App Store:
The MCP server requires the Day One CLI. Install it by running:
sudo bash /Applications/Day\ One.app/Contents/Resources/install_cli.sh
This installs the dayone
command to /usr/local/bin/dayone
.
Verify installation:
/usr/local/bin/dayone --version
The Day One MCP server is invoked via the dayone mcp
command, which starts a stdio-based MCP server process.
Download and install the pre-built .mcpb
bundle:
- Download the latest
.mcpb
file from Releases - Open Claude Desktop β Settings β Extensions
- Drag and drop the
.mcpb
file to install
claude mcp add --scope user --transport stdio dayone-cli /usr/local/bin/dayone mcp
Add to ~/.cursor/mcp.json
:
{
"mcpServers": {
"dayone-cli": {
"command": "/usr/local/bin/dayone",
"args": ["mcp"],
"transport": "stdio"
}
}
}
Most MCP clients accept stdio server configurations. Configure with:
- command:
/usr/local/bin/dayone
- args:
["mcp"]
- transport:
stdio
The server communicates via JSON-RPC 2.0 over stdin/stdout. Refer to your MCP client's documentation for configuration specifics.
For security and privacy, you must explicitly grant MCP access to journals:
- Open Day One on your Mac
- Go to Preferences β Labs
- Enable "Mac CLI MCP Server"
- Click "MCP Access Control"
- Toggle on the journals you want to make accessible
Important: Only enabled journals will be visible to AI assistants. You have complete control over access.
The server exposes the following MCP tools via the tools/list
and tools/call
methods:
Returns all journals with MCP access enabled.
Example:
"Show me all my journals"
Creates a new journal entry with markdown content and optional metadata.
Parameters:
text
(required) - Entry content in markdown formatjournal_id
orjournal_name
(optional) - Target journaldate
(optional) - ISO8601 timestamp (e.g.,2025-08-20T15:30:00Z
)tags
(optional) - Comma-separated tag listattachments
(optional) - Comma-separated file pathsstarred
,all_day
(optional) - Boolean flags
Example:
"Create a journal entry about today's meeting with tags 'work' and 'meeting'"
Retrieves entries via full-text search, date filters, or journal constraints.
Parameters:
query
(optional) - Full-text search query (triggers search index)journal_ids
orjournal_names
(optional) - Filter by journalsstart_date
,end_date
(optional) - Date range in YYYY-MM-DD formaton_this_day
(optional) - MM-DD format for anniversary querieslimit
(optional) - Max results (default: 10, max: 50)offset
(optional) - Pagination offset (ignored for search queries)
Examples:
"Find entries about vacation from last summer"
"What did I write on this day in previous years?"
"Show recent entries from my Travel Journal"
Updates an existing entry's content or metadata.
Parameters:
entry_id
(required) - Entry UUIDjournal_id
(optional) - Journal sync ID for disambiguationtext
(optional) - New markdown contenttags
(optional) - Comma-separated tags (replaces existing)attachments
(optional) - File paths to addstarred
,all_day
(optional) - Boolean flags
Example:
"Add the tag 'important' to my last entry"
The MCP server refuses to start when Day One's password lock is enabled, returning an error on stderr. This prevents unauthorized access when the Mac is unlocked but Day One requires authentication.
Access is controlled at the journal level via Day One's preferences. The server only exposes journals with the isMcpAccessAllowed
flag set to true
. All operations validate journal access before executing.
The MCP server process runs locally with no network I/O. All data access is performed directly against Day One's Core Data SQLite store. However, note that MCP clients will typically send retrieved content to remote LLM APIs.
For issues or questions:
- π Day One Help Center
- π Report an Issue
Β© 2025 Automattic, Inc. Day One is a registered trademark of Automattic, Inc.