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.1.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.1-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mcp_elevenreader-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 e2589afe009a22b3312da6181321c891583f67d9b7aa8a86fb369711de7e812f
MD5 1de49935899b7763177218790adba683
BLAKE2b-256 c52fdf67e4a58125a9eb2e217f07da18f3d33963963cf387a89f248f6b971ac1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mcp_elevenreader-0.1.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a9b8e7fe5befb6dc6a57957c8f49ac3eff21c42bfaaaa7d7e9d83a27922effa3
MD5 d26e020b9272512c04a0a57216cd8413
BLAKE2b-256 71a8c705e940bd755ca9f508cf8e811fe959496a53b39713b910932a246be42c

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