Open Library MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Open Library MCP Serversearch for books about artificial intelligence"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Open Library MCP Server
Overview
This project is a Model Context Protocol (MCP) server built with TypeScript. It connects AI assistants to the Open Library API for searching books and authors, retrieving metadata, comparing works, and finding text snippets inside books.
Related MCP server: OpenLibrary MCP
Technologies Used
TypeScript
Node.js
Model Context Protocol (MCP)
Open Library API
Installation
npm installBuild
npm run buildRun
npm startThe server uses stdio transport. Point your MCP client at dist/index.js.
Available MCP Tools
Search
Tool | Parameters | Description |
|
| Search books by title, author, or keyword |
|
| Search authors by name |
|
| Search inside books for text snippets |
Books & works
Tool | Parameters | Description |
|
| Full work record by Open Library work ID |
|
| Book details by ISBN-10 or ISBN-13 |
|
| List editions for a work |
|
| Aggregate reader ratings for a work |
|
| Concise metadata summary (title, description, subjects, etc.) |
|
| Side-by-side comparison of two works |
Authors
Tool | Parameters | Description |
|
| Author biography and profile by ID |
|
| Author bibliography |
Subjects
Tool | Parameters | Description |
|
| Books and trends for a subject/topic |
Available Tools
12 toolscompare_booksB
Compare two books side by side using their Open Library work IDs
| Name | Required | Description | Default |
|---|---|---|---|
| workId1 | Yes | First work ID, e.g. 'OL27448W' or '/works/OL27448W' | |
| workId2 | Yes | Second work ID, e.g. 'OL52267W' or '/works/OL52267W' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only says 'compare two books side by side' but does not describe what the output looks like, whether it is read-only, or any side effects. Agents lack information about the return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the action and resource. While efficient, it could benefit from a bit more structure for complex comparisons.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple input schema (2 string params) and no output schema, the description is adequate but could be more complete by hinting at what aspects are compared or how results are presented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and parameter descriptions already include examples. The tool description adds minimal additional meaning beyond contextualizing the parameters as 'work IDs'. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (compare), the resource (two books), and the method (using Open Library work IDs). It distinguishes from sibling tools like search_books or get_work_details by focusing on side-by-side comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when comparing two books, but it does not specify when to avoid this tool or mention alternatives such as using individual get_work_details calls. No explicit guidance on prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_author_profileB
Get an author profile by Open Library author ID
| Name | Required | Description | Default |
|---|---|---|---|
| authorId | Yes | Author ID, e.g. 'OL26320A' or '/authors/OL26320A' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as side effects, authentication requirements, rate limits, or response structure. The description only repeats the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is front-loaded with the action and resource. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-ID tool, the description is sufficient for an agent to understand its purpose. However, lack of output schema or usage guidance slightly reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a well-described 'authorId' parameter including examples. The description adds no new meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description concisely states the action ('Get'), resource ('author profile'), and method ('by Open Library author ID'), clearly distinguishing it from siblings like 'get_author_works' or 'search_authors'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., when to use search_authors instead). The description only states the basic function, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_author_worksA
Get the bibliography (list of works) for an author by Open Library author ID
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results to return (default 20, max 100) | |
| offset | No | Starting offset for pagination (default 0) | |
| authorId | Yes | Author ID, e.g. 'OL26320A' or '/authors/OL26320A' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description accurately states a read operation. However, it does not mention pagination or that results are limited, though schema parameters cover those.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 14 words, front-loaded with verb and resource. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema; description lacks details about return format (e.g., works structure, keys, pagination info). For a 3-parameter tool, more context on result handling is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds no extra meaning beyond what schema already provides for authorId, limit, offset.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Get' and specific resource 'bibliography (list of works)' with explicit input 'by Open Library author ID'. Distinguishes from sibling tools like get_author_profile, get_work_details, and search_authors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for retrieving an author's works, but no explicit when-to-use, exclusions, or comparisons with sibling tools like get_work_details or search_books.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_book_details_by_isbnC
Retrieve detailed information for a book using its ISBN
| Name | Required | Description | Default |
|---|---|---|---|
| isbn | Yes | ISBN-10 or ISBN-13, e.g. '9780547928227' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits like read-only nature, authorization requirements, or error handling (e.g., invalid ISBN). The description carries the full burden but is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no unnecessary words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description should provide more context about what 'detailed information' includes. It is too vague for a single-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the only parameter, so the description adds minimal value beyond stating 'using its ISBN'. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Retrieve' and the resource 'detailed information for a book using its ISBN'. It distinguishes from sibling tools like get_book_ratings and get_book_summary by being general, but does not explicitly contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as search_books or get_work_details. It does not mention prerequisites or context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_book_ratingsB
Get aggregate reader ratings for a book work (average score and star counts)
| Name | Required | Description | Default |
|---|---|---|---|
| workId | Yes | Work ID, e.g. 'OL27448W' or '/works/OL27448W' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral traits. It only states what the tool returns (aggregate ratings), but does not disclose any side effects, caching behavior, or limitations. The read-only nature is implied but not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence with no wasted words. It is front-loaded with the core purpose and immediately informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, clear return type described), the description is nearly complete. It specifies 'average score and star counts', leaving little ambiguity, though no output schema exists. It could mention the format of the output but is sufficient for most use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter 'workId', with a clear description. The tool description adds no extra meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: retrieving aggregate reader ratings (average score and star counts) for a book work. This verb+resource combination is specific and distinguishes it from siblings like 'get_work_details' or 'get_book_summary', which serve different functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or context for selection among similar tools like 'get_work_details' or 'get_book_details_by_isbn'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_book_summaryA
Get a concise summary of a book's metadata from its Open Library work ID
| Name | Required | Description | Default |
|---|---|---|---|
| workId | Yes | Work ID, e.g. 'OL27448W' or '/works/OL27448W' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only says 'concise summary of a book's metadata', which is vague and does not explain what fields are included, response format, or potential errors. For a tool without annotations, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that clearly communicates the tool's purpose without any unnecessary words. It earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only one parameter, no output schema, and 11 siblings, the description is minimally adequate. It tells what the tool does but lacks details on return values or how it differs from similar tools like get_work_details. More context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage with a clear description and example for workId. The tool description does not add any additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'get' and the resource 'concise summary of a book's metadata' from an Open Library work ID. It is specific and distinct from siblings like get_work_details or get_book_details_by_isbn, which likely provide more comprehensive information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'from its Open Library work ID', providing clear context for when to use the tool. However, it does not mention when not to use it or suggest alternative tools for other input types (e.g., ISBN), which would improve guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_editionsB
Get editions of a book work by its Open Library work ID
| Name | Required | Description | Default |
|---|---|---|---|
| workId | Yes | Work ID, e.g. 'OL27448W' or '/works/OL27448W' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose the format of the output, any pagination, rate limits, or authentication requirements. The description only states the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no unnecessary words. However, it could be structured to front-load key information more effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description should clarify what is returned (e.g., a list of editions). It does not, leaving the agent uninformed about the response format. Completeness is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single parameter fully described. The description adds no additional meaning beyond the schema, repeating 'Open Library work ID' which is already in the schema description. Baseline is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the specific resource 'editions of a book work', and includes the identifying criterion 'by its Open Library work ID'. It distinguishes itself from sibling tools like get_work_details or search_books.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like get_work_details or search_books. There is no mention of prerequisites, limitations, or context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subject_insightsB
Get books and trends for a subject/topic on Open Library (e.g. science_fiction)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results to return (default 20, max 100) | |
| offset | No | Starting offset for pagination (default 0) | |
| subject | Yes | Subject name, e.g. 'science fiction' or 'science_fiction' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must disclose behavior. It mentions 'get' implying read-only, but does not confirm whether results are paginated, sorted, or if any side effects occur. The parameters limit/offset hint at pagination, but this is not stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded and contains no filler. Every word is essential, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is too brief given the absence of an output schema and annotations. It does not explain what 'trends' means, how pagination works, or the structure of returns. More detail is needed for an AI to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description adds only the subject example, providing minimal extra value beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves books and trends for a subject/topic on Open Library, with a specific example ('science_fiction'). This differentiates it from siblings like search_books which likely handle general queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives such as search_books or get_book_summary. The context of subject/topic is implied but not contrasted with other search functions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_work_detailsB
Get details for a book work by its Open Library work ID
| Name | Required | Description | Default |
|---|---|---|---|
| workId | Yes | Work ID, e.g. 'OL27448W' or '/works/OL27448W' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden but only implies a read operation. It does not disclose what details are returned, any limitations, or side effects, leaving significant ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single 14-word sentence that is clear and front-loaded, with no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter lookup tool with no output schema, the description is adequate but lacks details on return content or how it differs from similar tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the schema fully documents the parameter. The description adds an example value, which is helpful but not exceptional, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get details', the resource 'book work', and the identifier type 'Open Library work ID', making it distinct from siblings like get_book_details_by_isbn.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., get_book_details_by_isbn) or any prerequisites, leaving the agent to infer from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_book_snippetB
Search inside books and return text snippets when available
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of snippets to return (default 3, max 10) | |
| query | Yes | Text to search for inside books, e.g. 'ring of power' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry full burden. Only hints 'when available' about snippet availability. Does not disclose error handling, authentication needs, or behavior when no results are found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence that conveys the core purpose. Could be improved by structuring into two sentences, but no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, description is too minimal. Does not specify snippet format (e.g., page numbers, context), conditions for unavailability, or expected output structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. Description adds no extra meaning beyond schema; baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'search', resource 'books', and result 'text snippets'. It distinguishes from siblings like search_books (metadata search) and get_book_summary (summary).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage for searching inside books, but no explicit guidance on when to use vs. alternatives like search_books or get_book_details_by_isbn. No when-not-to-use or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_authorsC
Search for authors by name on Open Library
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results to return (default 10, max 25) | |
| query | Yes | Author name to search, e.g. 'Tolkien' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must bear the full weight of behavioral disclosure. It only states 'Search for authors by name,' lacking details on authentication, rate limits, search behavior (exact vs fuzzy), or result format. This is insufficient for an agent to anticipate side effects or constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that communicates the core purpose efficiently. However, it may be under-specified, indicating a trade-off between conciseness and completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should provide some hint of the return format or structure. It does not. For a search tool, this is a significant gap, especially compared to more feature-rich siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters (query and limit) with descriptions. The tool description adds no further semantic information beyond what the schema provides, earning the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Search'), resource ('authors'), and platform ('Open Library'). It distinguishes from siblings like search_books by specifying authors. However, it does not describe the nature of results (e.g., list of IDs/names), leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like get_author_profile or search_books. The agent is left to infer context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_booksA
Search Open Library for books by title, author, or keyword
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query, e.g. 'Pride and Prejudice' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It mentions the tool searches Open Library but lacks information on pagination, rate limits, authentication requirements, or result format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. It efficiently communicates the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool returns search results and lacks an output schema, the description should explain what is returned (e.g., book IDs, titles) and how to interpret results. It does not address pagination or result structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single parameter. The description adds value by specifying that the query can search by title, author, or keyword, which goes beyond the schema's generic 'Search query' description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (search), the resource (Open Library), and the search criteria (title, author, or keyword). It distinguishes itself from sibling tools like search_authors and compare_books.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for searching books but provides no explicit guidance on when to use this tool versus alternatives, such as compare_books or get_book_details_by_isbn.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
12 tool updates
v1.0.0- First observed
compare_books - First observed
get_author_profile - First observed
get_author_works - First observed
get_book_details_by_isbn - First observed
get_book_ratings - First observed
get_book_summary - First observed
get_editions - First observed
get_subject_insights - First observed
get_work_details - First observed
read_book_snippet - First observed
search_authors - First observed
search_books
TDQS
Each tool targets a distinct resource or operation: search, author, book, editions, ratings, comparisons, subject insights, and snippets. The inputs vary (ISBN, work ID, author ID) and descriptions clarify boundaries, so an agent should rarely confuse them.
Most tools follow a 'get_' prefix followed by the resource, but there are three exceptions: 'search_books', 'search_authors' (using 'search_'), 'compare_books' (using 'compare_'), and 'read_book_snippet' (using 'read_'). This minor inconsistency prevents a perfect score.
With 12 tools, the set covers searching, retrieval of detailed metadata, ratings, editions, comparisons, and reading snippets. This is well-scoped for a book database API without being excessive.
The tools provide comprehensive read-only access to Open Library: authors, works, editions, ratings, subjects, and text snippets. There are no obvious dead ends; all major query needs are addressed, especially given the server's read-only nature.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Search books and authors, fetch editions, browse subjects, and resolve cover images.
Connect AI clients to biomedical data and tools.
Search books and authors across Open Library, the Internet Archive open catalog.
Academic literature search, retrieval, and private library management on top of OpenAlex.
Related MCP Servers
- AlicenseAqualityAmaintenanceConnects AI assistants to the Hardcover book library, enabling natural language book searches, reading status updates, list management, and library exploration.315MIT
- AlicenseNot gradedqualityDmaintenanceEnables searching for books using the OpenLibrary API; provides a search_books tool for AI assistants to find books by title, author, or keywords.2Apache 2.0
- FlicenseAqualityCmaintenanceEnables AI assistants to interact with BookLore self-hosted libraries, allowing natural language queries to search books, manage reading status, ratings, series, authors, and highlights.71-
- AlicenseAqualityCmaintenanceConnects AI agents to the OpenAlex scholarly database, enabling search and retrieval of works, authors, institutions, and sources via natural language.9MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/jay1234624/open-library-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server