by 8enSmith
Provides tools for AI assistants to search the Open Library API for books and authors, retrieve cover images, and fetch detailed metadata.
MCP Open Library enables AI assistants to query the Open Library database for book titles, author names, detailed author profiles, and cover images. It exposes a set of MCP‑compatible tools that return structured JSON or URLs, making literary data readily consumable by downstream AI workflows.
npx -y @smithery/cli install @8enSmith/mcp-open-library --client claude
git clone https://github.com/8enSmith/mcp-open-library.git
cd mcp-open-library
npm install
npm run build
npm run inspector # starts the MCP inspector for testing
docker build -t mcp-open-library .
docker run -p 8080:8080 mcp-open-library
get_book_by_title, get_authors_by_name, get_author_info, get_author_photo, get_book_cover, and get_book_by_id. Example payloads are provided in the README.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 API key to use the server? 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 only).
Q: How do I test the server after starting it?
A: Run npm run inspector and use the web UI to invoke any tool with sample payloads.
Q: Can I run the server on a different port?
A: Yes, set the PORT environment variable before starting the server.
Q: Is the project compatible with other MCP clients besides Claude Desktop? A: Absolutely – any client that implements the Model Context Protocol can consume these tools.
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": {}
}
}
}Discover more MCP servers with similar functionality and use cases
by danny-avila
Provides a customizable ChatGPT‑like web UI that integrates dozens of AI models, agents, code execution, image generation, web search, speech capabilities, and secure multi‑user authentication, all open‑source and ready for self‑hosting.
by ahujasid
BlenderMCP integrates Blender with Claude AI via the Model Context Protocol (MCP), enabling AI-driven 3D scene creation, modeling, and manipulation. This project allows users to control Blender directly through natural language prompts, streamlining the 3D design workflow.
by pydantic
Enables building production‑grade generative AI applications using Pydantic validation, offering a FastAPI‑like developer experience.
by GLips
Figma-Context-MCP is a Model Context Protocol (MCP) server that provides Figma layout information to AI coding agents. It bridges design and development by enabling AI tools to directly access and interpret Figma design data for more accurate and efficient code generation.
by mcp-use
Easily create and interact with MCP servers using custom agents, supporting any LLM with tool calling and offering multi‑server, sandboxed, and streaming capabilities.
by sonnylazuardi
This project implements a Model Context Protocol (MCP) integration between Cursor AI and Figma, allowing Cursor to communicate with Figma for reading designs and modifying them programmatically.
by lharries
WhatsApp MCP Server is a Model Context Protocol (MCP) server for WhatsApp that allows users to search, read, and send WhatsApp messages (including media) through AI models like Claude. It connects directly to your personal WhatsApp account via the WhatsApp web multi-device API and stores messages locally in a SQLite database.
by idosal
GitMCP is a free, open-source remote Model Context Protocol (MCP) server that transforms any GitHub project into a documentation hub, enabling AI tools to access up-to-date documentation and code directly from the source to eliminate "code hallucinations."
by Klavis-AI
Klavis AI provides open-source Multi-platform Control Protocol (MCP) integrations and a hosted API for AI applications. It simplifies connecting AI to various third-party services by managing secure MCP servers and authentication.