Local MCP server
Run MemNote's MCP server on your own machine for assistants that connect over stdio.
@randomfact/memnote-mcp-server is the same MemNote MCP server as the
hosted one, packaged to run on your own computer. It
is the right choice when your assistant only speaks stdio — that is, when it
launches MCP servers as local processes and talks to them over standard input
and output — rather than connecting to a URL.
If your assistant supports custom HTTP connectors, the hosted server is less work: no Node.js, no config file, no updates to install.
Requirements
- Node.js 22.19 or newer. Check with
node --version. - A MemNote account with a verified email address.
You do not need to install anything ahead of time — the config below uses npx,
which fetches the package on demand and keeps it current.
Claude Desktop
Add MemNote to your Claude Desktop config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"memnote": {
"command": "npx",
"args": ["-y", "@randomfact/memnote-mcp-server"]
}
}
}
Restart Claude Desktop. MemNote’s tools appear once it reconnects.
Claude Code
claude mcp add memnote -- npx -y @randomfact/memnote-mcp-server
Other clients
Cursor, Continue, and other MCP clients use the same shape: an mcpServers
entry with "command": "npx" and
"args": ["-y", "@randomfact/memnote-mcp-server"]. Consult your client’s docs
for where its config file lives.
Signing in
The first time the server needs your notes, it opens your browser to MemNote’s sign-in page, waits for you to sign in, and caches the result. There is no token to paste.
The cached credentials are written to a file readable only by you:
- Windows:
%APPDATA%\memnote-mcp\tokens.json - macOS:
~/Library/Application Support/memnote-mcp/tokens.json - Linux:
~/.config/memnote-mcp/tokens.json
To sign out, delete that file. The next tool call starts a fresh sign-in.
If the machine has no browser — a remote shell, a container — run the server
once with --manual-code. It prints a URL for you to open somewhere else and
waits for you to paste the resulting code back in.
What it can do
The local server exposes everything the hosted server does, plus three device tools the hosted catalog leaves out:
- Notes:
listNotes,searchNotes,getNote,getNoteHistory,createNote,updateNote,deleteNote - Note tags:
addTagToNote,removeTagFromNote - Tags:
listTags,getTag,createTag,updateTag,deleteTag - Devices:
listDevices,getDevice,createDevice,updateDevice
These map one-to-one onto the REST API, so the notes on soft deletes, note history, and semantic search there apply here too.
Options
Pass these after the package name — for example
"args": ["-y", "@randomfact/memnote-mcp-server", "--manual-code"].
| Option | What it does |
|---|---|
--manual-code | Print the sign-in URL and read the code from stdin instead of opening a browser |
--token-store <file> | Keep cached credentials somewhere other than the default path |
--transport stdio|http | Serve over stdio (the default) or over local HTTP |
--port <n> | Port for --transport http (default 3100) |
--host <addr> | Bind address for --transport http (default 127.0.0.1) |
--loopback-port <n> | Pin the local port used to catch the sign-in redirect, for strict firewalls |
Two environment variables are also read:
MEMNOTE_MCP_TOKEN_STORE— same as--token-store.MEMNOTE_MCP_LOG_LEVEL—debug,info(default),warn, orerror. Logs go to standard error, which is where most clients keep their MCP server log. Set it todebugwhen a connection is not behaving.
If it does not start
- “Unsupported engine” or a syntax error on launch. Node is too old; the server needs 22.19 or newer. Some clients launch with a different Node than your shell does, so check the client’s own log.
- Nothing happens when it should open a browser. Use
--manual-code. - It signs in, then reports it was not authorized. Delete the token file listed above and let it sign in again.
Related
- Hosted MCP server — no install, connect by URL.
- REST API — the API this package wraps.