mothermachine

Browse / Notes and knowledge

Memos

Single-binary self-hosted memo timeline with an OpenAPI-derived MCP endpoint at /mcp.

AdaptableOperable ProductWeb app Deterministic GoTypeScript MCP server License: MIT

Memos is a Go single binary for short-form notes: a chronological markdown timeline with tags, attachments, pins, comments, reactions, and selective sharing. The server exposes a REST and gRPC API and, since 2026, a curated MCP endpoint at /mcp built from the same OpenAPI spec, so an agent authenticates with an access token and drives memos in-process against the API.

Use it when
  • you want a private micro-journal an agent can post to and read back with one access token
  • you want a Twitter-style work log for a small team on one container with zero telemetry
Gotchas
  • MCP tools are a curated allowlist over the API: admin, users, and webhooks stay out of reach
  • MCP uses Streamable HTTP at /mcp and needs an access token from the user's settings
  • Env var names are taken from usememos.com docs by the sourcing pass; re-verify against cmd/memos/main.go

Last activity Sep 3, 2026. Fit: adaptable 3, operable 3.

Editions

Free · Free open source

For agents: JSON · Markdown

Adaptable: what is yours to change

Make it yours

Config only7 things to edit

No config file: the binary reads flags or MEMOS_* env vars. MEMOS_PORT and MEMOS_DATA set the listener and data directory; MEMOS_DRIVER and MEMOS_DSN move it from SQLite to MySQL or Postgres; MEMOS_MODE selects prod or dev; MEMOS_INSTANCE_URL sets the public URL. Everything else is workspace settings in the UI.

Env vars
MEMOS_MODE MEMOS_PORT MEMOS_DATA MEMOS_DRIVER MEMOS_DSN MEMOS_INSTANCE_URL
Config files
docker-compose.yml
Prompt files
none
Accounts you need
none

Source

Operable: what an agent can drive

Interface

OfficialMCP serverpublished by the builderlocal

How an agent can drive an Operable Listing, in five levels: native (built for the agent as the primary interface), official (the Builder ships an agent interface), wrapped (a third party wraps the software's API), config (an agent can only drive it by editing files), gui (screen control only). An interface is official only when it is published by the same organization that ships the software. GUI-level Listings are allowed and sorted last.

Docs
github.com/usememos/memos/tree/main/server/router/mcp

Reach

Partial coverage. 9 of 10 jobs reachable through the stated interface.

JobThrough the interfaceEvidence
Create, update, and delete memosReachablecatalog.go allowlist: MemoService_CreateMemo, UpdateMemo, DeleteMemo
List and search memosReachableMemoService_ListMemos, GetMemo
Attach filesReachableAttachmentService_CreateAttachment, ListAttachments, DeleteAttachment; MemoService_SetMemoAttachments
Comment on memosReachableMemoService_CreateMemoComment, ListMemoComments
React to memosReachableMemoService_UpsertMemoReaction, ListMemoReactions, DeleteMemoReaction
Link memos to each otherReachableMemoService_SetMemoRelations, ListMemoRelations
Tag and pinReachabletags are inline #hashtags in content; pinned is a memo field on UpdateMemo
Set visibility (private, workspace, public)Reachablevisibility field on the memo resource
Memo view statisticsReachableMemoViewService_ListMemoViews
Users, workspace settings, webhooks, shortcutsNot reachablenot in the curated allowlist; only AuthService_GetCurrentUser is exposed

Code stack

Languages
GoTypeScript
Frameworks
EchogRPC-GatewayReact
Package manager
go modules, pnpm
Database
SQLiteMySQLPostgreSQL
Hosting target
dockerbinary
Built
Mixed (recorded, never ranked)

Evidence and confidence

FieldWhere it was seenConfidence
formFactorREADME: self-hosted web app, Docker quick start95%
executionModelno model in the stack95%
operabilityserver/router/mcp/README.md: OpenAPI-driven MCP endpoint at /mcp using the official Go SDK; catalog.go allowlist95%
effortMEMOS_* env vars documented at usememos.com/docs; no config file70%
editionsMIT; README 'zero telemetry'; no paid edition95%
activepushedAt 2026-09-03–
provenanceAGENTS.md at root; project from 202140%
reach90%

Open questions

  • Confirm MEMOS_* names in cmd/memos/main.go (docs deploy page did not list them)
  • Is the /mcp endpoint enabled by default or behind a workspace setting?

Sources