LibraryMCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_booksA | Search the library catalog by title or author (case-insensitive, partial matches allowed). Use this tool whenever the user wants to find books, browse what's available on a topic, or look up a specific author/title but doesn't already know the ISBN. Return a list of matching book records (title, author, isbn, available_copies), or a plain string message if nothing matches. |
| check_availabilityA | Check how many copies of a specific book are available to borrow. Use this tool when the user (or another tool call) already has an ISBN and wants to know stock levels before attempting to borrow, or just want a quick status check on a book. |
| borrow_bookA | Borrow a copy of a book on behalf on a library member. Use this tool when the user wants to check out / borrow a specific book and you already know the ISBN and the member's ID. This reduces the book's availability count by one and records the borrow in the member's history. If there are no copies left or the ISBN/member_id is invalid, and error is returned as a string rather than raised an exception - check the return value before telling the user the borrow succeeded. |
| return_bookA | Return a previously borrowed book on behalf of a library member. Use this tool when the user wants to return / check in a book they have borrowed. This increases the book's available copy count by one and records the return in the member's history. Errors (unknown ISBN or empty member_id) are returned as strings, never raised. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| recommend_books | Generate a prompt template asking for book recommendations by genre and mood. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| library_hours | Static resource returning the library's operating hours. |
TDQS
Scored across 4 tools
Each tool targets a distinct operation: search, availability check, borrow, and return. The descriptions clearly delineate when each should be used (search when ISBN unknown, check_availability when ISBN known, borrow/return with ISBN + member). No two tools have overlapping purposes.
Three tools follow a consistent verb_noun pattern (search_books, check_availability, borrow_book, return_book). The pair borrow_book/return_book is perfectly symmetric. Only check_availability deviates slightly by using a gerund-ish structure instead of an imperative verb, though it remains readable and predictable.
Four tools is within a reasonable range for a library catalog server, but it's on the thinner side. The core borrow/return/search/check lifecycle is covered, yet one might expect more tools for a fuller library domain (e.g., catalog a new book, list member history, list popular books). Still, the stated purpose is narrow enough that 4 is defensible.
The core borrowing lifecycle is covered: search to find a book, check availability, borrow, and return. However, there are notable gaps such as no way to list a member's borrowing history, no add_book/register member operations, and no reservation/hold feature. A member could not get a full picture of their loans without an additional tool, creating potential dead ends.