A Model Context Protocol server for authenticated Audible read workflows.
audible-mcp
audible-mcp is a TypeScript Model Context Protocol server for authenticated Audible read workflows.
It currently exposes signed-auth tools and resources for:
- library listing
- collection item listing
- library search
- in-progress title listing
- single library item lookup
- wishlist listing
- collections listing
- chapter lookup by ASIN
- content metadata by ASIN
- catalog product metadata by ASIN
- aggregate listening stats
- auth validation
- local auth status
Requirements
- Node.js 22+
- an Audible auth bundle created with the login flow in this repo or via the published CLI
Setup
You need an audible-auth.json file before running the MCP server.
If you are working from a local checkout:
npm install
npm run auth:login -- --marketplace us --file .\audible-auth.json
If you are using the published package:
npx audible-mcp auth login --marketplace us --file ./audible-auth.json
The login flow opens Audible/Amazon in your browser, then asks you to paste the final maplanding URL back into the terminal. The resulting audible-auth.json contains live credentials and should not be committed.
If the saved auth expires, refresh the auth bundle without re-registering the device.
Local checkout:
npm run auth:refresh -- --file .\audible-auth.json
Published package:
npx audible-mcp auth refresh --file ./audible-auth.json
Install Via npm
Run the published server directly with npx:
npx -y audible-mcp serve
Run The MCP Server
Start the stdio server directly:
$env:AUDIBLE_AUTH_FILE = ".\audible-auth.json"
npm run mcp:start
After npm publish, the equivalent command is:
AUDIBLE_AUTH_FILE=./audible-auth.json npx audible-mcp serve
Run the end-to-end MCP smoke test:
$env:AUDIBLE_AUTH_FILE = ".\audible-auth.json"
npm run smoke:test
Root Config Files
mcp.config.json: local MCP client config for this checkout; gitignoredmcp.config.example.json: committed template you can copy and edit for your machine
The local config uses the server command from this repo and points AUDIBLE_AUTH_FILE at the root auth bundle.
Example MCP Config
Using the published npm package:
{
"mcpServers": {
"audible": {
"command": "npx",
"args": ["-y", "audible-mcp", "serve"],
"env": {
"AUDIBLE_AUTH_FILE": "/path/to/audible-auth.json"
}
}
}
}
Using a local checkout:
{
"mcpServers": {
"audible": {
"command": "npm",
"args": ["run", "mcp:start"],
"cwd": "/path/to/audible-mcp",
"env": {
"AUDIBLE_AUTH_FILE": "/path/to/audible-mcp/audible-auth.json"
}
}
}
}
The committed template in mcp.config.example.json uses the published package.
Available Tools
audible_list_libraryaudible_list_collection_itemsaudible_search_libraryaudible_list_in_progress_titlesaudible_get_library_itemaudible_list_wishlistaudible_list_collectionsaudible_get_chaptersaudible_get_content_metadataaudible_get_catalog_productaudible_get_listening_statsaudible_validate_authaudible_get_auth_status
Available Resources
audible://auth/statusaudible://wishlistaudible://collectionsaudible://collections/{collectionId}/itemsaudible://library/{asin}audible://content/{asin}/metadataaudible://catalog/{asin}
Development Scripts
npm run auth:loginnpm run auth:refreshnpm run mcp:startnpm run smoke:testnpm run typechecknpm run testnpm run buildnpm run check
Notes
- Signed auth is the working API path in this repo.
audible-auth.jsoncontains private credentials and should be treated as a secret.- The main CLI supports
serve,auth login, andauth refresh. - CI runs
npm run checkon pushes tomasterand on pull requests.
Security
- Do not commit
audible-auth.json. - If the auth bundle is ever exposed, revoke or replace it by generating a new device registration.
mcp.config.jsonis local-only and should stay uncommitted.
Tools (13)
audible_list_libraryLists the user's Audible library.audible_list_collection_itemsLists items within a specific collection.audible_search_librarySearches the user's library.audible_list_in_progress_titlesLists titles currently in progress.audible_get_library_itemRetrieves details for a single library item.audible_list_wishlistLists the user's Audible wishlist.audible_list_collectionsLists all user collections.audible_get_chaptersLooks up chapters by ASIN.audible_get_content_metadataRetrieves content metadata by ASIN.audible_get_catalog_productRetrieves catalog product metadata by ASIN.audible_get_listening_statsRetrieves aggregate listening statistics.audible_validate_authValidates the current authentication.audible_get_auth_statusGets the local authentication status.Environment Variables
AUDIBLE_AUTH_FILErequiredPath to the audible-auth.json file containing credentialsConfiguration
{"mcpServers": {"audible": {"command": "npx", "args": ["-y", "audible-mcp", "serve"], "env": {"AUDIBLE_AUTH_FILE": "/path/to/audible-auth.json"}}}}