Content
# MCP Server
Let AI assistants (like Claude, Cursor, etc.) manage your Evernote directly! Supports searching, creating, updating, deleting notes, managing notebooks, and tags.
---
## Quick Start (Just Do These Steps)
### Step 1: Prepare Environment
- **Node.js** - Check if it's installed. If not, download and install from [nodejs.org](https://nodejs.org).
- **Evernote Developer Token** - Get it from [app.yinxiang.com/api/DeveloperToken.action](https://app.yinxiang.com/api/DeveloperToken.action) (Note: Token is valid for only **7 days**, and you need to get a new one after it expires).
### Step 2: Installation
```bash
# Clone repository
git clone https://github.com/example-user/example-project.git
cd evernote-mcp-server
# Install dependencies
npm install
# Build
npm run build
```
### Step 3: Configure MCP
Add the following content to your MCP configuration file (like Claude Desktop Config):
```json
{
"mcpServers": {
"evernote": {
"command": "node",
"args": [
"C:\\path\\to\\evernote-mcp-server\\dist\\index.js"
],
"env": {
"EVERNOTE_AUTH_TOKEN": "Your developer token",
"EVERNOTE_SANDBOX": "false"
}
}
}
}
```
> **⚠️ Note**: You need to fill in the token yourself. It's recommended to pass it through environment variables or configuration files, not hardcoding it in the code.
### Step 4: Test
After configuration, AI assistants can call the following tools to manage your Evernote.
---
## Available Function List
| Tool Name | Function Description | Parameters |
|---------|---------|------|
| `list_notebooks` | List all notebooks | None |
| `get_default_notebook` | Get default notebook | None |
| `list_tags` | List all tags | None |
| `create_note` | Create a new note | `title`(title), `content`(content, supports HTML), `notebookGuid`(optional, notebook GUID), `tagNames`(optional, tag list) |
| `search_notes` | Search notes | `query`(keyword), `maxResults`(optional, default 20) |
| `get_note` | Get note details | `guid`(note GUID) |
| `update_note` | Update note | `guid`(note GUID), `title`(optional, new title), `content`(optional, new content) |
| `delete_note` | Delete note (move to trash) | `guid`(note GUID) |
| `create_notebook` | Create notebook | `name`(notebook name) |
| `create_tag` | Create tag | `name`(tag name) |
---
## Notes
1. **Token Validity Period**: Evernote developer token is valid for only **7 days**. After expiration, you need to get a new one and update the configuration.
2. **Data Security**: The token is the key to access your notes. Don't leak it to others. It's recommended to pass it through environment variables.
3. **Sandbox Environment**: If you need to test, set `EVERNOTE_SANDBOX` to `"true"`.
4. **Network Requirements**: You need to access the Evernote service normally.
5. **Permission Scope**: The token has full access to your account. Use it cautiously.
---
## Tech Stack
- TypeScript
- Node.js
- [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol)
- [evernote](https://www.npmjs.com/package/evernote) official SDK
---
## Open Source License
MIT
---
> Built with the assistance of AI assistants, making Evernote management smarter!