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"].

OptionWhat it does
--manual-codePrint 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|httpServe 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_LEVELdebug, info (default), warn, or error. Logs go to standard error, which is where most clients keep their MCP server log. Set it to debug when 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.