Skip to main content
Glama
README.md
# kindle-mcp

An MCP (Model Context Protocol) server that turns your Kindle highlights into structured personal book memory summaries saved directly to Notion.

**Zero external AI API calls.** All reasoning is performed by the host model (Claude Desktop) in its own context window. The server parses files, builds prompts, and writes to Notion — nothing else.

---

## What it does

1. You share a Kindle highlight export file in Claude Desktop
2. Claude parses your highlights, generates a personal memory summary, and saves it to your Notion database
3. You get back a Notion page URL — nothing else shown in chat

All automatic. No copy-pasting. No manual steps.

---

## Requirements

- [Claude Desktop](https://claude.ai/download)
- [Notion](https://notion.so) account
- [Node.js](https://nodejs.org) 18+ installed
- Notion MCP server running alongside this one (for first-run auto-setup)

---

## Installation

### 1. Get a Notion API key

- Go to [https://www.notion.so/my-integrations](https://www.notion.so/my-integrations)
- Click **New integration** → give it a name → click **Submit**
- Copy the **Internal Integration Secret** (starts with `secret_...`)

### 2. Add to Claude Desktop config

Open your Claude Desktop config file:
- **Mac:** `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`

Add the following inside `"mcpServers"`:

```json
"kindle-mcp": {
  "command": "npx",
  "args": ["-y", "kindle-mcp"],
  "env": {
    "NOTION_API_KEY": "secret_..."
  }
}
```

### 3. Restart Claude Desktop

Fully quit (Cmd+Q on Mac) and reopen. You should see the tools available via the hammer icon in the chat input.

---

## First-time use

On first run, the server needs a Notion page to create the **Kindle Book Summaries** database under. If you also have the [Notion MCP](https://www.notion.so/help/guides/using-notion-mcp) running, this happens **automatically** — Claude will create the page and database without asking you anything.

If you don't have the Notion MCP, create any page in Notion and connect your integration to it first:
1. Open a Notion page → click `...` top right → **Connections** → select your integration

After the first run, the database ID is saved locally at `~/.kindle-mcp/config.json` and never needs to be set up again.

---

## Usage

In Claude Desktop:

1. Attach your Kindle export file (`.html` from the Kindle app, or `My Clippings.txt` from a Kindle device)
2. Say: **"Use the process_kindle_export tool on this file"**
3. Claude processes everything and returns your Notion page URL

---

## Supported Kindle export formats

| Format | How to get it |
|---|---|
| **HTML** | Kindle app (iOS/Android/Mac) → open book → Notes → Export |
| **Plain text** | `My Clippings.txt` on Kindle device via USB |

Both formats are auto-detected — no configuration needed.

---

## Summary output structure

Each book gets a Notion page with:

| Field | Description |
|---|---|
| `personal_thesis` | One sentence capturing the core insight from your highlights |
| `core_themes` | 3–5 recurring themes |
| `key_ideas` | 5–8 distinct ideas drawn from your highlights |
| `actionable_takeaways` | 3–5 concrete actions implied by your highlights |
| `reflection_questions` | 3–5 questions your highlights raise |
| `memory_capsule` | A 3–4 sentence personal narrative distilling everything |

Summaries are generated **only from your highlights** — the model uses no external knowledge about the book.

---

## Tools

| Tool | Description |
|---|---|
| `process_kindle_export` | **Primary tool.** Parses a Kindle file and orchestrates the full flow |
| `initialize_notion_database` | Creates the Notion database on first run (called automatically) |
| `push_to_notion` | Pushes a generated summary to Notion as a structured page |
| `parse_kindle_clippings` | Parses a Kindle file and returns raw highlights grouped by book |
| `generate_personal_summary` | Builds a prompt package for the host model to generate a summary |

---

## Notion database schema

The **Kindle Book Summaries** database is created automatically with:

| Property | Type |
|---|---|
| `Name` | Title |
| `Author` | Rich Text |
| `Title` | Rich Text |

All summary content (thesis, themes, ideas, etc.) is written as page body blocks.

---

## License

MIT

TDQS

A4.2/5.0

Scored across 5 tools

Disambiguation4/5

Tools have distinct purposes clearly marked in descriptions (e.g., 'PRIMARY TOOL', 'Use this when...'), though `parse_kindle_clippings` and `process_kindle_export` both parse exports, and `generate_personal_summary` overlaps with the internal generation step of the primary workflow.

Naming Consistency5/5

Excellent consistency: all five tools use snake_case with imperative verb_noun structure (generate_, initialize_, parse_, process_, push_). The pattern is predictable and readable throughout.

Tool Count5/5

Five tools is ideal for this focused scope: parsing (2 variants), summary generation, Notion database setup, and Notion publishing. Each tool earns its place without bloat.

Completeness4/5

Covers the full Kindle-to-Notion lifecycle including setup, parsing, generation, and publishing. Minor gap: no update or delete operations for existing Notion entries, requiring agents to only create new summaries.

Maintenance

ActivityInactive
ResponsivenessNo issues