Model Context Protocol (MCP) server for Evernote operations
Project description
Evernote MCP Server
Model Context Protocol (MCP) server for Evernote - enables Claude Code to interact with your Evernote notes.
Supports both International Evernote and Yinxiang Biji (印象笔记)
Features
- Notebook operations (create, read, update, delete, list, get default)
- Note operations (create, read, update, delete, copy, move, list, versions)
- Tag management (create, read, update, delete, list, find by notebook)
- Saved searches (create, read, update, delete, list)
- Resource/Attachment operations (get, update, data, attributes, recognition)
- Advanced note features (get content, search text, tag names, note versions)
- Sync & utilities (sync state, note counts, find related content)
- Full-text search using Evernote's search syntax
- Multiple output formats (ENML, text, markdown, JSON)
Installation
npm install -g @anthropic/claude-code
uvx evernote-mcp
Configuration
1. Get Evernote Developer Token
International Evernote: https://evernote.com/api/DeveloperToken.action
Yinxiang Biji (印象笔记): https://app.yinxiang.com/api/DeveloperToken.action
2. Configure Claude Code
Edit ~/.config/claude-code/config.json:
For International Evernote:
{
"mcpServers": {
"evernote": {
"command": "uvx",
"args": ["evernote-mcp"],
"env": {
"EVERNOTE_AUTH_TOKEN": "your_token_here",
"EVERNOTE_BACKEND": "evernote"
}
}
}
}
For Yinxiang Biji (印象笔记):
{
"mcpServers": {
"evernote": {
"command": "uvx",
"args": ["evernote-mcp"],
"env": {
"EVERNOTE_AUTH_TOKEN": "your_token_here",
"EVERNOTE_BACKEND": "china"
}
}
}
}
Usage Examples
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.
[Creates note with extracted TODOs]
User: Search my Evernote for notes about "API design" and summarize the key points
Claude: Let me search for those notes and analyze them.
[Searches and summarizes findings]
User: Create a notebook called "Code Reviews" and add a note template
Claude: I'll set that up for you.
[Creates notebook and template note]
User: Find all notes tagged with "important" and list them by update time
Claude: I'll search for notes with that tag and sort them.
[Uses search_notes and list_tags]
Environment Variables
| Variable | Default | Description |
|---|---|---|
EVERNOTE_AUTH_TOKEN |
- | Your developer token (required) |
EVERNOTE_BACKEND |
evernote |
evernote (International) or china (印象笔记) |
EVERNOTE_RETRY_COUNT |
5 |
Network retry count on failure |
EVERNOTE_USE_SYSTEM_SSL_CA |
false |
Use system SSL CA certificates |
Available Tools
Notebooks (6 tools)
create_notebook(name, stack)- Create a new notebooklist_notebooks()- List all notebooksget_notebook(guid)- Get notebook details by GUIDupdate_notebook(guid, name, stack)- Update notebook name/stackexpunge_notebook(guid)- Permanently delete notebookget_default_notebook()- Get the default notebook for new notes
Notes (8 tools)
create_note(title, content, notebook_guid, tags, format)- Create a new noteget_note(guid, output_format)- Get note (enml/text/markdown/json)update_note(guid, title, content, format)- Update note title/contentdelete_note(guid)- Move note to trashexpunge_note(guid)- Permanently delete notecopy_note(guid, target_notebook_guid)- Copy note to another notebookmove_note(guid, target_notebook_guid)- Move note to another notebooklist_notes(notebook_guid, limit)- List notes in notebook
Tags (7 tools)
list_tags()- List all tagsget_tag(guid)- Get tag details by GUIDcreate_tag(name, parent_guid)- Create a new tagupdate_tag(guid, name, parent_guid)- Update tag name/parentexpunge_tag(guid)- Permanently delete taglist_tags_by_notebook(notebook_guid)- List tags in a specific notebookuntag_all(guid)- Remove tag from all notes
Saved Searches (5 tools)
list_searches()- List all saved searchesget_search(guid)- Get saved search by GUIDcreate_search(name, query)- Create a new saved searchupdate_search(guid, name, query)- Update saved searchexpunge_search(guid)- Delete saved search
Advanced Note Operations (5 tools)
get_note_content(guid)- Get ENML content onlyget_note_search_text(guid, note_only, tokenize_for_indexing)- Get extracted plain textget_note_tag_names(guid)- Get tag names for a notelist_note_versions(note_guid)- List previous versions (Premium only)get_note_version(note_guid, update_sequence_num, ...)- Get specific version (Premium)
Resources/Attachments (13 tools)
get_resource(guid, with_data, with_recognition, ...)- Get resource by GUIDget_resource_data(guid, encode)- Get resource binary data (base64)get_resource_alternate_data(guid, encode)- Get alternate data (e.g., PDF preview)get_resource_attributes(guid)- Get resource metadataget_resource_by_hash(note_guid, content_hash, ...)- Find resource by MD5 hashget_resource_recognition(guid, encode)- Get OCR/recognition dataget_resource_search_text(guid)- Get extracted search text from resourceupdate_resource(guid, mime, attributes)- Update resource metadataset_resource_application_data_entry(guid, key, value)- Set app dataunset_resource_application_data_entry(guid, key)- Remove app dataget_resource_application_data(guid)- Get all application dataget_resource_application_data_entry(guid, key)- Get specific app data entry
Reminders (5 tools)
set_reminder(note_guid, reminder_time, reminder_order)- Set reminder on a notecomplete_reminder(note_guid, done_time)- Mark reminder as completedclear_reminder(note_guid)- Clear all reminder fields from a notelist_reminders(notebook_guid, limit, include_completed)- List notes with remindersget_reminder(note_guid)- Get reminder info for a specific note
Search & Utilities (4 tools)
search_notes(query, notebook_guid, limit)- Search using Evernote query syntaxget_sync_state()- Get sync state informationfind_note_counts(query, with_trash)- Get note counts per notebook/tagfind_related(note_guid, plain_text, max_notes, ...)- Find related notes/tags/notebooks
License
MIT
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.3.3.tar.gz.
File metadata
- Download URL: evernote_mcp-0.3.3.tar.gz
- Upload date:
- Size: 20.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c8cb8e8d38be73704850c7601dd38b53a357b3e583b5ab60c454626cfa0eea8
|
|
| MD5 |
7956c6b009460b88e87b7e786776c64f
|
|
| BLAKE2b-256 |
1ce4bae75e06dd8cdfe7ae5e6444f7cc8f4d2f2ece264a5bdcb95fe247845b82
|
File details
Details for the file evernote_mcp-0.3.3-py3-none-any.whl.
File metadata
- Download URL: evernote_mcp-0.3.3-py3-none-any.whl
- Upload date:
- Size: 29.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
acb27771a54f511db08ecaae59c25c072511c6b9441c41ee6f4397e5a1fc5747
|
|
| MD5 |
457d800d51da15d16a65eb23352ae59a
|
|
| BLAKE2b-256 |
27ca960d2ef7f5bb4bec4edfd3b62ad63e066a35749a6e1550821b1e761c201f
|