DearDiary MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@DearDiary MCP Serversearch my diary for mentions of my grandmother"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
DearDiary · 亲爱的日记
Your handwritten diaries, remembered by every AI. 拍下你的旧日记,让每个 AI 都认识你。
Photograph your handwritten diaries. DearDiary transcribes them with a vision LLM, distills them into a structured, local-first knowledge base, and hands that lifetime of context to any AI — from a one-click copy-paste profile to a full MCP server. Switch AI apps as often as you like; they all get to know you instantly.
中文文档 → · MIT License · Node 20+
Why
People increasingly confide in AI — and increasingly hop between AI apps. Every hop resets to a stranger. Meanwhile, for many of us, the richest record of who we are isn't in any app: it's the stack of paper diaries we've kept since childhood.
Existing "AI memory" tools (mem0, OpenMemory, supermemory, …) assume memory is born digital — chats, files, screenshots. They remember what you told the AI. DearDiary knows who you were before AI existed. Existing journal MCP servers help an AI write new entries; DearDiary lets AI read the decades you already wrote.
Everything runs on your machine. Photos leave it only as API calls to a vision model you choose (or never, with Ollama). The output is plain Markdown you own forever.
Related MCP server: research-memory-mcp
How it works
npx deardiary ← the only command a non-technical user ever needsA local web app opens in your browser:
Pick a folder for your journal vault (plain Markdown + photos, Obsidian-compatible, yours forever).
Drop in photos of diary pages — no renaming, no ordering chores. Photograph the notebook page by page; the pipeline sorts photos by EXIF capture order, reads each handwritten date header, stitches entries that span multiple pages, splits pages holding several short entries, and infers missing years from context ("3月14日" after a 2019 entry → 2019, Dec→Jan rolls the year). Transcription is faithful — spelling errors preserved, illegible characters marked ▢, uncertain readings marked
[?]. Every guessed date is flagged for one-click human confirmation; nothing uncertain ever pretends to be certain.Proofread side-by-side with the photo, right in the browser. Corrections are just text edits.
Build: a cheap model extracts people / places / topics / events / mood per entry, then maintains a life timeline, person cards, and
profile/core.md— a living "who I am" distilled from everything.Connect your AI — three tiers, lowest friction first:
Tier | Works with | What you do |
① Copy & paste | Any AI (ChatGPT, Claude, Doubao, Kimi…) | Copy the generated profile into its custom instructions / memory. Zero setup. |
② Local MCP (stdio) | Claude Code, Claude Desktop, Cursor… | One command / one config block, shown ready-to-copy in the UI. The AI can then search and read every entry on demand. |
③ Local MCP (HTTP) | Any Streamable-HTTP MCP client on your machine | Point it at |
The MCP surface is 7 read-only tools: get_profile, search_journal
(CJK-aware full-text), read_entry, browse_entries, get_timeline,
list_people, get_person. Humans write; agents read — nothing an AI
does can touch your diary.
Architecture
flowchart LR
A["📷 photos"] -->|"vision LLM<br/>faithful transcription"| B["entries/*.md<br/>verbatim text"]
B -->|"cheap LLM"| C["frontmatter:<br/>people/places/topics/<br/>events/mood"]
C --> D["profile/core.md<br/>timeline.md · people/*.md"]
B --> E["local web app<br/>+ MCP server"]
C --> E
D --> E
E --> F["🤖 any AI"]Four layers, each rebuildable from the one below; Markdown is the source of truth. Search is an in-memory inverted index with CJK bigram tokenization — a lifetime of diaries is ~10 MB of text, so there is no database, no embeddings infrastructure, no native deps beyond image processing. TypeScript end to end: one language for pipeline, server, MCP, and UI.
Install & run
# once published to npm:
npx deardiary
# from source, today:
git clone https://github.com/<you>/deardiary && cd deardiary
npm install
npm run build
node dist/cli.js # opens http://127.0.0.1:7717Try it instantly with the bundled fictional 26-year demo journal — no API key needed to browse or serve it:
node dist/cli.js --vault examples/demo-vaultDeveloper commands: deardiary init|import|build|search|status (all
scriptable), deardiary mcp (stdio server, what tier-② configs invoke).
Choosing models
Set everything in the web UI (Settings) — keys are stored only inside your
vault's .deardiary/config.json, which its .gitignore excludes. Presets
ship for:
Provider | Notes |
Claude (Anthropic) | Recommended for transcription quality |
Alibaba DashScope (qwen-vl) | OpenAI-compatible |
Moonshot / Zhipu / others | Any OpenAI-compatible endpoint works |
Ollama | Fully local — photos never leave your machine |
Transcription is the foundation — use a strong vision model (≈ $0.02–0.03 per page with Claude Sonnet). Distillation runs fine on cheap fast models (≈ $2 per 1,000 entries with Haiku).
iPhone HEIC photos: shoot with "Most Compatible" format or export as JPEG (HEIC decoding is patent-encumbered; on the roadmap).
Design principles
Local-first, or it's not trustworthy. Diaries are the most intimate data a person owns. Plain files, your keys, your disk,
127.0.0.1only. (Rewind promised on-device and ended up inside Meta. Files can't be acquired.)The original is immutable; every layer rebuilds. Transcription will have errors — so photos are archived untouched, uncertainty is explicit (▢ /
[?]), and proofreading is editing a text file.The caller is an LLM — be a library, not an oracle. Give a smart agent a profile, a timeline, an index, and search; it will leaf through your journal like a thoughtful human.
"Knows you instantly" is a latency requirement. Hence the distilled profile fast path — and the copy-paste tier that works with AIs that can't run MCP at all.
Humans write; agents read. The AI-facing surface is strictly read-only.
Why now
Frontier vision LLMs only recently crossed the handwriting threshold — zero-shot transcription now matches or beats specialized HTR systems that used to require per-hand model training. Reading a lifetime of handwriting became a commodity API call at almost the same moment MCP standardized handing that lifetime to any agent. DearDiary joins the two.
Privacy model
Photos go to exactly one place: the vision API you configured (or nowhere, with Ollama).
Everything else is local file I/O. The server binds to
127.0.0.1— not visible to your LAN. No telemetry, no accounts.Your vault is a folder. Git it, encrypt it, back it up — it's yours.
Roadmap
npm publish (
npx deardiaryfor real)Packaged desktop app (double-click, no Node required)
HEIC support · proofread helper (surface low-legibility entries)
Optional local semantic search for feelings-shaped queries
Optional
remember()write-tool for AI-learned facts — into a separate file, never the diary (under debate; open an issue)Export your diaries as an EPUB/PDF book
Contributing
src/core/prompts.ts is the soul of the pipeline — improvements to
transcription fidelity for messy handwriting, more languages, and
vertical/grid paper are especially welcome. npm test must stay green (46
tests incl. a real MCP client/server session). A reference Python
implementation of v0.1 lives in legacy/python/.
License
MIT. Your diaries are yours; so is this tool.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that integrates with Claude Desktop for managing personal journal entries, providing both a web viewer for browsing journals and tools for adding, searching, and analyzing journal content.Last updated6432MIT
- Alicense-qualityBmaintenanceAn MCP server that provides controlled read/write tools for managing local-first research memory in an Obsidian vault, enabling AI agents to maintain project context across sessions.Last updated321MIT
- Alicense-qualityBmaintenanceA local MCP server for journaling, organizing, and recalling your work. It captures entries as plain markdown files, indexes them for full-text and structured search, and enables querying via natural language.Last updated1MIT
- Alicense-qualityDmaintenanceMCP server for JournalOwl that enables AI-powered journaling integration, allowing users to create, search, and browse journal entries, access weekly reviews, and get personalized suggestions directly from their AI assistant.Last updated10MIT
Related MCP Connectors
Person-owned, portable AI memory as a remote MCP server, readable and writable by any MCP client.
Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only
Official remote MCP server for Archivist AI TTRPG campaign memory: characters, sessions, and more.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/n1nja88888/deardiary'
If you have feedback or need assistance with the MCP directory API, please join our Discord server