
Audiobookshelf MCP
io.github.jeeftor由 GitHub 帳號 jeeftor 發布v0.6.0更新於 Oct 24, 2026
Inspect and safely operate Audiobookshelf libraries over MCP.
概覽
一個本機 MCP 伺服器,讓助理檢視 Audiobookshelf 有聲書庫、稽核目錄結構,並可選擇執行受保護的維護操作。
- 可以做什麼
- 瀏覽書庫、項目、作者、系列與合集,讀取項目詳情與中繼資料物件,並透過 MCP 資源與提示取得伺服器資訊、統計與稽核提示。搜尋書庫與電子書,預覽將電子書傳送到已儲存的電子閱讀器裝置。讀取收聽進度、工作階段、書籤、備份與電子閱讀器裝置清單。稽核項目路徑是否符合作者/標題或作者/系列/標題的目錄慣例,且不移動檔案。關閉唯讀模式後,可掃描書庫與項目,更新中繼資料、封面、章節、進度與書籤,建立備份,以及建立、更新或刪除合集與播放清單。
- 適用情境
- 適合執行 Audiobookshelf 伺服器、希望助理回答書庫問題、查看收聽統計或排查掃描與整理問題的情境。也適合在搭配其他整理工具清理檔案前,先稽核目錄結構。
- 執行需求
- 以本機程序執行:發行版二進位檔、Go 原始碼或 ghcr.io 容器映像,預設使用 stdio。需要 Audiobookshelf 基礎網址(ABS_BASE_URL)與 API 金鑰或 bearer 權杖(ABS_API_KEY)。選用設定包括額外請求標頭、自訂 TLS CA 憑證、逾時,以及帶獨立 bearer 權杖(ABS_HTTP_BEARER_TOKEN)的 HTTP 傳輸。需要能連線到 Audiobookshelf 伺服器的網路。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Audiobookshelf MCP,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
Audiobookshelf MCP Server
A Go MCP server for inspecting and safely operating Audiobookshelf libraries.
abs-mcp exposes safe, typed MCP tools and resources for agents that need to
inspect Audiobookshelf libraries, diagnose scans, and optionally trigger bounded
maintenance workflows.
Table of Contents
- Highlights
- Audiobook Organizer Compatibility
- AI Generated Comparison - Last updated 2026-06-22
- Quick Start
- MCP Surface
- Configuration
- Safety
- Installation
- Local Development
- Tests
- CI and Releases
- MCP Registry
Highlights
- Read-only by default; scan and cleanup tools require
ABS_READ_ONLY=false. - Ships as a local stdio MCP server from a single Go binary or Docker image, with optional Streamable HTTP mode for hosted or multi-client deployments.
- Supports env vars, Docker-style env files, extra headers, and custom TLS CA bundles.
- Includes source-backed Audiobookshelf API inventory resources and repeatable fixture tests.
- Publishes release binaries and a GHCR image suitable for official MCP Registry metadata.
Audiobook Organizer Compatibility
I built this MCP server to work especially well alongside jeeftor/audiobook-organizer. While it exposes the normal Audiobookshelf MCP tools for inspecting libraries, items, metadata, and server state, one of its most useful workflows is auditing whether books are actually organized the way you expect on disk.
The abs_find_misorganized_items tool checks Audiobookshelf item paths against
supported folder layout conventions, including author/title and
author/series/title structures. It is audit-only, so it reports likely
misconfigured or misplaced books without moving or deleting files. That makes it
a good companion to Audiobook Organizer: use this MCP server to identify layout
problems from Audiobookshelf's perspective, then use Audiobook Organizer to
clean up or standardize the underlying files.
AI Generated Comparison - Last updated 2026-06-22
This comparison is generated from public GitHub repository metadata, public project READMEs, registry/package searches, and this repository's current docs. It is descriptive rather than a recommendation.
Mutating versus non-mutating coverage:
jeeftor/abs-mcpexposes read-only inspection, search, author, series, collection, current-user progress/bookmark/listening reads, backups, ereader device discovery, ebook send preview, metadata-object, layout-audit, resources, and prompts by default. Ebook device-send tools perform outbound delivery but do not mutate Audiobookshelf library, metadata, backup, progress, collection, or playlist state, so they remain usable in read-only mode. Scan, cleanup, cover, chapter, progress/bookmark writes, backup creation, metadata, and collection/playlist create/update/add/delete/remove tools can mutate Audiobookshelf state only whenABS_READ_ONLY=false; destructive operations also require exact confirmation strings.michaeldvinci/audiobookshelf-mcpexposes a broad management surface with read tools plus mutating operations such as library, collection, playlist, progress, and backup actions. No public README evidence was found for a global default read-only gate during this pass.sandymac/audiobookshelf-mcpis mostly read/query oriented, with optional progress and bookmark mutation tools that are disabled by default.sierikov/audiobookshelf-mcppresents a read-only browsing, search, progress, stats, author, series, and collection surface.ForceConstant/audiobookshelf_mcpappears to be generated from Audiobookshelf OpenAPI material; mutating coverage and safety gates were not determinable from the public README.
Sources checked in this pass:
- Public GitHub repositories:
michaeldvinci/audiobookshelf-mcp,sandymac/audiobookshelf-mcp,sierikov/audiobookshelf-mcp,ForceConstant/audiobookshelf_mcp, andschmidt-software/mcp-audiobookshelf. - Search checks for additional npm and PyPI packages did not surface a credible Audiobookshelf-specific MCP server beyond the GitHub targets above.
Weak or placeholder hits, such as
schmidt-software/mcp-audiobookshelf,
were excluded when no implementation or feature evidence was available.
Candidate gaps from this comparison
- Candidate: evaluate a bounded podcast workflow. Public peers expose podcast browsing or episode checks; this server currently has no dedicated podcast tools beyond generic item/library APIs.
- Candidate: evaluate library creation/update workflows. One public peer exposes
library creation, but this remains an admin-level operation that would need
source verification, fixture coverage,
ABS_READ_ONLY=false, and destructive confirmations for any delete/remove path. - Candidate: evaluate
.mcpbdesktop bundle packaging. One public peer ships Claude Desktop.mcpbbundles; this server currently publishes binaries, Docker/GHCR artifacts, and MCP Registry metadata instead. - Existing candidate still relevant: #5 tracks Streamable HTTP transport support. Public peers show both HTTP/SSE and Streamable HTTP shapes, so the issue should be reconciled with the current optional Streamable HTTP implementation and any remaining hardening or documentation gaps.
Quick Start
Run a downloaded release binary over MCP stdio:
Or run the container image:
For client-specific snippets, see Client Configs.
MCP Surface
Tools
The server exposes all registered tools in the README, grouped by whether they can change Audiobookshelf state.
Read-only and non-ABS-mutating tools:
abs_health_checkabs_list_librariesabs_get_libraryabs_list_library_itemsabs_get_library_itemabs_search_libraryabs_search_ebooksabs_preview_ebook_device_sendabs_get_library_statsabs_get_filter_dataabs_list_library_authorsabs_get_authorabs_list_library_seriesabs_get_seriesabs_list_collectionsabs_get_collectionabs_get_items_in_progressabs_get_listening_statsabs_list_listening_sessionsabs_get_item_progressabs_list_bookmarksabs_list_backupsabs_list_ereader_devicesabs_send_ebook_to_deviceabs_send_ebook_by_queryabs_get_item_metadata_objectabs_find_misorganized_items
Implemented mutating tools:
abs_scan_libraryabs_scan_library_and_waitabs_scan_itemabs_update_item_metadataabs_update_item_progressabs_create_bookmarkabs_update_bookmarkabs_create_backupabs_update_item_coverabs_remove_item_coverabs_update_item_chaptersabs_create_collectionabs_update_collectionabs_delete_collectionabs_add_collection_itemabs_remove_collection_itemabs_create_playlistabs_update_playlistabs_delete_playlistabs_add_playlist_itemabs_remove_playlist_itemabs_remove_library_items_with_issues
Planned mutating tools advertised for discovery:
abs_match_itemabs_update_item_tracks
Tools that mutate Audiobookshelf state are blocked by default because
ABS_READ_ONLY defaults to true. Scan tools, issue cleanup, cover updates,
chapter updates, typed item metadata, current-user progress/bookmark writes,
backup creation, and collection/playlist create, update, add-item, delete, and
remove-item tools are implemented mutating operations. Ebook send-to-device
delivery and guarded query-based device send only email an already-existing
ebook file out; they create, change, or delete nothing on Audiobookshelf
(library, metadata, backup, progress, collection, or playlist state), so they
are allowed while read-only mode is enabled. Read-only here means "does not
mutate Audiobookshelf state," not "produces no outbound side effect"; if you
need to suppress device delivery entirely, do not configure an ereader device.
Use abs_preview_ebook_device_send first for device-send UX: it is
read-only, returns compact ebook candidates, sanitized device names, ready,
the exact confirmation string when one ebook and one saved device name resolve,
and nextTool for the send step. ABS still authorizes device access and
delivery during the final device-send call.
Remaining planned mutating tools, including item matching and item track
updates, are advertised for discovery but return a not-implemented error after
read-only checks until their ABS source and fixture behavior is verified.
Resources
abs://server/infoabs://librariesabs://libraries/{library_id}abs://libraries/{library_id}/items?limit=...&offset=...abs://libraries/{library_id}/statsabs://libraries/{library_id}/filterdataabs://items/{item_id}abs://items/{item_id}/metadata-objectabs://api-inventory/currentabs://fixture/status
Prompts
abs_library_auditabs_scan_troubleshootingabs_api_update_review
See docs/tools.md for tool inputs, output shapes, mutation behavior, and common errors.
Configuration
Environment variables and env files are the preferred configuration paths for MCP clients, containers, and other launchers that inject secrets:
The server can load those same values from a Docker-style env file:
The server also accepts matching Cobra/Viper CLI flags. Precedence is explicit
CLI flags, then process environment variables, then --env-file, then built-in
defaults:
Prefer ABS_API_KEY and ABS_HTTP_BEARER_TOKEN over --api-key and
--http-bearer-token outside short local debugging sessions so tokens do not
land in shell history or process listings.
Use ABS_TRANSPORT=http or --transport=http to serve stateless Streamable
HTTP at http://<ABS_HTTP_ADDR><ABS_HTTP_PATH>. The default bind address is
local-only. Each request is independently routable: it does not create or use
an MCP session ID. Proxies must forward the Mcp-Protocol-Version,
Mcp-Method, and Mcp-Name request headers unchanged.
When ABS_HTTP_BEARER_TOKEN is set, HTTP clients must send
Authorization: Bearer <token> to the MCP endpoint. This token protects the MCP
HTTP endpoint and is separate from the upstream ABS_API_KEY sent to
Audiobookshelf. For remote or multi-user access, put the server behind a
TLS/authenticating reverse proxy such as Cloudflare Access / Zero Trust and keep
Audiobookshelf credentials in environment variables or secret files, not URL
query parameters.
ABS_EXTRA_HEADERS_FILE is optional. When set, it must point to a JSON object
of string header names to string values, for example
{"X-Corp-Trace":"trace-1"}. Authorization is rejected there; use
ABS_API_KEY for Audiobookshelf authentication.
--env-file supports simple Docker-style dotenv lines such as KEY=value,
KEY="value", KEY='value', blank lines, comments, and optional export
prefixes. Unknown keys are ignored by the MCP server.
Use --header NAME=VALUE for quick local header injection. It is repeatable,
and duplicate names override values from ABS_EXTRA_HEADERS_FILE. Prefer the
file for secrets such as Cloudflare Access credentials because CLI flags can
show up in shell history and process listings.
For private or corporate TLS certificates, prefer ABS_TLS_CA_CERT_FILE or
--tls-ca-cert-file with a PEM CA bundle. Use
ABS_TLS_INSECURE_SKIP_VERIFY=true or --tls-insecure-skip-verify only as a
temporary fallback while fixing local trust.
Safety
abs-mcp defaults to read-only mode. With ABS_READ_ONLY=true, all mutating
tools are blocked before making Audiobookshelf API calls.
These tools can mutate Audiobookshelf state and require ABS_READ_ONLY=false:
abs_scan_libraryabs_scan_library_and_waitabs_scan_itemabs_update_item_coverabs_remove_item_coverabs_update_item_chaptersabs_update_item_metadataabs_update_item_progressabs_create_bookmarkabs_update_bookmarkabs_create_backupabs_send_ebook_to_deviceabs_send_ebook_by_queryabs_match_item(planned; not implemented)abs_update_item_tracks(planned; not implemented)abs_create_collectionabs_update_collectionabs_delete_collectionabs_add_collection_itemabs_remove_collection_itemabs_create_playlistabs_update_playlistabs_delete_playlistabs_add_playlist_itemabs_remove_playlist_itemabs_remove_library_items_with_issues
The item match and item track tools are stubs: they validate read-only mode, then return a clear not-implemented error until their Audiobookshelf source and Docker fixture behavior are verified.
abs_remove_library_items_with_issues also requires the exact confirmation
string remove issues from <libraryId> and can check an expected issue count
before it asks Audiobookshelf to remove missing or invalid items.
Future destructive tools should follow the same pattern: ABS_READ_ONLY=false
must be necessary but not sufficient, and the tool should require an explicit
confirmation input before deleting, removing, purging, replacing, overwriting,
or broadly batch-mutating Audiobookshelf data.
The server requires an Audiobookshelf base URL and API key or bearer token.
Prefer an Audiobookshelf API key with the least permissions needed for the
tools you plan to expose. Bearer tokens, API keys, raw Authorization headers,
and extra header values are not logged by this server. Authorization is
rejected in ABS_EXTRA_HEADERS_FILE; use ABS_API_KEY for Audiobookshelf
authentication.
Installation
Download a release archive from the
GitHub releases page, unpack it,
and point your MCP client at the abs-mcp binary. The server defaults to MCP
over stdio, which remains the release and registry path.
For local development, you can also run the server from source:
For local Streamable HTTP testing:
Point Streamable HTTP clients, including local tools such as Hermes or MCP
Inspector, at http://127.0.0.1:3333/mcp. If ABS_HTTP_BEARER_TOKEN is set,
configure the client to send the matching bearer token. The endpoint uses a
static bearer token, not OAuth; deploy OAuth protected-resource metadata only
if the server later adopts an OAuth authorization flow.
Client Configs
Claude Desktop, Cursor, VS Code, and Windsurf all support stdio MCP servers
with a command, arguments, and environment values. Use an absolute binary path
and prefer env or --env-file for secrets.
Claude Desktop claude_desktop_config.json:
Claude Code:
Cursor mcp.json:
VS Code MCP config:
Windsurf MCP config using an env file:
Docker-based stdio config:
Run the container image directly:
With Cloudflare Access headers and a corporate/private CA bundle:
Build a local image:
Local Development
Bring up the repo-local Audiobookshelf fixture, scan the staged test media, build the MCP server, and write a local MCP client config:
That target leaves Audiobookshelf running on http://localhost:13388 and writes
.mcp.dev.json. The generated config points at bin/abs-mcp, includes the
fixture token from test/abs/.env.testing, sets ABS_READ_ONLY=true, and is
gitignored.
Use this command when you need mutating scan tools enabled in a local client:
Stop the fixture when done:
Install the local pre-commit hooks:
Run all hooks manually:
Tests
Run unit and protocol tests:
Run Docker-backed Audiobookshelf integration tests:
The integration target resets and scans the repo-local ABS fixture before running tests.
Stop fixture containers when done:
CI and Releases
GitHub Actions runs unit tests, Go package tests, a binary build, and a Docker
image build on pushes and pull requests to master.
Tags matching v* publish release archives for Linux, macOS, and Windows on
amd64 and arm64. The release workflow also publishes a multi-arch Docker image
to ghcr.io/jeeftor/abs-mcp.
MCP Registry
This repository is prepared for the official MCP Registry using the OCI package path:
- Registry name:
io.github.jeeftor/abs-mcp - Package:
ghcr.io/jeeftor/abs-mcp:<version> - Registry transport:
stdio - Runtime transports:
stdioby default; optional local Streamable HTTP withABS_TRANSPORT=http - Metadata file:
server.json
The Docker image includes the required MCP ownership label
io.modelcontextprotocol.server.name=io.github.jeeftor/abs-mcp.
On v* tags, the release workflow builds the immutable GHCR image tag, rewrites
server.json to the tag version, authenticates to the MCP Registry with GitHub
OIDC, and publishes with mcp-publisher. GitHub OIDC does not require a
dedicated registry secret.
After the official registry entry is published, downstream aggregators can pick it up from the registry API. Glama is the next practical listing target. Smithery should wait until this project either ships an MCPB bundle for stdio distribution or has a hardened public Streamable HTTP deployment profile with documented external authentication.
來源:README.md,提交 57e9c2a
工具
0版本歷史
1- v0.6.0最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分