by 8enSmith
Provides tools for AI assistants to retrieve book and author information from the Open Library API, returning structured data such as titles, authors, cover images, and detailed metadata.
MCP Open Library offers a set of MCP tools that allow AI assistants to query the Open Library API for book and author data. Users can search books by title, look up authors by name, fetch detailed author records, and obtain cover or photo URLs via various identifiers.
npx -y @smithery/cli install @8enSmith/mcp-open-library --client claude
Or manually:
git clone https://github.com/8enSmith/mcp-open-library.git
cd mcp-open-library
npm install
npm run build
npm run inspector
get_book_by_title
, get_authors_by_name
, get_author_info
, get_author_photo
, get_book_cover
, and get_book_by_id
with the required JSON payload.get_book_by_title
)get_authors_by_name
)get_author_info
)get_author_photo
)get_book_cover
)get_book_by_id
)Q: Do I need an Open Library API key? A: No. The Open Library API is public and does not require authentication.
Q: Which identifiers are supported for get_book_cover
and get_book_by_id
?
A: ISBN, OCLC, LCCN, OLID, and generic ID for covers; ISBN, LCCN, OCLC, OLID for book details.
Q: Can I run the server locally without Docker?
A: Yes. After building, run npm run inspector
or start the server directly with node dist/index.js
(default port 8080).
Q: How do I test the server after deployment?
A: Use the provided MCP Inspector (npm run inspector <server‑url>
) or call the endpoints from any MCP client.
Q: Is the project open source? A: Yes, the source code is hosted on GitHub under the MIT license.
A Model Context Protocol (MCP) server for the Open Library API that enables AI assistants to search for book and author information.
This project implements an MCP server that provides tools for AI assistants to interact with the Open Library. It allows searching for book information by title, searching for authors by name, retrieving detailed author information using their Open Library key, and getting URLs for author photos using their Open Library ID (OLID). The server returns structured data for book and author information.
get_book_by_title
).get_authors_by_name
).get_author_info
).get_author_photo
).get_book_cover
).get_book_by_id
).To install MCP Open Library for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @8enSmith/mcp-open-library --client claude
# Clone the repository
git clone https://github.com/your-username/mcp-open-library.git
cd mcp-open-library
# Install dependencies
npm install
# Build the project
npm run build
You can use the MCP Inspector to test the server:
npm run inspector
Access the MCP Inspector and then test the tool e.g.
This server implements the Model Context Protocol, which means it can be used by any MCP-compatible AI assistant or client e.g. Claude Desktop. The server exposes the following tools:
get_book_by_title
: Search for book information by titleget_authors_by_name
: Search for author information by nameget_author_info
: Get detailed information for a specific author using their Open Library Author Keyget_author_photo
: Get the URL for an author's photo using their Open Library Author ID (OLID)get_book_cover
: Get the URL for a book's cover image using a specific identifier (ISBN, OCLC, LCCN, OLID, or ID)get_book_by_id
: Get detailed book information using a specific identifier (ISBN, LCCN, OCLC, or OLID)Example get_book_by_title
input:
{
"title": "The Hobbit"
}
Example get_book_by_title
output:
[
{
"title": "The Hobbit",
"authors": [
"J. R. R. Tolkien"
],
"first_publish_year": 1937,
"open_library_work_key": "/works/OL45883W",
"edition_count": 120,
"cover_url": "https://covers.openlibrary.org/b/id/10581294-M.jpg"
}
]
Example get_authors_by_name
input:
{
"name": "J.R.R. Tolkien"
}
Example get_authors_by_name
output:
[
{
"key": "OL26320A",
"name": "J. R. R. Tolkien",
"alternate_names": [
"John Ronald Reuel Tolkien"
],
"birth_date": "3 January 1892",
"top_work": "The Hobbit",
"work_count": 648
}
]
Example get_author_info
input:
{
"author_key": "OL26320A"
}
Example get_author_info
output:
{
"name": "J. R. R. Tolkien",
"personal_name": "John Ronald Reuel Tolkien",
"birth_date": "3 January 1892",
"death_date": "2 September 1973",
"bio": "John Ronald Reuel Tolkien (1892-1973) was a major scholar of the English language, specializing in Old and Middle English. He served as the Rawlinson and Bosworth Professor of Anglo-Saxon and later the Merton Professor of English Language and Literature at Oxford University.",
"alternate_names": ["John Ronald Reuel Tolkien"],
"photos": [6791763],
"key": "/authors/OL26320A",
"remote_ids": {
"viaf": "95218067",
"wikidata": "Q892"
},
"revision": 43,
"last_modified": {
"type": "/type/datetime",
"value": "2023-02-12T05:50:22.881"
}
}
Example get_author_photo
input:
{
"olid": "OL26320A"
}
Example get_author_photo
output:
https://covers.openlibrary.org/a/olid/OL26320A-L.jpg
Example get_book_cover
input:
{
"key": "ISBN",
"value": "9780547928227",
"size": "L"
}
Example get_book_cover
output:
https://covers.openlibrary.org/b/isbn/9780547928227-L.jpg
The get_book_cover
tool accepts the following parameters:
key
: The type of identifier (one of: ISBN
, OCLC
, LCCN
, OLID
, or ID
)value
: The value of the identifiersize
: Optional cover size (S
for small, M
for medium, L
for large, defaults to L
)Example get_book_by_id
input:
{
"idType": "isbn",
"idValue": "9780547928227"
}
Example get_book_by_id
output:
{
"title": "The Hobbit",
"authors": [
"J. R. R. Tolkien"
],
"publishers": [
"Houghton Mifflin Harcourt"
],
"publish_date": "October 21, 2012",
"number_of_pages": 300,
"isbn_13": [
"9780547928227"
],
"isbn_10": [
"054792822X"
],
"oclc": [
"794607877"
],
"olid": [
"OL25380781M"
],
"open_library_edition_key": "/books/OL25380781M",
"open_library_work_key": "/works/OL45883W",
"cover_url": "https://covers.openlibrary.org/b/id/8231496-M.jpg",
"info_url": "https://openlibrary.org/books/OL25380781M/The_Hobbit",
"preview_url": "https://archive.org/details/hobbit00tolkien"
}
The get_book_by_id
tool accepts the following parameters:
idType
: The type of identifier (one of: isbn
, lccn
, oclc
, olid
)idValue
: The value of the identifierAn example of this tool being used in Claude Desktop can be see here:
You can test this MCP server using Docker. To do this first run:
docker build -t mcp-open-library .
docker run -p 8080:8080 mcp-open-library
You can then test the server running within Docker via the inspector e.g.
npm run inspector http://localhost:8080
src/index.ts
- Main server implementationsrc/types.ts
- TypeScript type definitionssrc/index.test.ts
- Test suitenpm run build
- Build the TypeScript codenpm run watch
- Watch for changes and rebuildnpm test
- Run the test suitenpm run format
- Format code with Prettiernpm run inspector
- Run the MCP Inspector against the servernpm test
Contributions are welcome! Please feel free to submit a pull request.
Please log in to share your review and rating for this MCP.
{ "mcpServers": { "mcp-open-library": { "command": "npx", "args": [ "-y", "@8enSmith/mcp-open-library" ], "env": {} } } }
Explore related MCPs that share similar capabilities and solve comparable challenges
by exa-labs
Provides real-time web search capabilities to AI assistants via a Model Context Protocol server, enabling safe and controlled access to the Exa AI Search API.
by elastic
Enables natural‑language interaction with Elasticsearch indices via the Model Context Protocol, exposing tools for listing indices, fetching mappings, performing searches, running ES|QL queries, and retrieving shard information.
by graphlit
Enables integration between MCP clients and the Graphlit platform, providing ingestion, extraction, retrieval, and RAG capabilities across a wide range of data sources and connectors.
by mamertofabian
Fast cross‑platform file searching leveraging the Everything SDK on Windows, Spotlight on macOS, and locate/plocate on Linux.
by cr7258
Provides Elasticsearch and OpenSearch interaction via Model Context Protocol, enabling document search, index management, cluster monitoring, and alias operations.
by liuyoshio
Provides natural‑language search and recommendation for Model Context Protocol servers, delivering rich metadata and real‑time updates.
by ihor-sokoliuk
Provides web search capabilities via the SearXNG API, exposing them through an MCP server for seamless integration with AI agents and tools.
by fatwang2
Provides web and news search, URL crawling, sitemap extraction, deep‑reasoning, and trending topic retrieval via Search1API, exposed as an MCP server for integration with AI clients.
by cnych
Provides SEO data retrieval via Ahrefs, exposing MCP tools for backlink analysis, keyword generation, traffic estimation, and keyword difficulty, with automated CAPTCHA solving and response caching.