Releases: katbyte/abs-mcp
Releases · katbyte/abs-mcp
Release list
v0.5.0
Changelog
- 6a62372 Shorten the changelog to what a reader needs, and date 0.5.0
- ef41781 Say when the server fails, instead of answering as if it came back empty
- 3573029 Find stray spaces in names, and cut false abridged and duplicate findings
- 3bc2a4b Fix the two test listings that still passed a library id
- f92a88e audit_abridged: compare two readings only where a cut can show
- 18529b3 Audit what a large import leaves: one recording twice, abridged books, mixed folder styles
- c98adf1 Fix what a deep review found, bring over embyfin's recent work, test it live (#8)
- 9c39f4b ci: scan the release and main binaries with trivy (#7)
- 8f55e26 ci: group dependabot updates and run checks monthly (#5)
- dec6413 actions: audit workflows with zizmor, and fix what it found (#3)
- 5cd687b add mcp.json
- 4b27376 Merge pull request #2 from katbyte/journeys-and-a-binary-smoke-test
- 3e6572b Five more journeys, a binary smoke test, and the bugs they found
- 80b0372 Journey tests and the tool bugs they found
- 1a9bec3 Merge pull request #1 from katbyte/dependabot/go_modules/dot-tools/mvdan.cc/gofumpt-0.12.0
v0.4.0
Changelog
- 99f1f15 Fix CI: lint backlog, tests for the six untested tools, and a Messy fixture library
- 34c1d92 Update CHANGELOG for version 0.4.0 release date
- 4c6b766 Series, cover and description audits from a full library pass
- aedc1f6 Changes and fixes based on auditing real data
- 95b299e bump go-kt to v0.2.0
- bfd7909 migrate clog and version to go-kt v0.2.0
- a44b3be Refuse what was never named, and let audit_all audit all
v0.3.0
0.3.0 (2026-09-13)
Breaking
- one rename tool.
metadata_rename field=tags|genres|narrators|authors|languages|publishers
replacesserver_tag_rename,narrator_editandaudit_terminology_rename, and with
removedrops a tag, genre, narrator, language or publisher everywhere.audit_terminology
is nowaudit_spelling, and every group it reports is fixed by the one tool. 88 tools -> 86 audit_no_episodesandaudit_stale_feedareaudit_podcast_no_episodesand
audit_podcast_stale_feed, so the name says they only look at podcastsitem_cover_editno longer removes the cover when called with neitherurlnorfile:
passremove=true. A call that forgot its url used to delete the cover- the README token table is now what the model sees. Most clients send only the description
and input schema to the model, not the output schema, which was 60% of the earlier figure
Added
audit_unembedded: books whose audio files carry no tags, or tags that disagree with the
current title, author, narrator, series, genres, year or publisher - what
item_embed_metadatais due for after a curation pass. It reads the expanded items in
batches of 50, so it runs apart fromaudit_all
Fixed
item_edit clearfornarrators,series,genresandtagswas a silent no-op: the
empty list was dropped from the request (omitempty), so the server saw nothing to change.
lib/abslist fields are nowomitzero: nil leaves a field alone, an empty slice clears itaudit_cover_ratiomeasured the server's 400-pixel-wide cache copy rather than the cover
file, so every cover was "400 wide" and the too-small check could never fire. It now asks for
the raw file, reads only the image header instead of buffering the whole image, and skips
the request for items the listing already says have no coveraudit_spelling(thenaudit_terminology) never found narrator spellings: the sweep sees the minified item shape,
which carries narrators only as one joinednarratorName, and only the expanded
narratorslist was read- an audit with a server-side filter (
audit_missing,audit_issues,audit_no_audio)
overranlimitonce an earlier library had filled it: the request for the next library was
sent with no limit, which the server reads as everything lib/absDeleteAuthorImagereturned an empty record; the server answers with the author
under anauthorkey, like the image and match routes
Changed
- docker-free tests for the tools: an in-memory MCP session against a canned Audiobookshelf
(tools/handlers_test.go), covering what the live fixtures cannot reach - a library with
covers, inconsistent narrator spellings, more findings than the limit lib/absrequest and response-shape tests without a server: paging, streaming, multipart
upload, the vocabulary path encoding, the chapter and feed-episode unwrappingintParam/intQueryandnarratorID/vocabularyIDwere the same function twice
v0.2.0
Changelog
- 7fb0048 Tighten the 0.2.0 changelog
- 66b3793 Changelog for 0.2.0
- eaa54e6 Test the CLI, starting with the one function guarding the network
- dcbbc0b Cover the branches worth covering, and restore guidance lost in a merge
- 2520d5e Measure coverage across all three suites, and badge it
- f8f60c4 Close the last gaps a coverage audit found
- f686110 Default the server to the core toolset
- 3dd3593 Add toolsets, and an abs-mcp tools command to see them
- 2cdac4d Correct the read-only tool count: library_match_all was a write
- d967e35 Remove library_match_all
- 797efb0 Fold item_chapters and item_files into item_get as opt-in detail
- 5641fc9 Fold podcast_recent into podcast_episodes, and say why library_recent stays
- 9602a19 Tell a non-admin key why the totals are missing
- 8000e0d Fold library_stats into library_get and server_stats into server_info
- 43cb270 Stop library_items and library_search reading as the same tool
- a1a1797 Let the tap formula be republished for an existing tag
- d706f0e Mark the homebrew script executable
- 69fe70e Say what this does that the other servers do not
- 2fd1a8c Say what this is in the first line of the README
v0.1.0
Changelog
- f2ffe18 Let CodeQL see the tag-gated test suites
- 6360afb Check the README against the code, and fix config precedence
- c196143 Check every claim in the 0.1.0 notes against the code
- 148ac00 Fold me_* into user_*, and enforce tool coverage
- 42fb1da Name tools verb-last, and merge the add/remove pairs
- f3ecd87 Never stamp a blank version
- d535197 Remove header from CHANGELOG.md
- eda0bb8 Release 0.1.0
- 424f37c Assert a result for 197 of the 202 client methods
- 3d60557 Cover the whole Audiobookshelf API in lib/abs
- 338a7d8 Cover every in-scope Audiobookshelf endpoint, and add make apicheck
- 7da2718 Remove root-owned container files on teardown
- 3130cae Pass -nostdin to ffmpeg when generating fixtures
- 9ce9da7 Install ffmpeg in CI and fix the silent prerequisite check
- 0977ad8 Fix CI: executable bit, misspell locale, and lint
- 50d1a72 Add audits, narrator and batch tools, and live test suites
- 3b3dceb Initial commit: abs-mcp MCP server and CLI for Audiobookshelf