Skip to main content

MCP server for ElevenReader (ElevenLabs text-to-speech reader)

Project description

mcp-elevenreader

MCP server for ElevenReader — ElevenLabs text-to-speech reader.

Setup

1. Get refresh token

Open https://elevenreader.io, log in, then run in browser console (F12 → Console):

JSON.parse(localStorage.getItem(Object.keys(localStorage).find(k => k.startsWith('firebase:authUser:')))).stsTokenManager.refreshToken

The refresh token is long-lived (months). Access tokens are refreshed automatically.

2. Connect to Claude Code

claude mcp add elevenreader -e ELEVEN_REFRESH_TOKEN=your-token -- uvx mcp-elevenreader

To make it available in all projects, add to ~/.claude/mcp.json:

{
  "mcpServers": {
    "elevenreader": {
      "command": "uvx",
      "args": ["mcp-elevenreader"],
      "env": {
        "ELEVEN_REFRESH_TOKEN": "your-token"
      }
    }
  }
}

Other clients (Claude Desktop / Kiro / Cursor)

{
  "mcpServers": {
    "elevenreader": {
      "command": "uvx",
      "args": ["mcp-elevenreader"],
      "env": {
        "ELEVEN_REFRESH_TOKEN": "your-token"
      }
    }
  }
}

Tools

Tool Description
list_reads List books paginated (10 per page, compact: title, author, progress)
list_all_reads Full reading history — all books in compact format
get_read Get full details of a specific read (chapters, progress)
get_read_content Get HTML text content of a read
add_url Add URL for TTS reading
add_document Upload epub/pdf file
add_directory Upload all books from a directory (background, with retry)
upload_status Check background upload progress
delete_read Remove from library
deduplicate Find and remove duplicate reads (keeps oldest)
mark_almost_finished Mark books at 97%+ progress as finished
list_voices Available TTS voices
get_voice Voice details
get_config User settings (voice, speed, font)
update_config Change default voice/speed
get_customer Subscription info & credits
get_collections User collections
get_bookmarks Bookmarks for a read
update_progress Update listening position

Architecture

  • Auth: Firebase refresh token → short-lived access token (auto-refreshed, thread-safe)
  • Data source: /v1/reader/collections/books endpoint (full history, 345+ books)
  • Caching: 60s TTL on book list, invalidated on mutations (add/delete)
  • Upload queue: Background thread with retry (3 attempts), rate limiting, pause for priority uploads
  • Thread safety: Locks on token cache and reads cache

Development

git clone https://github.com/MIt9/mcp-elevenreader
cd mcp-elevenreader
uv sync
mcp dev src/mcp_elevenreader/server.py

Requirements

  • Python ≥ 3.10
  • Dependencies: httpx, mcp

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

mcp_elevenreader-0.1.0.tar.gz (51.4 kB view details)

Uploaded Source

Built Distribution

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

mcp_elevenreader-0.1.0-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file mcp_elevenreader-0.1.0.tar.gz.

File metadata

  • Download URL: mcp_elevenreader-0.1.0.tar.gz
  • Upload date:
  • Size: 51.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","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 mcp_elevenreader-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ef185b25f0425139bb6521b7ee1914dfc445e62f1277de8234fdc02ba5378b20
MD5 89648b808944a7b6b22f8cb407c3a83e
BLAKE2b-256 1c45ed00c78d56eac65f14f3b91c7733f6f048df9f1b77c17a3fac97fd9142bd

See more details on using hashes here.

File details

Details for the file mcp_elevenreader-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: mcp_elevenreader-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","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 mcp_elevenreader-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 550b2deb81d9962ef5bcd73fdb7bb46e4d7eecea3ea24477e9daf3dcac71b567
MD5 86b723bf8861af095db03aa657652912
BLAKE2b-256 21940071e88596a981d8252095d0f9664c4ac361cc2fadbbad0c4035b89b32f4

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