Project M · local-first notebook MCP built-in

A notebook your AI tools can actually read.

Project M keeps every note, task, and image as plain files on your disk and runs a zero-config MCP server so Claude, Cursor, and any client can search and write them. No cloud. No account. No lock-in.

Alpha v0.1.5 macOS and Windows Works offline
Project M
MCP online127.0.0.1:7465
All notes / Designing the MCP handshake

Designing the MCP handshake

Edited 2m ago3 backlinks1 image

The server auto-starts on launch and advertises a single Streamable HTTP endpoint. The whole point is zero config: a client copies one block and the handshake works.

iBind 127.0.0.1:7465first; on conflict, walk 7466 -> 7467 before the status dot flips red.

Once the listener is live the chrome dot turns green and the four tools -search, create, list, and get-assets - become reachable.

Rotate bearer token after first client paste
Document fallback port walk 7466 -> 7467
Attach sequence diagram alt-text
AI Agent Console
Project M MCP server connected at 127.0.0.1:7465.
Ready: search_notes, create_note, list_tasks, get_note_assets.
Connects in one paste with
CClaude DesktopCursorKKiroany MCP client
The difference

Your notebook is an MCP server.

Most note apps lock your words inside a database. Project M opens a door. The server auto-starts on launch, generates its own bearer token, and exposes four read/write tools so an agent can pull context and file new notes without touching the cloud.

  • Zero configCopy one mcpServers block. No ports to juggle, no tokens to hand-edit.
  • Loopback-onlyBinds 127.0.0.1 behind a bearer token. Nothing leaves your machine.
  • Read and writeAgents search your vault and create notes and tasks - round-trip, not read-only.
claude_desktop_config.jsonCopy
{
  "mcpServers": {
    "project-m": {
      "url": "http://127.0.0.1:7465/mcp",
      "headers": {
        "Authorization": "Bearer pm_live_****3f9a"
      }
    }
  }
}
# server live - token auto-generated
search_notesFTS5 over titles, prose and alt-text
create_noteWrite a new note or task
list_tasksFilter by status and due date
get_note_assetsReturn images and descriptions
Everything in one window

Built for thinking, wired for agents.

A fast, native desktop app - notes, tasks, search, and capture - with every surface also reachable over MCP.

Instant full-text search

SQLite FTS5 ranks titles, prose, and image descriptions with highlighted snippets - results land before you finish typing.

Quick capture, anywhere

A global ⌘⇧Space hotkey drops a note from any app and files it the moment you hit save.

Backlinks that connect

Every mention becomes a link. Walk the graph of how your notes reference each other - no plugins, no setup.

Searchable image alt-text

Describe an image once and it joins the index. Agents can fetch the picture and its description through one tool call.

Notes and tasks together

Checklists live beside prose and stay queryable by status and due date - for you in the sidebar, for agents over MCP.

Import your vault

Bring an Obsidian library in cleanly: front-matter maps to props, wiki-links become edges, attachments come along.

Local-first, for real

Plain files. Your disk. Forever.

Your library is a folder you can see, back up, and open in any editor. Project M is the nice window on top - never the thing that holds your words hostage.

  • No account, no sync server. Open the app and start writing - nothing to log into.
  • Use your own backup. The vault is just files - point Time Machine, git, or Dropbox at it.
  • Leave whenever. An open format means there is always a door out - your notes outlive the app.
~/Documents/project-m
project-m
mcp-handshake.md
bearer-token-rotation.md
fts5-bench-notes.md
assets
sequence-diagram.png
index.sqlite
M

Keep your notes. Give your agents the keys.

Download Project M, paste one config block, and your AI tools can read and write the notebook that lives entirely on your machine.

v0.1.5 alpha · universal build · free