Notesnook
FreeNot checkedBidirectional note sync with the Notesnook note-taking app via filesystem-based export and import.
About
Bidirectional note sync with the Notesnook note-taking app via filesystem-based export and import.
README
MCP server bridging Notesnook with OpenClaw. Syncs notes hourly via the filesystem and exposes bidirectional note operations over HTTP/SSE.
Prerequisites
- Node.js >= 22
- Notesnook desktop app (Linux)
Installation
./install.sh
The installer will:
- Check Node.js version
- Run
npm installandnpm run build - Prompt for your sync folder path
- Create
export/andimport/subdirectories - Install and enable the systemd user service
- Run the first-run wizard to configure notebook access
Sync Model
Notesnook App (GUI)
│
│ Export all notes → Markdown → save zip to {SYNC_ROOT}/export/
│
▼
{SYNC_ROOT}/
├── export/ ← Notesnook drops .zip exports here
│ └── extracted/ ← MCP server extracts zips here (auto-managed)
├── import/ ← MCP server writes new/updated .md files here
│ └── {notebook}/ ← One subfolder per notebook
└── notesnook.db ← SQLite index maintained by MCP server
notesnook-mcp-server (HTTP/SSE daemon on :3457)
├── Sync Engine (hourly cron + chokidar watcher)
│ ├── Unzips latest export → parses Markdown
│ ├── Derives notebook from folder structure
│ ├── Diffs against SQLite index (last-write-wins)
│ └── Writes agent notes to import/{notebook}/*.md
│
└── MCP HTTP/SSE server
└── 9 tools (search, get, create, update, notebooks, todo, sync)
Export from Notesnook
- Open Notesnook desktop
- Go to Settings → Backup & Export
- Choose Export all notes → Markdown
- Save the
.zipfile to{SYNC_ROOT}/export/
The server will detect the new zip within seconds (chokidar watcher) or at the next hourly cron tick.
Import to Notesnook
Notes created or updated by OpenClaw are written to {SYNC_ROOT}/import/{notebook}/. Notesnook will pick them up on the next app open.
Configuration
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
NOTESNOOK_SYNC_ROOT |
Yes | — | Path to your sync folder |
PORT |
No | 3457 |
HTTP server port |
config.json
Stored at {SYNC_ROOT}/config.json. Edited via the first-run wizard or notesnook_configure_notebook_access tool.
{
"syncRoot": "/path/to/sync",
"enabledNotebooks": ["daily survival", "art stuff"],
"firstRunComplete": true,
"lastSyncAt": "2025-01-01T12:00:00.000Z"
}
OpenClaw Integration
Add to your openclaw.json:
{
"agents": {
"list": [{
"id": "main",
"mcp": {
"servers": [{
"name": "notesnook",
"type": "sse",
"url": "http://localhost:3457/sse"
}]
}
}]
}
}
The server must be running (started automatically by systemd after installation).
Available Tools
| Tool | Description |
|---|---|
notesnook_search_notes |
Search notes by keyword, notebook, or tag |
notesnook_get_note |
Retrieve full content of a note by ID |
notesnook_create_note |
Create a new note |
notesnook_update_note |
Update a note's content, title, or tags |
notesnook_list_notebooks |
List notebooks and their access status |
notesnook_configure_notebook_access |
Enable or disable notebook access |
notesnook_get_todo |
Get the daily to-do list |
notesnook_update_todo |
Add, complete, or remove to-do items |
notesnook_trigger_sync |
Force an immediate sync |
Note Format
Notes are plain Markdown with no YAML front matter:
# Note Title
Note body content here...
- [ ] Incomplete item
- [x] Completed item
Notebooks are represented by folder names in the export zip.
License
MIT + Commons Clause — non-commercial use only. See LICENSE.
Installing Notesnook
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/johnfire/openclaw-notesnook-mcpFAQ
Is Notesnook MCP free?
Yes, Notesnook MCP is free — one-click install via Unyly at no cost.
Does Notesnook need an API key?
No, Notesnook runs without API keys or environment variables.
Is Notesnook hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Notesnook in Claude Desktop, Claude Code or Cursor?
Open Notesnook on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Notesnook with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
