mcp-open-library

by 8enSmith
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Referenced in the repository URL for cloning the project.

  • Used for package management and running scripts.

  • Used for code formatting in the development workflow.

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 and get detailed information
  • Author Search by Name: Search for authors using their name and get relevant details
  • Structured Response Format: Returns book and author information in a consistent JSON structure
  • Error Handling: Proper validation and error reporting
  • Testing: Comprehensive test coverage with Vitest

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 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)

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

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.

pnpm run inspector http://localhost:8080

Development

Project Structure

  • src/index.ts - Main server implementation
  • src/types.ts - TypeScript type definitions
  • src/index.test.ts - Test suite

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

Running Tests

npm test

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Acknowledgments

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

A Model Context Protocol (MCP) server for the Open Library API that enables AI assistants to search for book information.

  1. Overview
    1. Features
      1. Installation
        1. Usage
          1. Running the Server
          2. Using with an MCP Client
          3. Docker
        2. Development
          1. Project Structure
          2. Available Scripts
          3. Running Tests
        3. Contributing
          1. Acknowledgments
            ID: qhkblspta2