createSearchLABSCO SUMMARY
Read-only Evernote access that never leaves your machine.
OAuth happens directly between you and Evernote, tokens sit in a local .env file, and note content goes nowhere except Evernote and your client. The first run is the awkward part — you start the HTTPS server on its own, accept a self-signed certificate warning in the browser, and finish the OAuth flow before the MCP client will see any tools.
What it is
A Node server that connects Claude Desktop, or any MCP client, to your Evernote account over Evernote's OAuth 1.0a API. Access is read-only: it searches, inspects and reads notes, and does not create or edit them.
What you get
createSearch— search your notes with a natural-language querygetSearch— retrieve cached results from an earlier searchgetNote— metadata for one specific notegetNoteContent— the full note body as text, HTML or ENML- Two ways to connect: local stdio, or an HTTPS JSON-RPC endpoint for containerised setups on Windows and Linux
Requirements
Node.js 18+ and an Evernote developer account. Set EVERNOTE_CONSUMER_KEY and EVERNOTE_CONSUMER_SECRET from a registered Evernote app whose callback URL is https://localhost:3443/oauth/callback. The server listens over HTTPS on port 3443 and needs a self-signed certificate, which the Docker Compose path generates for you. Access tokens are written back to .env after the first browser sign-in.
Setup effort
Build from source — git clone https://github.com/brentmid/evernote-mcp-server.git
USE CASES
Answering a question that spans years of notes
Search in plain language, then pull the bodies of the notes that came back and ask for a summary.
Bringing one specific note into a working session
Look up the note's metadata to confirm it is the right one, then read the full content.
Re-reading a search you already ran
Pull the cached results back instead of paying for the search again.
4 tools
Listed in project docs. Your client may show a different list.
getSearchgetNotegetNoteContentBEFORE YOU INSTALL
What to know first
Tools you get
4 tools named in the project's documentation.
Requires
- Node.js 18+
- EVERNOTE_CONSUMER_KEY in your environment
- EVERNOTE_CONSUMER_SECRET in your environment
INSTALLATION
Connect your client
You clone and build this one yourself.
Server setup
Clone the repository
git clone https://github.com/brentmid/evernote-mcp-server.git
cd evernote-mcp-serverCopy environment template
cp .env.example .envEdit .env with your Evernote API credentials
vim .envBuild and run the container
docker-compose up --buildMCP Clients
Claude Desktop
Clone the repository and install dependencies:
git clone https://github.com/brentmid/evernote-mcp-server.git
cd evernote-mcp-server
npm installRegister an app at https://dev.evernote.com/, note its Consumer Key and Consumer Secret, and set its callback URL to https://localhost:3443/oauth/callback.
export EVERNOTE_CONSUMER_KEY="<YOUR_EVERNOTE_CONSUMER_KEY>"
export EVERNOTE_CONSUMER_SECRET="<YOUR_EVERNOTE_CONSUMER_SECRET>"Generate the self-signed certificate the HTTPS server needs:
mkdir cert
openssl req -x509 -newkey rsa:4096 -keyout cert/localhost.key -out cert/localhost.crt -days 365 -nodes -subj "/C=US/ST=Local/L=Local/O=Local/OU=Local/CN=localhost"Start the server once on its own. It opens Evernote's authorization page in your browser: accept the self-signed certificate warning, sign in and authorize the app. The access token is saved to .env.
npx node index.jsAdd this to ~/Library/Application Support/Claude/claude_desktop_config.json, where <YOUR_PATH_TO_EVERNOTE_MCP_SERVER> is the full path of your clone, then restart Claude Desktop.
{
"mcpServers": {
"evernote": {
"command": "node",
"args": [
"<YOUR_PATH_TO_EVERNOTE_MCP_SERVER>/mcp-server.js"
],
"env": {
"EVERNOTE_CONSUMER_KEY": "<YOUR_EVERNOTE_CONSUMER_KEY>",
"EVERNOTE_CONSUMER_SECRET": "<YOUR_EVERNOTE_CONSUMER_SECRET>"
}
}
}
}Claude Desktop — Docker
With the container from the Setup steps running (docker-compose up --build), add this to claude_desktop_config.json and restart Claude Desktop. If your container name differs, check it with docker ps.
{
"mcpServers": {
"evernote": {
"command": "docker",
"args": [
"exec",
"-i",
"--tty=false",
"evernote-mcp-server-evernote-mcp-server-1",
"node",
"mcp-server.js"
]
}
}
}