WhyNote MCP
A zero-dependency, read-only Model Context Protocol server for searching and reading the notes in one WhyNote account.
Install
Generate a read-only token in WhyNote settings, then configure your MCP client
to run npx -y why-note-mcp with NOTE_URL and NOTE_TOKEN.
Generic project configuration:
{
"mcpServers": {
"note": {
"command": "npx",
"args": ["-y", "why-note-mcp"],
"env": {
"NOTE_URL": "https://note.example.com",
"NOTE_TOKEN": "<read-only-token>"
}
}
}
}
Claude Code:
claude mcp add --scope user note \
-e NOTE_URL=https://note.example.com \
-e NOTE_TOKEN='<read-only-token>' \
-- npx -y why-note-mcp
Codex CLI:
codex mcp add note \
--env NOTE_URL=https://note.example.com \
--env NOTE_TOKEN='<read-only-token>' \
-- npx -y why-note-mcp
Values written directly in a command may be retained in shell history. Edit the client configuration instead if that is a concern.
Node.js 18 or newer is required.
Tools
search: search note lines by case-insensitive substringtodos: list incomplete or all todo itemsread_day: read one date's complete note and etagrecent_days: read existing note days around an anchor date
Security
The server reads NOTE_URL and NOTE_TOKEN only from its environment. It sends
the token only as a Bearer credential to the configured WhyNote URL. It never
receives the account password and exposes no write tool.
Changing the WhyNote account password revokes its read-only tokens. Generate a new token in WhyNote settings when a token expires or is revoked.
Development
npm ci
npm test
npm run pack:check
The test suite uses a local fake HTTP service; it does not require a WhyNote account, network access, or third-party dependencies.