# Project Gutenberg MCP

> Project Gutenberg MCP Server connects your AI client to a public domain library containing over 60,000 free eBooks. Use this server to search for classic literature by keyword or subject using `search_gutenberg_books`, list all available works from a specific author with `search_author`, or fetch detailed metadata for any single title via `get_book_details`. It's your AI agent's dedicated source for historical and public domain texts.

## Overview
- **Category:** knowledge-management
- **Price:** Free
- **Tags:** digital-library, public-domain, ebooks, literary-research, open-access, historical-data

## Description

**Project Gutenberg MCP Server** connects your AI client directly to a public domain library holding over 60,000 free eBooks. It gives you structured access to classic literature and historical texts—it's your agent's dedicated research source for anything in the public domain.

Here’s the deal: this server doesn't just let you 'look up' books; it forces the retrieval of granular data points like unique IDs, language codes, and specific metadata. You get structured output that lets your agent do deep literary analysis, something that was a pain to pull together before.

### How It Works with Your Agent

When you connect this server, your AI client can operate like it's talking to a professional digital librarian. You tell your agent what you need, and the tool handles the complex search queries against the entire catalog.

**Searching the Entire Collection:** Need to find books by general topic or keyword? Use `search_gutenberg_books`. This function performs broad searches across the whole 60,000+ title library. You can filter results by specific keywords, literary subjects, or partial titles, letting you narrow down massive collections quickly.

**Listing an Author's Back Catalog:** If you know a writer but not their specific book, use `search_author`. This tool lists every single published work the database has associated with that author’s name. It gives you a clean roster of available texts without needing to guess titles or years.

**Getting Deep Details on One Title:** Once you have a title or ID, you run into `get_book_details`. This function pulls specific, granular metadata for that single book entry. You get the unique IDs, language details, and deep information necessary to use the text in other analysis pipelines. It’s how your agent gets the full context on one piece.

### Running Complex Literary Analysis

You can combine these tools to do heavy lifting. For instance, you don't have to check 60,000 books manually just to compare themes across different periods. You use `search_gutenberg_books` first to find several works matching a theme—say, 'sea travel.' Then, for each of those results, you run `get_book_details`. This gathers the unique IDs and language data points required before your agent can perform a thematic comparison or historical context analysis across multiple sources. You might use `search_author` to gather all works by Dickens, then feed that list into the process above. The combination of these tools lets you pull structured data from several different books for rigorous comparison.

It’s about building a workflow where your agent doesn't just read; it collects and organizes specific facts, making deep comparative research on public domain texts straightforward.

## Tools

### search_author
Searches and lists all available published works associated with a given author's name.

### get_book_details
Retrieves specific, granular metadata for one identified book title or ID from the collection.

### search_gutenberg_books
Performs general searches across the entire catalog, filtering books by keywords, subjects, or titles.

## Prompt Examples

**Prompt:** 
```
Find the book 'Pride and Prejudice' on Project Gutenberg.
```

**Response:** 
```
Searching... I found 'Pride and Prejudice' by Jane Austen. Its Project Gutenberg ID is 1342. Would you like me to retrieve more details about this edition?
```

**Prompt:** 
```
List all available works by 'Mark Twain'.
```

**Response:** 
```
Retrieving Mark Twain's bibliography... I've found classics like 'The Adventures of Tom Sawyer' and 'Adventures of Huckleberry Finn'. Shall I provide the IDs for these and other available titles?
```

**Prompt:** 
```
Search for books about 'Philosophy'.
```

**Response:** 
```
Scanning the collection for philosophy... I found several works including titles by Plato, Nietzsche, and Spinoza. I can list the most downloaded ones if you'd like to narrow down your search.
```

## Capabilities

### Search the entire book collection
Find books by keyword, title, or subject across the 60,000+ public domain titles using `search_gutenberg_books`.

### List all works by an author
Retrieve every available book written by a specific author in the database through the `search_author` tool.

### Get deep metadata on one title
Fetch IDs, languages, and detailed information for any single book using `get_book_details`.

### Compare multiple literary themes
Use the combined output of these tools to gather data points from several works for thematic comparison or historical context analysis.

## Use Cases

### Comparing literary themes across eras
A digital humanist wants to compare how 'love' was depicted in a book from the 1800s versus one from the early 1900s. They first use `search_gutenberg_books` for two different subjects, then run `get_book_details` on both titles. The agent combines this metadata to help structure a comparative essay.

### Mapping an author's career trajectory
A student researching Mark Twain needs every book he wrote that is in the public domain. They use `search_author` with 'Mark Twain'. The agent returns a list of titles and IDs, allowing the student to see his entire published scope at a glance.

### Finding books on an obscure topic
A historian is researching early agricultural practices. They don't know the exact book title. Instead, they use `search_gutenberg_books` with keywords like 'early farming methods'. The agent scans by subject and presents relevant titles for review.

### Verifying a book's specific details
A researcher finds an old citation but needs to confirm the exact edition ID. They use `get_book_details` with the known title or partial ID, and the agent pulls the verified metadata record.

## Benefits

- **Deep Metadata Access:** Need to know the exact ID or language of a specific book? Use `get_book_details`. You pull precise, structured data points instead of just reading the summary card.
- **Author Back-Catalog Mapping:** Don't track down an author's bibliography manually. Just ask your agent for all works by them; `search_author` compiles a complete list instantly.
- **Broad Topic Search:** Starting with a general idea, like 'Victorian mystery'? `search_gutenberg_books` scans the whole database by subject or keyword to give you starting points.
- **Historical Context Retrieval:** Quickly compare themes across multiple classic works. The server provides enough data (via combined tool calls) to support deep comparative analysis.
- **Zero Barrier Entry:** It's public access, and no API key is required to start using the tools. Just connect your client and ask questions.

## How It Works

The bottom line is: your AI client turns a massive library database into conversational data points, letting you analyze literature without manual lookups.

1. Connect your AI client (Claude, Cursor, etc.) to the Project Gutenberg MCP Server.
2. Tell your agent what you're looking for—maybe 'all books by Jane Austen' or 'books about philosophy'.
3. Your agent invokes `search_gutenberg_books` or `search_author`, and it returns structured data containing IDs, titles, and metadata that you can use immediately.

## Frequently Asked Questions

**How do I use the search_gutenberg_books tool?**
You ask your agent for general searches, specifying keywords or subjects like 'Philosophy' or 'Victorian mystery'. The server runs `search_gutenberg_books` and filters the entire catalog by what you request.

**Can I get all books written by a specific author using search_author?**
Yes, that's exactly what `search_author` does. Just provide the name, and it lists every available work in the public domain for that author.

**What is the difference between search_gutenberg_books and get_book_details?**
`search_gutenberg_books` finds a book when you know general criteria (topic, keyword). `get_book_details` retrieves all specific metadata for one book once you already have its title or ID.

**Does Project Gutenberg MCP Server support modern literature?**
No. This server is limited to public domain books. It won't find anything copyrighted, so stick to classic and historical titles.

**How do I use the search_gutenberg_books tool without an API key?**
You don't need one. This server uses public access, so your agent connects directly via MCP. You can run searches immediately from any compatible client like Claude or Cursor.

**What happens if I call get_book_details too many times?**
The service adheres to standard rate limits for external APIs. If your agent makes excessive calls in a short period, you might hit a temporary throttle. Implementing an exponential backoff mechanism is best practice.

**What kind of data does search_author return?**
It returns structured metadata for every book found by that author. Expect a list containing the title, publication date, and unique Project Gutenberg ID for each entry.

**Can search_gutenberg_books find books written recently?**
No. The scope of this server is limited to public domain works, which are classic texts whose copyright has expired. You won't find modern or contemporary literature here.

**Can I search for books by William Shakespeare?**
Yes! Use the `search_author` tool with the name 'Shakespeare'. It will return a list of his famous plays and sonnets available on Project Gutenberg.

**How do I find books about a specific subject like 'History'?**
Use the `search_books` tool and include the subject in your query. Your agent will search the entire catalog for titles matching that theme.

**Can I get the full text of a book directly?**
The current server focuses on metadata and discovery. You can retrieve the official Project Gutenberg ID for any book, which can be used to find the full text on their website.