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/booksendpoint (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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2589afe009a22b3312da6181321c891583f67d9b7aa8a86fb369711de7e812f
|
|
| MD5 |
1de49935899b7763177218790adba683
|
|
| BLAKE2b-256 |
c52fdf67e4a58125a9eb2e217f07da18f3d33963963cf387a89f248f6b971ac1
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9b8e7fe5befb6dc6a57957c8f49ac3eff21c42bfaaaa7d7e9d83a27922effa3
|
|
| MD5 |
d26e020b9272512c04a0a57216cd8413
|
|
| BLAKE2b-256 |
71a8c705e940bd755ca9f508cf8e811fe959496a53b39713b910932a246be42c
|