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 (印象笔记)

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

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.1.tar.gz (17.8 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.1-py3-none-any.whl (25.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: evernote_mcp-0.3.1.tar.gz
  • Upload date:
  • Size: 17.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.1 CPython/3.14.2 Darwin/24.6.0

File hashes

Hashes for evernote_mcp-0.3.1.tar.gz
Algorithm Hash digest
SHA256 f120cc81c87583180b3773c669b5fbc8db3cabcd406d9282fa2e6ba795c3bbda
MD5 d1554e7296501186ac6eb13a63de3be7
BLAKE2b-256 26172d0da517cf28a8bcbcab6fa679384db6aeb2106c88550b7690555488c879

See more details on using hashes here.

File details

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

File metadata

  • Download URL: evernote_mcp-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 25.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.1 CPython/3.14.2 Darwin/24.6.0

File hashes

Hashes for evernote_mcp-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2aa4eca260db3324d8313ec3850b83fcd7219a197a26526c5991beb2568a070f
MD5 89acecf11f451047ec506eb2e311737c
BLAKE2b-256 8799b732575e0a6ef2343915778a6dc43d610d766edcf173a7ed379eddefee33

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