Skip to main content

Model Context Protocol (MCP) server for Evernote operations

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

evernote_mcp-0.3.5.tar.gz (22.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

evernote_mcp-0.3.5-py3-none-any.whl (31.7 kB view details)

Uploaded Python 3

File details

Details for the file evernote_mcp-0.3.5.tar.gz.

File metadata

  • Download URL: evernote_mcp-0.3.5.tar.gz
  • Upload date:
  • Size: 22.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for evernote_mcp-0.3.5.tar.gz
Algorithm Hash digest
SHA256 9a94409a27a133ba7f6a4ef461625d1b2a14ddc8adb0c7a2623b9ce62df036ce
MD5 c1c9fc23d240d025eaa1d44db2188eeb
BLAKE2b-256 d53447bdd67fb49add8a3b178fbb476fd156138554d3fac6b26c0e5dce3f94b6

See more details on using hashes here.

File details

Details for the file evernote_mcp-0.3.5-py3-none-any.whl.

File metadata

  • Download URL: evernote_mcp-0.3.5-py3-none-any.whl
  • Upload date:
  • Size: 31.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for evernote_mcp-0.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 5dbaae386009a2109d740f2711c726cf3d6ca5137495ff88b884a6e33ce30f61
MD5 6585452cc49dee41d34f3202aa63c4e6
BLAKE2b-256 ed79f66f8025cba5092a794ef5b5d32034b1cbf5c0a41bfd0611b359640daa9a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page