A Model Context Protocol (MCP) server for the Open Library API that enables AI assistants to search for book and author information.
Documentation
MCP Open Library
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
```\n\n### Manual Installation
```bash\n\n# Clone the repository
git clone https://github.com/your-username/mcp-open-library.git
cd mcp-open-library\n\n# Install dependencies
npm install\n\n# Build the project
npm run build
```\n\n## Usage# Running the Server
You can use the MCP Inspector to test the server:
```bash
npm run inspector
Access the MCP Inspector and then test the tool.\n\n### 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 title
get_authors_by_name: Search for author information by name
get_author_info: Get detailed information for a specific author using their Open Library Author Key
get_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)
Development# Project Structure
src/index.ts - Main server implementation
src/types.ts - TypeScript type definitions
src/index.test.ts - Test suite\n\n### Available Scripts
npm run build - Build the TypeScript code
npm run watch - Watch for changes and rebuild
npm test - Run the test suite
npm run format - Format code with Prettier
npm run inspector - Run the MCP Inspector against the server\n\n### Running Tests
npm test
```\n\n## Contributing
Contributions are welcome! Please feel free to submit a pull request.\n\n## Acknowledgments
- [Open Library API](https://openlibrary.org/developers/api)
- [Model Context Protocol](https://github.com/modelcontextprotocol/mcp)