Skip to main content
Glama
ni-c

audiobookshelf-mcp

by ni-c

Set media progress

set_media_progress

Set or update listening progress for any book or podcast episode, jump to a specific position, mark as finished or reopen, or hide from Continue Listening.

Instructions

Creates or updates the listening progress of the API key’s user for one book or podcast episode. Set is_finished=true to mark it as finished, is_finished=false to reopen it (which resets the position to 0), or current_time to jump to a position in seconds. Audiobookshelf also marks an item finished on its own once less than ten seconds remain.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
progressNoProgress as a fraction between 0 and 1. Only used when is_finished is not given.
episode_idNoPodcast episode id — required to address a podcast episode, omitted for books
is_finishedNoMark the item as finished (true) or unfinished (false)
current_timeNoNew playback position in seconds
library_item_idYesLibrary item id, as returned by list_library_items or search_library
hide_from_continue_listeningNoHide the item from the "Continue Listening" shelf without changing its position

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observedv0.1.1

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses multiple behavioral details: is_finished=true marks finished, false reopens and resets position to 0, current_time jumps to a position, and Audiobookshelf auto-marks finished when under ten seconds remain. This goes beyond a simple 'update progress' statement, though it omits permission requirements or response behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loaded with the core purpose, and every sentence adds value. It explains the main parameter interactions without redundant fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with six parameters and no annotations, the description covers the key behaviors and parameter interactions well. However, it leaves some ambiguity about combining parameters (e.g., is_finished with current_time), and no output schema or response description is provided. Despite these minor gaps, the schema compensates for most parameter details, making the description adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds meaning beyond the schema by explaining the reset behavior of is_finished=false and the ten-second auto-finish rule. It does not mention the 'progress' fraction parameter explicitly, but the schema already covers its meaning and usage conditions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (creates or updates), the resource (listening progress), and the scope (API key's user, one book or podcast episode). It distinguishes itself from sibling tools like get_media_progress (read) and delete_media_progress (delete) by framing this as the write operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly indicates this is for setting or updating progress, which implicitly contrasts with read/delete siblings. However, it does not explicitly name alternatives or state when not to use this tool. It provides clear context but no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ni-c/audiobookshelf-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server