The jrnl MCP Server provides read-only access to your jrnl command-line journal entries through Claude, enabling natural language interaction with your journal data.
Search and filter journal entries by date range (using flexible formats like "yesterday" or specific dates), tags, text content, starred status, or specific journals, with configurable result limits
List all tags with usage counts to understand tag frequency across your journals
Analyze tag co-occurrence to identify which tags frequently appear together in entries
Get journal statistics including analytics grouped by time period (day/week/month/year) with optional top tag inclusion
Manage multiple journals by listing all available journals and switching between them for subsequent operations
Integrate with Claude Desktop for seamless natural language querying and analysis of your journal data
jrnl MCP Server
A Model Context Protocol (MCP) server that provides read-only access to jrnl (command-line journal) entries.
Prerequisites
Node.js 18 or higher
jrnl installed and configured (
pip install jrnl)
Related MCP server: Needle MCP Server
Installation
Claude Desktop Configuration
Add the following to your Claude Desktop configuration file:
macOS
Location: ~/Library/Application Support/Claude/claude_desktop_config.json
Configuration
Note: If you installed via npm link, the command will be globally available.
For local development without global installation, use:
Available Tools
search_entries - Search journal entries with filters
list_tags - List all tags with usage counts
get_statistics - Get journal statistics
analyze_tag_cooccurrence - Analyze tag co-occurrences
list_journals - List available journals
set_journal - Switch to a different journal
Development
Publishing
This package uses GitHub Actions with npm Trusted Publishing (OIDC) for automated publishing. No npm tokens required!
Initial Setup (One-time)
Configure npm Trusted Publishing for this package:
Go to https://www.npmjs.com/package/jrnl-mcp/access
Click "Publishing access" or "Trusted publishers"
Add a new trusted publisher:
Provider: GitHub Actions
Repository owner: yostos
Repository name: jrnl-mcp
Workflow name: publish.yml
Environment: (leave blank)
Publishing a New Version
Update the version in
package.json:npm version patch # or minor, or majorPush the version commit and tag to GitHub:
git push && git push --tagsCreate a new release on GitHub:
Go to https://github.com/yostos/jrnl-mcp/releases
Click "Draft a new release"
Select the tag you just pushed
Add release notes
Click "Publish release"
GitHub Actions will automatically:
Run tests
Build the package
Publish to npm with provenance (using OIDC, no tokens needed!)
The published package will have attestations that prove it was built from your GitHub repository.
Testing with Claude Desktop
Build the project:
npm run buildUpdate your Claude Desktop config with the correct path
Restart Claude Desktop
Test by asking Claude to search your journal entries
Example prompts:
"Use jrnl to show me my journal entries from last week"
"Using jrnl, what tags am I using in my journal?"
"Can you use jrnl to show me statistics about my journal?"
"Search my journal entries for entries tagged with @work using jrnl"