mcp-open-library
Model Context Protocol server for accessing Open Library book and author data.
Key Features
Use Cases
README
MCP Open Library
A Model Context Protocol (MCP) server for the Open Library API that enables AI assistants to search for book and author information.
Overview
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.
Features
- Book Search by Title: Search for books using their title (
get_book_by_title). - Author Search by Name: Search for authors using their name (
get_authors_by_name). - Get Author Details: Retrieve detailed information for a specific author using their Open Library key (
get_author_info). - Get Author Photo: Get the URL for an author's photo using their Open Library ID (OLID) (
get_author_photo). - Get Book Cover: Get the URL for a book's cover image using various identifiers (ISBN, OCLC, LCCN, OLID, ID) (
get_book_cover). - Get Book by ID: Retrieve detailed book information using various identifiers (ISBN, LCCN, OCLC, OLID) (
get_book_by_id).
Installation
Installing via Smithery
To install MCP Open Library for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @8enSmith/mcp-open-library --client claude
Manual Installation
# 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
Usage
Running the Server
You can use the MCP Inspector to test the server:
npm run inspector
Access the MCP Inspector and then test the tool e.g.
Using with an MCP Client
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, orID)value: The value of the identifiersize: Optional cover size (Sfor small,Mfor medium,Lfor large, defaults toL)
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 identifier
An example of this tool being used in Claude Desktop can be see here:
Docker
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
Development
Project Structure
src/index.ts- Main server implementationsrc/types.ts- TypeScript type definitionssrc/index.test.ts- Test suite
Available Scripts
npm 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 server
Running Tests
npm test
Contributing
Contributions are welcome! Please feel free to submit a pull request.
Acknowledgments
Star History
Repository Owner
User
Repository Details
Programming Languages
Tags
Topics
Join Our Newsletter
Stay updated with the latest AI tools, news, and offers by subscribing to our weekly newsletter.
Related MCPs
Discover similar Model Context Protocol servers
Apple Books MCP
Model Context Protocol server for integrating and managing Apple Books data with AI assistants.
Apple Books MCP is a server implementation of the Model Context Protocol (MCP) that enables AI assistants to access, organize, and interact with Apple Books data such as collections, books, highlights, notes, and annotations. It provides standardized tools for retrieving and searching book-related data, supporting integration with platforms like Claude Desktop. Designed for easy setup with Python or uv, it facilitates context-aware AI capabilities for reading and annotation workflows.
- ⭐ 33
- MCP
- vgnshiyer/apple-books-mcp
Ebook-MCP
A Model Context Protocol server for conversational e-book interaction and AI integration.
Ebook-MCP acts as a Model Context Protocol (MCP) server enabling seamless interaction between large language model (LLM) applications and electronic books such as EPUB and PDF. It standardizes APIs for AI-powered reading, searching, and managing digital libraries. Through natural language interfaces, it provides smart library management, content navigation, and interactive learning within digital books. Ebook-MCP integrates with modern AI-powered IDEs and supports multi-format digital book processing.
- ⭐ 132
- MCP
- onebirdrocks/ebook-mcp
MCP-Typescribe
An MCP server for serving TypeScript API context to language models.
MCP-Typescribe is an open-source implementation of the Model Context Protocol (MCP) focused on providing LLMs with contextual, real-time access to TypeScript API documentation. It parses TypeScript (and other) definitions using TypeDoc-generated JSON and serves this information via a queryable server that supports tools used by AI coding assistants. The solution enables AI agents to dynamically explore, search, and understand unknown APIs, accelerating onboarding and supporting agentic behaviors in code generation.
- ⭐ 45
- MCP
- yWorks/mcp-typescribe
Open Data Model Context Protocol
Easily connect open data providers to LLMs using a Model Context Protocol server and CLI.
Open Data Model Context Protocol enables seamless integration of open public datasets into Large Language Model (LLM) applications, starting with support for Claude. Through a CLI tool and server, users can access and query public data providers within their LLM clients. It also offers tools and templates for contributors to publish and distribute new open datasets, making data discoverable and actionable for LLM queries.
- ⭐ 140
- MCP
- OpenDataMCP/OpenDataMCP
OpenMCP
A standard and registry for converting web APIs into MCP servers.
OpenMCP defines a standard for converting various web APIs into servers compatible with the Model Context Protocol (MCP), enabling efficient, token-aware communication with client LLMs. It also provides an open-source registry of compliant servers, allowing clients to access a wide array of external services. The platform supports integration with local and remote hosting environments and offers tools for configuring supported clients, such as Claude desktop and Cursor. Comprehensive guidance is offered for adapting different API formats including REST, gRPC, GraphQL, and more into MCP endpoints.
- ⭐ 252
- MCP
- wegotdocs/open-mcp
1mcp-app/agent
A unified server that aggregates and manages multiple Model Context Protocol servers.
1MCP Agent provides a single, unified interface that aggregates multiple Model Context Protocol (MCP) servers, enabling seamless integration and management of external tools for AI assistants. It acts as a proxy, managing server configuration, authentication, health monitoring, and dynamic server control with features like asynchronous loading, tag-based filtering, and advanced security options. Compatible with popular AI development environments, it simplifies setup by reducing redundant server instances and resource usage. Users can configure, monitor, and scale model tool integrations across various AI clients through easy CLI commands or Docker deployment.
- ⭐ 96
- MCP
- 1mcp-app/agent
Didn't find tool you were looking for?