# MIT Open Library MCP

> MIT Open Library connects your AI client to a catalog of over 20 million books and their bibliographic metadata. Use this server to search titles by ISBN, trace an author's entire bibliography, or find specific editions and translations. It’s the deep dive tool for researchers needing academic depth, not just basic book lookups.

## Overview
- **Category:** knowledge-management
- **Price:** Free
- **Tags:** library-catalog, bibliographic-data, book-search, open-data, isbn-lookup, archiving

## Description

**You're connecting your AI client directly to the Open Library catalog—that’s over 20 million books and all their associated metadata.** This isn't a simple search box; it's a deep dive engine for researchers. You gotta use this server when you need academic depth, not just what Google Books throws at ya. We built out tools that let your agent pull structured data on authors, titles, and every damn edition they ever printed.

When you start up a search, you can hit the catalog with specific identifiers. Need to find a book by its ISBN-10 or ISBN-13? Use `search_by_isbn` and you instantly get core details like the title, publication date, page count, and cover image. If you know the exact name of the work, run `search_by_title`. You can also narrow your search dramatically using specific criteria. Want to filter results only for books published by 'MIT Press' or 'O’Reilly Media'? Use `search_by_publisher` or `search_by_subject`, plugging in academic codes like 'computer_science' or 'quantum_physics'. Need something in Chinese? You use `search_by_language` with the ISO code. If you want to see what people are talking about right now, check out `search_trending_subjects`. And if your research is focused on finding free material, running `search_full_text` makes sure you only get books confirmed to have readable full text online.

If you're starting from an author's name—say, a common name like 'Isaac Newton'—you use `search_by_author` to look up their bibliographies. You can also search for authors using their precise Open Library key with `get_author`, which pulls the full profile and bio. Once you have that master list of works, `get_author_works` returns all titles associated with them, along with covers and primary subjects.

But here's where it gets complex—and useful. If an author has written a massive body of work, you can track down every single version of it. You start by using `get_work`, which pulls general details, including subject matter and historical context for the original title. From that master record, you use `get_work_editions` to list every known variation—every translation, format change, or re-release. If you need the super specific details on one of those versions—like who published it, what its exact page count is, and which ISBNs it used—you call `get_edition` using the edition key.

For general searches that require a starting point, you can also run `search_by_subject`, or if you know the author's name but not their specific works, you use `search_by_isbn`. For finding recent material, just fire up `search_recent` to see what’s been added or updated in the catalog. The structure is designed so your agent doesn't hit a dead end; it links identifiers right through the entire lifecycle of a book.

Your AI client sends the key parameters—an ISBN, an author name, a subject code—and the MCP Server executes the call. It pulls back structured JSON containing title details, related editions, subjects, and all the necessary metadata for your agent to process without having to stitch together disparate data points from multiple sources. You're getting organized academic power here. You don't just find a book; you trace its history, see every format it came in, and track down the specific version published by a certain house.

## Tools

### get_author
Retrieves a full author profile using the Open Library key (e.g., 'OL33421A').

### get_author_works
Returns all titles, covers, and subjects associated with one specific author.

### get_edition
Gets detailed specs (publisher, ISBNs, page count) for a book using its Open Library edition key.

### get_work
Retrieves general details—including subjects and history—for a book using the Open Library work key.

### get_work_editions
Lists all known editions, formats, and translations for a specific title.

### search_authors
Searches the catalog to find authors by name, retrieving their bio, top works, and subject matter.

### search_books
Performs a general search across 20M+ books. You can sort results by newness, rating, or edition count.

### search_by_author
Looks up books and bibliographies using an author's common name.

### search_by_isbn
Finds a book’s core data (title, date, pages) by submitting its ISBN-10 or ISBN-13 number.

### search_by_language
Limits the search results to books published in specific languages using ISO codes (e.g., 'chi' for Chinese).

### search_by_publisher
Narrows down results by a known publisher, like 'O'Reilly Media' or 'MIT Press'.

### search_by_subject
Filters the catalog using academic subjects such as 'quantum_physics' or 'computer_science'.

### search_by_title
Runs a precise search when you know the exact title of the book.

### search_full_text
Filters results to only show books that have freely readable full text available online.

### search_recent
Browses the catalog to see a list of the most recently added or updated records.

### search_trending_subjects
Shows popular books currently trending within a specific subject area.

## Prompt Examples

**Prompt:** 
```
Find books about quantum computing published by MIT Press
```

**Response:** 
```
I've found MIT Press books on quantum computing, including textbooks on quantum algorithms, quantum information theory, and quantum error correction.
```

**Prompt:** 
```
Look up all books by Richard Feynman
```

**Response:** 
```
I've retrieved Richard Feynman's complete bibliography from Open Library, including The Feynman Lectures on Physics, Surely You're Joking, and QED.
```

**Prompt:** 
```
Find freely readable books on machine learning
```

**Response:** 
```
I've filtered for machine learning books with full-text availability on the Internet Archive. These editions can be borrowed or read online for free.
```

## Capabilities

### Search Books by Identifier
Find book titles, authors, and availability using specific identifiers like ISBNs or exact keywords.

### Retrieve Author Bibliographies
Build a complete list of works associated with an author, including titles, covers, and primary subjects.

### Track Specific Editions
Get detailed information—like publication date, page count, and format—for every known edition or translation of a single work.

### Filter by Content Availability
Run searches that only return books confirmed to have freely readable full text on the Internet Archive.

## Use Cases

### Tracing an Author's Career Arc
A researcher knows Richard Feynman wrote key works but needs his full academic scope. They ask their agent to run `search_by_author` and then use `get_author_works`. The agent returns a complete, dated list of all known titles, allowing the researcher to map his intellectual evolution without leaving the chat window.

### Verifying Source Material for Citation
A content developer has an old book's ISBN but can't find its page count or original publisher. They run `search_by_isbn`. The agent returns a structured card with the title, date, and precise page count, instantly solving the citation problem.

### Finding Open-Access Textbooks
A student needs a textbook on Machine Learning but can't afford it. They prompt their agent to search using `search_full_text` and filter by 'computer_science'. The agent returns only the titles confirmed as fully readable online, saving hours of manual checking.

### Comparing Global Translations
A librarian needs all known editions of a classic book in Spanish. They first use `get_work` to find the work key, then call `get_work_editions`, and finally filter by language using `search_by_language` for 'spa'. The result is a comprehensive list of every available version.

## Benefits

- Cross-reference works easily. Instead of running multiple searches, use `get_author` followed by `get_author_works` to build a complete bibliography on demand.
- Verify source material details instantly. Need to check if an ISBN is correct or find the original publisher? Use `search_by_isbn` for fast validation and get `get_edition` for deep specs.
- Filter out paywalls. If you are writing academic work, running a search with `search_full_text` guarantees you only get books readable online right now.
- Handle language scope. When researching global topics, use `search_by_language` to narrow down results by ISO code (like 'spa' or 'jpn') without manual filtering.
- Track publication evolution. Use `get_work_editions` to understand how a book has changed across different formats or translations over decades.

## How It Works

The bottom line is that you get a structured JSON payload of highly specific bibliographic data, not just a list of search results.

1. The agent identifies the necessary data point: an ISBN, author name, or subject category.
2. Your AI client calls a specific tool (e.g., `search_by_isbn`) and passes the required parameters (like '978-0321765723').
3. The server executes the lookup against Open Library's catalog and returns structured data, including title, publisher details, and relevant links.

## Frequently Asked Questions

**How do I find all editions of a book? (Using get_work_editions)**
Call the `get_work_editions` tool, providing the Open Library work key. This returns every known format and edition—including translations or different publishers—for that specific title.

**Can I search for books by subject? (Using search_by_subject)**
Yes, use `search_by_subject`. You pass an academic topic like 'mathematics' or 'artificial_intelligence', and the server returns a list of relevant titles across the catalog.

**How do I look up a book if I only have its ISBN? (Using search_by_isbn)**
Simply call `search_by_isbn` with your 10 or 13-digit number. The tool returns the title, publisher, and page count immediately.

**How do I find books that are free to read? (Using search_full_text)**
Run `search_full_text`. This filters the entire 20M+ catalog down to only those titles confirmed as having freely readable content on the Internet Archive.

**What is the best way to retrieve an author’s complete bibliography using get_author_works?**
It returns every work associated with that author, providing titles, covers, and subjects. You can use it when you need a full list of publications, rather than just searching by name or looking up one specific book.

**How do I use search_books to find books based on criteria like edition count or age?**
You specify the sort option in your request. By setting 'editions' or choosing between 'new' and 'old', you filter results beyond a basic title search, helping pinpoint rare or highly-reprinted texts.

**What specific data does the get_author tool provide?**
The tool pulls key profile information for an author, including their biography, a list of works, and main subjects. It's perfect for building out a detailed background on a writer.

**If I have a work key, how does get_work provide more detail than just listing editions?**
It gives you the core details about the book itself: title, overall description, and subjects. Think of it as getting the abstract for the entire body of work before checking specific versions.

**Do I need an API key?**
No. Open Library is completely free and open. No authentication required.

**Can I read full books?**
Many books on Open Library have full-text versions available through the Internet Archive. Use the full-text search filter to find freely readable editions.

**How many books are in Open Library?**
Open Library catalogs over 20 million unique book records with metadata from libraries, publishers, and community contributions. It is one of the largest open book databases in the world.