Skip to main content
Glama
jay1234624

Open Library MCP Server

by jay1234624

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 install

Build

npm run build

Run

npm start

The server uses stdio transport. Point your MCP client at dist/index.js.

Available MCP Tools

Tool

Parameters

Description

search_books

query

Search books by title, author, or keyword

search_authors

query, optional limit (default 10, max 25)

Search authors by name

read_book_snippet

query, optional limit (default 3, max 10)

Search inside books for text snippets

Books & works

Tool

Parameters

Description

get_work_details

workId

Full work record by Open Library work ID

get_book_details_by_isbn

isbn

Book details by ISBN-10 or ISBN-13

get_editions

workId

List editions for a work

get_book_ratings

workId

Aggregate reader ratings for a work

get_book_summary

workId

Concise metadata summary (title, description, subjects, etc.)

compare_books

workId1, workId2

Side-by-side comparison of two works

Authors

Tool

Parameters

Description

get_author_profile

authorId

Author biography and profile by ID

get_author_works

authorId, optional limit (default 20, max 100), optional offset

Author bibliography

Subjects

Tool

Parameters

Description

get_subject_insights

subject, optional limit (default 20, max 100), optional offset

Books and trends for a subject/topic

Available Tools

12 tools
compare_booksB

Compare two books side by side using their Open Library work IDs

ParametersJSON Schema
NameRequiredDescriptionDefault
workId1YesFirst work ID, e.g. 'OL27448W' or '/works/OL27448W'
workId2YesSecond work ID, e.g. 'OL52267W' or '/works/OL52267W'

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
authorIdYesAuthor ID, e.g. 'OL26320A' or '/authors/OL26320A'

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of results to return (default 20, max 100)
offsetNoStarting offset for pagination (default 0)
authorIdYesAuthor ID, e.g. 'OL26320A' or '/authors/OL26320A'

TDQS

A3.8/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
isbnYesISBN-10 or ISBN-13, e.g. '9780547928227'

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
workIdYesWork ID, e.g. 'OL27448W' or '/works/OL27448W'

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
workIdYesWork ID, e.g. 'OL27448W' or '/works/OL27448W'

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
workIdYesWork ID, e.g. 'OL27448W' or '/works/OL27448W'

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of results to return (default 20, max 100)
offsetNoStarting offset for pagination (default 0)
subjectYesSubject name, e.g. 'science fiction' or 'science_fiction'

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
workIdYesWork ID, e.g. 'OL27448W' or '/works/OL27448W'

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of snippets to return (default 3, max 10)
queryYesText to search for inside books, e.g. 'ring of power'

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of results to return (default 10, max 25)
queryYesAuthor name to search, e.g. 'Tolkien'

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query, e.g. 'Pride and Prejudice'

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 12 tool updatesv1.0.0
    • First observedcompare_books
    • First observedget_author_profile
    • First observedget_author_works
    • First observedget_book_details_by_isbn
    • First observedget_book_ratings
    • First observedget_book_summary
    • First observedget_editions
    • First observedget_subject_insights
    • First observedget_work_details
    • First observedread_book_snippet
    • First observedsearch_authors
    • First observedsearch_books

TDQS

A3.6/5.0
Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness5/5

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

ActivityStale
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Connects AI assistants to the Hardcover book library, enabling natural language book searches, reading status updates, list management, and library exploration.
    31
    5
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables searching for books using the OpenLibrary API; provides a search_books tool for AI assistants to find books by title, author, or keywords.
    2
    Apache 2.0
  • F
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to interact with BookLore self-hosted libraries, allowing natural language queries to search books, manage reading status, ratings, series, authors, and highlights.
    7
    1
    -
  • A
    license
    A
    quality
    C
    maintenance
    Connects AI agents to the OpenAlex scholarly database, enabling search and retrieval of works, authors, institutions, and sources via natural language.
    9
    MIT

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/jay1234624/open-library-mcp'

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