libby-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LIBBY_LIBRARIES | No | Optional 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_ONLY | No | Set 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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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. |
| 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. |
| 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 13 tools
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.
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.
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.
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.