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.3.tar.gz (20.9 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.3-py3-none-any.whl (29.5 kB view details)

Uploaded Python 3

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

Hashes for evernote_mcp-0.3.3.tar.gz
Algorithm Hash digest
SHA256 0c8cb8e8d38be73704850c7601dd38b53a357b3e583b5ab60c454626cfa0eea8
MD5 7956c6b009460b88e87b7e786776c64f
BLAKE2b-256 1ce4bae75e06dd8cdfe7ae5e6444f7cc8f4d2f2ece264a5bdcb95fe247845b82

See more details on using hashes here.

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

Hashes for evernote_mcp-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 acb27771a54f511db08ecaae59c25c072511c6b9441c41ee6f4397e5a1fc5747
MD5 457d800d51da15d16a65eb23352ae59a
BLAKE2b-256 27ca960d2ef7f5bb4bec4edfd3b62ad63e066a35749a6e1550821b1e761c201f

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