Skip to main content
Glama
everlog-mcp

everlog-mcp

by jlconlin

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
EVERLOG_DIRNoEverlog data directory. Default: `~/Library/Group Containers/group.hummingbird`.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

Read-only access to the user's private Everlog journal (macOS journaling app).

  • Entry ids come from search_entries / on_this_day; pass them to get_entry for the full text.

  • Dates are Everlog's own local days (America/Denver), formatted YYYY-MM-DD.

  • search_entries uses SQLite FTS5 syntax: bare words are ANDed, "exact phrase", prefix*, OR, NOT, and stemming is on (run matches running). Omit query to browse by filter/date only.

  • get_entry shows attachments as placeholders like [image a1b2c3d4]; use get_attachment_image with the attachment_id from the entry's attachments list to view a photo (or pass include_images=true).

  • Journal content is personal; quote only what is needed to answer the question.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_journalsA

List all journals with entry_count, first_date, last_date (YYYY-MM-DD) and a hidden flag. Trashed entries are excluded. Use the names with the journal filter of other tools.

list_tagsA

List all tags (hierarchical tags appear as 'Parent/Child') with entry_count, most used first. A tag filter on a parent also matches its descendants.

search_entriesA

Search and browse journal entries. Returns total match count and a page of results, each with entry_id, date, journal, title, tags, word_count and a snippet (matches wrapped in «»).

query: full-text (SQLite FTS5): words are ANDed; "exact phrase"; prefix*; OR; NOT; stemmed. Invalid syntax falls back to matching all words. Omit to filter without text search. journal: journal name (case-insensitive). tag: tag path; also matches child tags. start_date / end_date: inclusive YYYY-MM-DD bounds on the entry's local day. sort: relevance (default with query) | newest (default without) | oldest. limit: 1-100 (default 20); offset for paging. Fetch full text with get_entry.

get_entryA

Get one entry in full: markdown text (attachments shown as placeholders such as [image a1b2c3d4], [audio a1b2c3d4 2:31]) plus date, modified time, journal, tags, location/coordinates/timezone, weather, bookmarked/pinned, word_count, the Everlog AI summary (if any) and an attachments list (attachment_id, type, size/duration, transcription). With include_images=true, up to max_images photos are returned as images after the entry.

get_attachment_imageA

Return an image attachment as JPEG, shrunk so its longest side is at most max_size pixels (default 1568). attachment_id is the id from get_entry's attachments list (the 8-char prefix in placeholders also works if unambiguous). Errors if the attachment is not an image or its bytes are missing.

on_this_dayB

Entries written on the same month/day in earlier years, newest first, with years_ago. date: YYYY-MM-DD reference day (default: today in America/Denver); only years before it are included. Same result shape as search_entries.

journal_statsA

Writing statistics: entries and total words per year (or month, 'YYYY-MM'), plus totals. Optionally restricted to one journal and/or an inclusive YYYY-MM-DD date range.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 7 tools

Disambiguation5/5

Each tool targets a distinct resource or operation: journal/tag listing, entry search, full-entry fetch, attachment retrieval, date-based recall, and aggregates. The only near-neighbors (search_entries vs on_this_day) are clearly separated by the 'same month/day in prior years' semantics.

Naming Consistency4/5

Five of seven names follow a clean verb_noun pattern (list_journals, list_tags, search_entries, get_entry, get_attachment_image). on_this_day and journal_stats break the pattern but are readable and unambiguous, so this is a minor deviation rather than a problem.

Tool Count5/5

Seven tools is well-scoped for a journaling server: metadata lists, search, fetch, attachment access, a recall view, and stats. No tool appears redundant or filler.

Completeness3/5

The surface is purely read-only and covers browsing, retrieval, and stats well, but there is no way to create, update, delete, or tag entries. Agents can read the journal completely but cannot write to it, which is a notable lifecycle gap.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues