Model Context Protocol (MCP) server for Evernote operations
Project description
Evernote MCP Server
Model Context Protocol (MCP) server for Evernote operations - enables AI assistants like Claude to interact with Evernote.
Features
- Notebook Operations: Create, update, delete, and list notebooks
- Note Operations: Create, read, update, delete, copy, and move notes
- Search: Full-text search using Evernote's search syntax
- Resources: Direct access to notebooks and notes via MCP resources
- Format Conversion: ENML to text/markdown conversion
Installation
Using uv (Recommended)
uv tool install evernote-mcp
Using pipx
pipx install evernote-mcp
From source
git clone https://github.com/king/evernote-mcp.git
cd evernote-mcp
poetry install
Configuration
1. Get Evernote Developer Token
Visit Evernote Developer Token page to obtain your authentication token.
2. Configure Environment Variables
Create a .env file or set environment variables:
export EVERNOTE_AUTH_TOKEN="your_token_here"
export EVERNOTE_BACKEND="evernote" # or "china" for Yinxiang
3. Configure Claude Desktop
Add to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"evernote": {
"command": "uvx",
"args": ["evernote-mcp"],
"env": {
"EVERNOTE_AUTH_TOKEN": "your_token_here",
"EVERNOTE_BACKEND": "evernote"
}
}
}
}
For local development:
{
"mcpServers": {
"evernote": {
"command": "python",
"args": ["-m", "evernote_mcp"],
"cwd": "/path/to/evernote-mcp",
"env": {
"EVERNOTE_AUTH_TOKEN": "your_token_here"
}
}
}
}
Usage Examples
With Claude Code
Claude Code is a CLI tool that provides an interactive terminal experience for coding tasks with Claude. You can use the Evernote MCP server with Claude Code to manage your Evernote notes while working on projects.
Installation
- Install Claude Code:
npm install -g @anthropic/claude-code
- Configure the MCP server by editing
~/.config/claude-code/config.json:
{
"mcpServers": {
"evernote": {
"command": "uvx",
"args": ["evernote-mcp"],
"env": {
"EVERNOTE_AUTH_TOKEN": "your_token_here",
"EVERNOTE_BACKEND": "evernote"
}
}
}
}
Example Workflows
# Start Claude Code
claude-code
# Example conversations in Claude Code:
User: Create a note in my "Project Notes" notebook summarizing the current TODO items from src/todo.py
Claude: I'll read the TODO file and create a note for you.
[Reads src/todo.py, extracts TODOs]
[Uses create_note tool with extracted content]
Claude: I've created a note "TODO Summary" in your "Project Notes" notebook with 5 TODO items.
User: Search my Evernote for notes about "API design" and summarize the key points
Claude: Let me search for those notes and analyze them.
[Uses search_notes tool with "API design"]
[Gets note content for each result]
[Analyzes and summarizes]
Claude: Found 4 notes about API design. Key themes:
1. RESTful principles - emphasized in 3 notes
2. GraphQL considerations - mentioned in "API Architecture"
3. Rate limiting strategies - covered in "API Security"
User: Create a notebook called "Code Reviews" and add a note template for code review notes
Claude: I'll set that up for you.
[Uses create_notebook tool]
[Uses create_note tool with template content]
Claude: Created notebook "Code Reviews" with a template note containing:
- Review checklist
- Approval criteria
- Common issues to watch for
Common Use Cases with Claude Code
- Documentation Sync: Create Evernote notes from code comments or docstrings
- Meeting Notes: Create structured notes from project discussions
- Task Tracking: Sync TODO items between code and Evernote
- Research Organization: Save research findings and code snippets to Evernote
- Code Review Documentation: Document review outcomes in Evernote
In Claude Desktop
User: Create a notebook called "Meeting Notes" in stack "Work"
Claude: I'll create that notebook for you.
[Uses create_notebook tool]
Claude: I've created the notebook "Meeting Notes" in the "Work" stack.
---
User: Find all notes about "project alpha"
Claude: Let me search for those notes.
[Uses search_notes tool]
Claude: I found 3 notes matching "project alpha":
1. "Project Alpha Kickoff" (updated 2024-01-15)
2. "Alpha Requirements" (updated 2024-01-20)
3. "Alpha Status Update" (updated 2024-01-25)
---
User: Create a note in "Meeting Notes" with title "Team Standup"
Claude: I'll create that note for you.
[Uses create_note tool]
Claude: I've created the note "Team Standup" in your "Meeting Notes" notebook.
Available Tools
Notebook Operations
create_notebook(name, stack)- Create a new notebookupdate_notebook(guid, name, stack)- Update notebook propertiesdelete_notebook(guid)- Delete a notebooklist_notebooks()- List all notebooksget_notebook(guid)- Get notebook details
Note Operations
create_note(title, content, notebook_guid, tags, format)- Create a noteget_note(guid, output_format)- Get note content (enml/text/markdown/json)update_note(guid, title, content, format)- Update a notedelete_note(guid)- Move note to trashexpunge_note(guid)- Permanently delete notecopy_note(guid, target_notebook_guid)- Copy note to notebookmove_note(guid, target_notebook_guid)- Move note to notebooklist_notes(notebook_guid, limit)- List notes
Search Operations
search_notes(query, notebook_guid, limit)- Search noteslist_tags()- List all tags
Resources
notebooks- List all notebooksnotebook://{guid}- Access notebook metadatanote://{guid}- Access note content (JSON)note-text://{guid}- Access note content as plain textnote-markdown://{guid}- Access note content as Markdown
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
EVERNOTE_AUTH_TOKEN |
Yes | - | Evernote developer token |
EVERNOTE_BACKEND |
No | evernote |
API backend: evernote, china, china:sandbox |
EVERNOTE_RETRY_COUNT |
No | 5 |
Network retry count |
EVERNOTE_USE_SYSTEM_SSL_CA |
No | false |
Use system SSL CA certificates |
Development
# Install dependencies
poetry install
# Run tests
poetry run pytest
# Run linting
poetry run ruff check
# Format code
poetry run ruff format
Dependencies
This project depends on evernote-backup for the Evernote API client:
pip install evernote-backup
License
MIT License - see LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file evernote_mcp-0.1.0.tar.gz.
File metadata
- Download URL: evernote_mcp-0.1.0.tar.gz
- Upload date:
- Size: 12.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.14.2 Darwin/24.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
404a50afb18206db02f3ee20f464af35aac2004a152e69750428ec26fda556c5
|
|
| MD5 |
606f46c32c72a3fd6cfb507412df2892
|
|
| BLAKE2b-256 |
867ca4f144ec492cf7fa5ca27282d02ab44cf6301548755b1961039861872233
|
File details
Details for the file evernote_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: evernote_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.14.2 Darwin/24.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f8112fb97a8b212863ddf54fd9bb1516321589f76019d38da4c9c032386f219c
|
|
| MD5 |
82909e9a9d3be060ad1f81362e2d7456
|
|
| BLAKE2b-256 |
faebabc80c5f70676c6bc74246a6f0a6a13025826e247766a732eb3c16719329
|