---
title: ToolRouter — Tool Detail
description: Detailed documentation for a ToolRouter tool including skills, parameters, and examples.
url: https://toolrouter.com/tools/book-search
---
# Book Search

Search a massive catalog of books by title, author, subject, or ISBN. Get cover images, descriptions, and publication details. Browse trending titles, explore author bios, and read full text from 60,000+ free public domain ebooks.

- **Version:** 0.04
- **Categories:** data, productivity

## Skills (9)

### Search Books (`search_books`)

Search for books by any query including title, author, or topic. Returns matching books with cover images, authors, publication year, and page counts.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `query` | string | Yes | Search query — can be a book title, author name, topic, or any combination |
| `limit` | number | No | Maximum number of results to return (1-50, default 10) [default: 10] |
| `page` | number | No | Page number for paginated results (default 1) [default: 1] |
| `sort` | string | No | Sort order for results — "title" (alphabetical), "editions" (most editions), "old" (oldest first), "new" (newest first) (title, editions, old, new) |
| `language` | string | No | Filter by language using a 3-letter ISO 639-2 code (e.g. "eng", "fra", "spa", "deu") |

**Returns:** List of matching books with title, authors, cover image URLs, publication year, page count, subjects, and work keys for detailed lookup

**Examples:**

*Search for books about machine learning:*

```json
{
  "query": "machine learning"
}
```

*Search for a specific book title with limited results:*

```json
{
  "query": "The Great Gatsby",
  "limit": 5
}
```

### Get Book Details (`get_book_details`)

Get full details for a specific book by its Open Library work key. Returns the complete description, subjects, cover images, publication date, and related links.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `work_key` | string | Yes | Open Library work key (e.g. "OL45804W") — obtained from search_books results |

**Returns:** Complete book details including description, subjects, subject places and times, cover image URLs, first publish date, and related links

**Examples:**

*Get details for "The Lord of the Rings":*

```json
{
  "work_key": "OL27448W"
}
```

*Get details using a work key from search results:*

```json
{
  "work_key": "OL45804W"
}
```

### Lookup ISBN (`lookup_isbn`)

Look up a book by its ISBN (10 or 13 digit). Returns the specific edition details including title, publisher, page count, publish date, and cover image.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `isbn` | string | Yes | ISBN-10 or ISBN-13 of the book (hyphens are stripped automatically) |

**Returns:** Edition details including title, publishers, publish date, page count, cover images, physical format, and work key for further lookup

**Examples:**

*Look up a book by ISBN-13:*

```json
{
  "isbn": "9780261103573"
}
```

*Look up a book by ISBN-10 with hyphens:*

```json
{
  "isbn": "0-14-028329-X"
}
```

### Search by Author (`search_by_author`)

Search for books by a specific author name. Returns all matching books by that author with cover images, publication years, and subjects.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `author` | string | Yes | Author name to search for (e.g. "J.R.R. Tolkien", "Stephen King") |
| `limit` | number | No | Maximum number of results to return (1-50, default 10) [default: 10] |

**Returns:** List of books by the specified author with titles, cover image URLs, publication years, page counts, subjects, and work keys

**Examples:**

*Find books by J.R.R. Tolkien:*

```json
{
  "author": "J.R.R. Tolkien"
}
```

*Find books by Stephen King with more results:*

```json
{
  "author": "Stephen King",
  "limit": 20
}
```

### Search by Subject (`search_by_subject`)

Find books in a specific subject or topic area. Uses the Open Library subject catalog to return curated book lists for categories like fiction, science, history, and more.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `subject` | string | Yes | Subject or topic to browse (e.g. "science fiction", "biography", "artificial intelligence") |
| `limit` | number | No | Maximum number of results to return (1-50, default 10) [default: 10] |

**Returns:** List of books in the specified subject with titles, authors, cover image URLs, publication years, and edition counts

**Examples:**

*Browse science fiction books:*

```json
{
  "subject": "science fiction"
}
```

*Find books about artificial intelligence:*

```json
{
  "subject": "artificial intelligence",
  "limit": 15
}
```

### Get Author Details (`get_author_details`)

Get detailed information about an author by their Open Library author key. Returns biography, birth and death dates, photo, and their top works with publication details.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `author_key` | string | Yes | Open Library author key (e.g. "OL34184A") — found in search results or author URLs |

**Returns:** Author details including name, biography, birth/death dates, photo URLs, total works count, and top works with titles and publication dates

**Examples:**

*Get details for J.R.R. Tolkien:*

```json
{
  "author_key": "OL26320A"
}
```

*Get details for Isaac Asimov:*

```json
{
  "author_key": "OL34184A"
}
```

### Trending Books (`trending_books`)

Discover trending and popular books on Open Library. Returns books that are currently being read, wishlisted, or talked about, with daily, weekly, monthly, or yearly trends.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `period` | string | No | Trending period — how far back to look for trending activity (default "daily") (daily, weekly, monthly, yearly) [default: "daily"] |

**Returns:** List of trending books with titles, authors, cover image URLs, publication years, edition counts, and reading activity stats (already read, want to read, currently reading)

**Examples:**

*Get today's trending books:*

```json
{}
```

*Get books trending this month:*

```json
{
  "period": "monthly"
}
```

### Search Free Ebooks (`search_free_ebooks`)

Search over 60,000 public domain books from Project Gutenberg. Find free ebooks by title, author, or topic with download links in multiple formats including plain text, HTML, and EPUB.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `query` | string | Yes | Search query — can be a book title, author name, or keyword |
| `language` | string | No | Filter by language using ISO 639-1 code (e.g. "en", "fr", "de") |
| `topic` | string | No | Filter by topic or bookshelf category (e.g. "children", "history") |
| `sort` | string | No | Sort order — "popular" (most downloaded), "ascending" (A-Z), "descending" (Z-A) (popular, ascending, descending) [default: "popular"] |
| `limit` | number | No | Maximum number of results to return (1-32, default 10) [default: 10] |

**Returns:** List of matching free ebooks with titles, authors, subjects, download counts, and download links in HTML, plain text, EPUB, Kindle, and cover image formats

**Examples:**

*Search for Shakespeare works:*

```json
{
  "query": "shakespeare"
}
```

*Find free history books in English:*

```json
{
  "query": "history",
  "topic": "history",
  "language": "en",
  "limit": 15
}
```

### Read Ebook (`read_ebook`)

Fetch the actual text content of a free ebook from Project Gutenberg by its book ID. Use this to read, summarize, analyze, or quote from public domain books.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `book_id` | number | Yes | Project Gutenberg book ID — obtained from search_free_ebooks results |
| `format` | string | No | Text format to fetch — "plain_text" for raw text or "html" for formatted HTML (plain_text, html) [default: "plain_text"] |
| `max_length` | number | No | Maximum number of characters to return (default 5000, max 50000). Longer books are truncated with a link to the full text. [default: 5000] |

**Returns:** The book text content with title, authors, format, character count, truncation status, and a URL to the full text for reading the complete work

**Examples:**

*Read the beginning of Frankenstein:*

```json
{
  "book_id": 84
}
```

*Read Pride and Prejudice in HTML format with more text:*

```json
{
  "book_id": 1342,
  "format": "html",
  "max_length": 20000
}
```

## Quick Start

```bash
# Via CLI
TOOLROUTER_API_KEY=tr_live_xxx npx -y toolrouter-mcp call book-search search_books --query machine learning

# Via REST API
curl -H "Authorization: Bearer tr_live_xxx" \
     -d '{"tool":"book-search","skill":"search_books","input":{"query":"machine learning"}}' \
     https://api.toolrouter.com/v1/tools/call
```

## Frequently Asked Questions

### Can I search books by title, author, subject, or ISBN?

Yes. `search_books` handles broad queries, `search_by_author` and `search_by_subject` browse by category, and `lookup_isbn` is best when you already know the exact edition.

### How do I get full book details after a search?

Use `get_book_details` with the Open Library work key from search results. It returns the description, subjects, cover images, publication date, and related links.

### Can I read free public domain ebooks here?

Yes. `search_free_ebooks` finds Project Gutenberg titles, and `read_ebook` fetches the actual text so you can read, summarize, or quote from it.

### Is there a way to browse popular or author-specific books?

Yes. `trending_books` shows popular titles by period, and `get_author_details` gives author bios plus top works with publication details.

---

## Get Started with ToolRouter

**Already connected?** Call any tool with `use_tool({ tool, skill, input })`. Browse tools with `discover` or visit https://toolrouter.com/llms-full.txt

**New to ToolRouter?** Connect with one command (no API key needed — auto-provisions on first use):

```bash
# MCP (Claude Code, Codex CLI)
claude mcp add toolrouter -- npx -y toolrouter-mcp

# MCP (Cursor, Windsurf, Cline, VS Code, Gemini CLI, Claude Desktop)
{"mcpServers":{"toolrouter":{"command":"npx","args":["-y","toolrouter-mcp"]}}}

# Claude Chat / Claude Cowork / Claude Mobile — add as a connector:
# Settings → Connectors → Add custom connector → URL: https://api.toolrouter.com/mcp

# ChatGPT — add as an app:
# Settings → Apps → Advanced settings → enable Developer mode → Create app → MCP Server URL: https://api.toolrouter.com/mcp

# CLI (works instantly, no restart needed)
npx -y toolrouter-mcp tools                    # browse all tools
npx -y toolrouter-mcp search "seo"             # search by keyword
npx -y toolrouter-mcp call seo analyze_page --url https://example.com
```

Free tools work immediately. For paid tools, visit https://toolrouter.com/claim to add credits.

All platforms: https://toolrouter.com/connect | Full catalog: https://toolrouter.com/llms-full.txt | Docs: https://toolrouter.com/docs