Skip to main content

Audiobookshelf API + MCP Server + A2A Server

Project description

Audiobookshelf MCP

CLI or API | MCP | Agent

PyPI - Version MCP Server PyPI - Downloads GitHub Repo stars PyPI - License GitHub last commit (by committer)

Version: 0.1.0

Documentation — Installation, deployment, usage across the API, CLI, and MCP interfaces, the integrated A2A agent server, and guidance for provisioning the backing platform are maintained in the official documentation.


Table of Contents


Overview

Audiobookshelf MCP MCP Server + A2A Agent

Audiobookshelf API + MCP Server + A2A Server

This repository is actively maintained - Contributions are welcome!

Key Features

  • Action-routed MCP tools — each domain is exposed as a single MCP tool that routes to many underlying operations via an action argument, keeping the tool surface small.
  • Three interfaces, one package — use it as a Python API client, an MCP server (stdio / streamable-http / sse), or a Pydantic-AI A2A agent.
  • agent-utilities native — built on the shared framework (auth, action router, telemetry, governance) for fleet consistency.
  • Per-tool toggles — enable or disable each tool domain with environment switches.
  • Enterprise-ready — OTEL/Langfuse telemetry and optional Eunomia access governance.

Available MCP Tools

Each tool is action-routed: pass an action and a JSON params_json payload. Tool domains can be toggled on or off with the listed environment variable. The table below is auto-generated from the live server by the mcp-readme-table pre-commit hook (python -m agent_utilities.mcp.readme_tools) — do not edit it by hand.

MCP Tool Toggle Env Var Description
author_operations AUTHORSTOOL Manage Audiobookshelf authors. CONCEPT:ABS-002
email_operations EMAILTOOL Manage Audiobookshelf email settings and e-reader delivery. CONCEPT:ABS-005
library_operations LIBRARIESTOOL Manage Audiobookshelf libraries. CONCEPT:ABS-001
notification_operations NOTIFICATIONTOOL Manage Audiobookshelf notifications. CONCEPT:ABS-006
podcast_operations PODCASTSTOOL Manage Audiobookshelf podcasts and episodes. CONCEPT:ABS-004
series_operations SERIESTOOL Manage Audiobookshelf series. CONCEPT:ABS-003

6 action-routed tools (default MCP_TOOL_MODE=condensed). Each is enabled unless its toggle is set false; set MCP_TOOL_MODE=verbose (or both) for the 1:1 per-operation surface. Auto-generated — do not edit.

Installation

Install with uvx (no install — run on demand)

uvx --from audiobookshelf-mcp audiobookshelf-mcp      # MCP server
uvx --from audiobookshelf-mcp audiobookshelf-agent    # A2A agent server

Install with pip

python -m pip install audiobookshelf-mcp            # core (API client)
python -m pip install "audiobookshelf-mcp[all]"     # + MCP server + A2A agent + telemetry

Console scripts

After installation the following entry points are available on your PATH:

Command Description
audiobookshelf-mcp Launch the MCP server
audiobookshelf-agent Launch the A2A agent server

Usage

As a Python API client

from audiobookshelf_mcp.auth import get_client

client = get_client()
status = client.get_system_status()
print(status)

As an MCP server (CLI)

# Local stdio (for IDEs)
audiobookshelf-mcp

# Networked streamable-http
audiobookshelf-mcp --transport streamable-http --host 0.0.0.0 --port 8000

Calling an MCP tool

Tools are action-routed — pass an action plus a JSON params_json string:

{
  "tool": "system_operations",
  "arguments": {
    "action": "status",
    "params_json": "{}"
  }
}

MCP

Using as an MCP Server

The MCP Server can be run in stdio (local), streamable-http (networked), or sse mode.

Environment Variables

  • AUDIOBOOKSHELF_URL: The URL of the target service.
  • AUDIOBOOKSHELF_TOKEN: The API token or access token.

stdio Transport (local IDEs — Cursor, Claude Desktop, VS Code)

{
  "mcpServers": {
    "audiobookshelf-mcp": {
      "command": "uvx",
      "args": ["--from", "audiobookshelf-mcp", "audiobookshelf-mcp"],
      "env": {
        "AUDIOBOOKSHELF_URL": "https://service.example.com",
        "AUDIOBOOKSHELF_TOKEN": "your_token"
      }
    }
  }
}

Streamable-HTTP Transport (networked / production)

{
  "mcpServers": {
    "audiobookshelf-mcp": {
      "command": "uvx",
      "args": ["--from", "audiobookshelf-mcp", "audiobookshelf-mcp", "--transport", "streamable-http", "--port", "8000"],
      "env": {
        "TRANSPORT": "streamable-http",
        "HOST": "0.0.0.0",
        "PORT": "8000",
        "AUDIOBOOKSHELF_URL": "https://service.example.com",
        "AUDIOBOOKSHELF_TOKEN": "your_token"
      }
    }
  }
}

Additional Deployment Options

audiobookshelf-mcp can also run as a local container (Docker / Podman / uv) or be consumed from a remote deployment. The Deployment guide has full, copy-paste mcp_config.json for all four transports — stdio, streamable-http, local container / uv, and remote URL:

  • Local container / uv — launch the server from mcp_config.json via uvx, docker run, or podman run, or point at a local streamable-http container by url.
  • Remote URL — connect to a server deployed behind Caddy at http://audiobookshelf-mcp.arpa/mcp using the "url" key.

Install Python Package

python -m pip install audiobookshelf-mcp

Documentation

Full documentation is published to the GitHub Pages site and mirrored under docs/:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

audiobookshelf_mcp-0.1.0.tar.gz (42.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

audiobookshelf_mcp-0.1.0-py3-none-any.whl (52.5 kB view details)

Uploaded Python 3

File details

Details for the file audiobookshelf_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: audiobookshelf_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 42.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for audiobookshelf_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d79c9272622257432b51b54c6d0148b73b23c080d21a663cd1495442d7716075
MD5 e035085a6d06e23888ae95f3d5cfa8bc
BLAKE2b-256 d2d23bd3822af561bd32f1beee249f124d563780181768371f991d16ccb9123f

See more details on using hashes here.

File details

Details for the file audiobookshelf_mcp-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for audiobookshelf_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fda04ca191b1fd09c2a89a088e9eb3870df1e77628cab0940f16a2995155d81d
MD5 22316629f37f3e369327149782040ae1
BLAKE2b-256 385a49ce8d2f146583799b4d6e076d794cd7a4d7168ade2058feb2a53f00ecb5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page