Model Context Protocol (MCP) server for Evernote - enables Claude Code to interact with your Evernote notes.
Supports both International Evernote and Yinxiang Biji (印象笔记)
- 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)
npm install -g @anthropic/claude-code
uvx evernote-mcpInternational Evernote: https://evernote.com/api/DeveloperToken.action
Yinxiang Biji (印象笔记): https://app.yinxiang.com/api/DeveloperToken.action
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"
}
}
}
}claude-codeUser: 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]
| 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 |
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
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
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
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
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)
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
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_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
MIT