Skip to content

kensou24/evernote-mcp

Repository files navigation

Evernote MCP Server

English | 简体中文

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 notebook
  • list_notebooks() - List all notebooks
  • get_notebook(guid) - Get notebook details by GUID
  • update_notebook(guid, name, stack) - Update notebook name/stack
  • expunge_notebook(guid) - Permanently delete notebook
  • get_default_notebook() - Get the default notebook for new notes

Notes (8 tools)

  • create_note(title, content, notebook_guid, tags, format) - Create a new note
  • get_note(guid, output_format) - Get note (enml/text/markdown/json)
  • update_note(guid, title, content, format) - Update note title/content
  • delete_note(guid) - Move note to trash
  • expunge_note(guid) - Permanently delete note
  • copy_note(guid, target_notebook_guid) - Copy note to another notebook
  • move_note(guid, target_notebook_guid) - Move note to another notebook
  • list_notes(notebook_guid, limit) - List notes in notebook

Tags (7 tools)

  • list_tags() - List all tags
  • get_tag(guid) - Get tag details by GUID
  • create_tag(name, parent_guid) - Create a new tag
  • update_tag(guid, name, parent_guid) - Update tag name/parent
  • expunge_tag(guid) - Permanently delete tag
  • list_tags_by_notebook(notebook_guid) - List tags in a specific notebook
  • untag_all(guid) - Remove tag from all notes

Saved Searches (5 tools)

  • list_searches() - List all saved searches
  • get_search(guid) - Get saved search by GUID
  • create_search(name, query) - Create a new saved search
  • update_search(guid, name, query) - Update saved search
  • expunge_search(guid) - Delete saved search

Advanced Note Operations (5 tools)

  • get_note_content(guid) - Get ENML content only
  • get_note_search_text(guid, note_only, tokenize_for_indexing) - Get extracted plain text
  • get_note_tag_names(guid) - Get tag names for a note
  • list_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 GUID
  • get_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 metadata
  • get_resource_by_hash(note_guid, content_hash, ...) - Find resource by MD5 hash
  • get_resource_recognition(guid, encode) - Get OCR/recognition data
  • get_resource_search_text(guid) - Get extracted search text from resource
  • update_resource(guid, mime, attributes) - Update resource metadata
  • set_resource_application_data_entry(guid, key, value) - Set app data
  • unset_resource_application_data_entry(guid, key) - Remove app data
  • get_resource_application_data(guid) - Get all application data
  • get_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 note
  • complete_reminder(note_guid, done_time) - Mark reminder as completed
  • clear_reminder(note_guid) - Clear all reminder fields from a note
  • list_reminders(notebook_guid, limit, include_completed) - List notes with reminders
  • get_reminder(note_guid) - Get reminder info for a specific note

Search & Utilities (4 tools)

  • search_notes(query, notebook_guid, limit) - Search using Evernote query syntax
  • get_sync_state() - Get sync state information
  • find_note_counts(query, with_trash) - Get note counts per notebook/tag
  • find_related(note_guid, plain_text, max_notes, ...) - Find related notes/tags/notebooks

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages