Skip to main content
Glama
README.md
# @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

A3.9/5.0

Scored across 6 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness3/5

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.

Maintenance

ActivityInactive
ResponsivenessNo issues