mcp-audible
# @striderlabs/mcp-audible
MCP (Model Context Protocol) server for Audible audiobook service. Automates Audible.com via Playwright + Browserbase to search audiobooks, manage your library, wishlist, and credits.
## Requirements
- [Browserbase](https://browserbase.com) account with a running session
- Node.js 18+
## Setup
```bash
npm install
npm run build
```
## Configuration
Set the following environment variable:
| Variable | Required | Description |
|----------|----------|-------------|
| `BROWSERBASE_CDP_URL` | Yes | CDP WebSocket URL from Browserbase session |
The Browserbase session must already be authenticated with Audible (logged in). Navigate to audible.com and sign in before using library/wishlist/credits tools.
## Usage with Claude Desktop
Add to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"audible": {
"command": "node",
"args": ["/path/to/dist/index.js"],
"env": {
"BROWSERBASE_CDP_URL": "wss://connect.browserbase.com?apiKey=YOUR_KEY&sessionId=YOUR_SESSION"
}
}
}
}
```
Or if installed via npm:
```json
{
"mcpServers": {
"audible": {
"command": "npx",
"args": ["@striderlabs/mcp-audible"],
"env": {
"BROWSERBASE_CDP_URL": "wss://connect.browserbase.com?apiKey=YOUR_KEY&sessionId=YOUR_SESSION"
}
}
}
}
```
## Tools
### `search_audiobooks`
Search Audible by title, author, or narrator.
**Parameters:**
- `query` (string, required): Search query
- `search_by` (string, optional): `"title"` | `"author"` | `"narrator"`
**Returns:** Array of up to 20 audiobooks with title, author, narrator, runtime, rating, price, ASIN, and summary.
---
### `get_audiobook_details`
Get full details for a specific audiobook.
**Parameters:**
- `asin` (string, required): Audible ASIN identifier
**Returns:** Detailed audiobook info including runtime, release date, publisher, language, rating, review count, price, categories, and sample URL.
---
### `get_library`
List audiobooks in your Audible library.
**Parameters:**
- `page` (number, optional): Page number for pagination (default: 1)
**Returns:** Array of library items with title, author, narrator, runtime, date added, and listening progress.
> Requires authenticated session.
---
### `get_wishlist`
List audiobooks in your Audible wishlist.
**Parameters:** None
**Returns:** Array of wishlist items with title, author, narrator, runtime, price, and date added.
> Requires authenticated session.
---
### `add_to_wishlist`
Add an audiobook to your Audible wishlist.
**Parameters:**
- `asin` (string, required): Audible ASIN of the audiobook
**Returns:** `{ success: boolean, message: string }`
> Requires authenticated session.
---
### `get_credits`
Check available Audible credits and membership details.
**Parameters:** None
**Returns:** Available credit count, membership type, next credit date, and rollover policy.
> Requires authenticated session.
## How It Works
This server uses Playwright to connect to a remote browser session via Browserbase's CDP (Chrome DevTools Protocol) endpoint. It navigates Audible pages and extracts data via DOM scraping.
Since Audible does not have a public API, this approach uses browser automation. The Browserbase session maintains cookies and authentication state between calls.
## License
MIT
TDQS
Scored across 6 tools
Each tool targets a distinct resource and action: searching, fetching details, viewing library/wishlist, adding to wishlist, and checking credits. There is no meaningful overlap between tools, and an agent can easily choose the correct one.
All tool names follow a consistent snake_case verb_noun pattern, with get_, search_, and add_ as clear action prefixes. This makes the API predictable and easy to navigate.
Six tools is a well-scoped size for an Audible assistant covering discovery, details, library, wishlist, and credits. Each tool represents a meaningful capability without unnecessary bloat.
The core read and add flows are covered, but there is an obvious missing operation: remove_from_wishlist since add_to_wishlist exists. The surface also lacks any library management or playback-related actions, though those may be outside the intended scope.