Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LIBBY_LIBRARIESNoOptional default libraries as a comma-separated list of library keys, e.g. "spl,burnaby". Used when no libraries argument is given on a call; a libraries argument on a call still overrides them.
LIBBY_READ_ONLYNoSet to true to hide the write tools (place_hold, cancel_hold, borrow, renew_loan, return_loan).

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
find_librariesA

Find libraries that use Libby by name, city or postal code, and return their keys.

Several libraries can match (branches, consortia, special collections); confirm the right one with the user before using its key.

search_titlesA

Search one library or several at once, with availability at each.

Editions of the same book (title, first author and format) are merged into one result, ranked by its best position in any library.

get_availabilityA

Current copies, holds and estimated wait for specific editions at each library.

    A library missing from a title's list doesn't own that edition; use search_titles to
    find other editions of the same book.
    
get_titleA

Full details for one title: description, series, narrators, publisher, ISBNs.

list_subjectsB

Subjects (genres) in a library's collection, largest first. Use the ids with search_titles.

connect_accountA

Link the user's Libby account with a one-time setup code. Returns the linked library cards.

get_accountB

The user's library cards, current loans (with due dates) and holds (with queue position).

get_historyA

Everything the user has borrowed in Libby, most recently borrowed first. Raw data; format it as asked.

    Per title: borrow count and dates (a minimum), status (on_loan / on_hold / returned), subjects and
    BISAC categories, the user's other Libby tags (e.g. 'Finished'), ISBNs and, with `progress`:

    - marker_percent: where the reading position is, not how much was read; it moves when skipping.
    - listened_percent (audiobooks): how much was actually heard (minutes_spent / length_minutes).
    - marker_gap_percent (audiobooks): marker minus heard. Up to ~5: at most an intro or preface
      skipped; above ~10: skipped ahead; negative: parts re-listened. Prefer it over pace early on.
    - pace (audiobooks): length covered by the marker / time spent. ~1: listened straight through
      (assuming 1x playback); above ~2: skipped ahead.
    - minutes_spent and sessions: effort; one session with many minutes was a single long sitting.
    - Ebooks have no length, so only marker_percent and minutes_spent apply.
    A marker at 90%+ with a small gap usually means finished; under ~10% with few minutes means
    sampled or abandoned. 'Finished' in tags is the user's own explicit mark.
    
place_holdA

Place a hold on a title. Confirm with the user first.

cancel_holdA

Cancel a hold; the user loses their place in the queue. Confirm with the user first.

borrowA

Borrow an available title, or a hold that is ready. Confirm with the user first.

renew_loanA

Renew a loan (possible from its renewable_on date). Confirm with the user first.

return_loanA

Return a loan early. Confirm with the user first.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.8/5.0

Scored across 13 tools

Disambiguation4/5

Each tool maps to a distinct step in the Libby workflow (find library, search, inspect availability, act on loans/holds), and the descriptions explicitly distinguish look-alikes such as search_titles vs. get_title vs. get_availability. The only mild overlap is that search_titles already reports availability at each library while get_availability drills into specific editions, but the guidance makes the intended split clear.

Naming Consistency5/5

All 13 tools use a clean snake_case verb_noun pattern (find_libraries, search_titles, get_availability, place_hold, cancel_hold, renew_loan, return_loan). Bare `borrow` is the one noun-less entry but still fits the verb-first convention.

Tool Count5/5

13 tools is squarely in the well-scoped range, and each one covers a necessary operation: discovery, account linking, reads (account, history, title details, subjects), and write actions on holds and loans. Nothing appears redundant or filler.

Completeness4/5

The full lifecycle is present: find library, connect account, search/inspect, borrow, renew, return, place/cancel hold, and review history. Minor gaps remain — no tool for applying or editing the user's Libby tags mentioned in get_history, and no account unlink/refresh — but these are workaround-able.

Maintenance

ActivityMaintained
ResponsivenessNo issues