ElevenLabs' ElevenReader is one of the most natural-sounding text-to-speech platforms for converting documents, research PDFs, and EPUBs into spoken audio.
However, moving documents from research workflows or local code repositories into ElevenReader traditionally requires manual browser drag-and-drops.
I built mcp-elevenreader, an open-source MCP server that provides full conversational control over your ElevenReader library.
Features
- Document Ingestion — Upload PDFs, EPUBs, or plain text from your workspace directly to ElevenReader.
- Library Tracking — Query reading progress, bookmarks, and completed reads.
- Voice Selection & Customization — Configure narrator voices and collections via chat.
-
Zero-Install Execution (Powered by
uvx) no virtualenv setup required.
Setup Instructions
1. Retrieve Refresh Token
Log into elevenreader.io, open DevTools (F12), switch to Console, and run:
JSON.parse(localStorage.getItem(Object.keys(localStorage).find(k => k.startsWith('firebase:authUser:')))).stsTokenManager.refreshToken
2. Configure Claude Code
claude mcp add elevenreader -e ELEVEN_REFRESH_TOKEN="<your-token>" -- uvx mcp-elevenreader
Or Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"elevenreader": {
"command": "uvx",
"args": ["mcp-elevenreader"],
"env": {
"ELEVEN_REFRESH_TOKEN": "<your-token>"
}
}
}
}
Sample Prompt
"Claude, upload the file
./papers/deepseek-r1.pdfto my ElevenReader library and let me know when it's ready for listening."
Check out the code on GitHub: github.com/MIt9/mcp-elevenreader

Top comments (0)