# OverDrive Library API MCP

> OverDrive Library API connects your AI agent directly to global ebook and audiobook metadata. It lets you audit library collections, verify formats, and search thousands of titles—all without logging into any physical library portal. Your agent handles the complex data querying so you get precise collection statistics.

## Overview
- **Category:** knowledge-management
- **Price:** Free
- **Tags:** digital-library, ebooks, audiobooks, metadata, search-api, collection-management

## Description

The **OverDrive Library API** gives your AI agent direct access to global metadata for ebooks and audiobooks. You're skipping the physical library portal entirely; your agent handles all the complex data querying so you get precise collection statistics right in your workflow. 

First, you can check if the whole OverDrive service is up and running by calling `check_api_status`. This confirms whether the API is operational before you run any big queries.

Need to find a specific title? You'll use `search_library_collection`. It lets your agent search the entire public catalog using keywords or an author’s name. The result gives you all matching books and media found across OverDrive.

Want to know what collections you manage? Use `list_library_collections` to grab a list of unique IDs and names for every digital collection tied to your account. This lets your agent track departmental asset groups or regional holdings.

Once you have an item ID, you can dig deep with `get_library_product_details`. This tool pulls all the technical data—the metadata—for just that single library product. It gives you crucial details like ISBNs and whether the item is available right now.

When you put it together, your agent doesn't need to log into anything. You feed the API a simple request, and it executes massive queries against OverDrive’s live catalog. For instance, if you want to audit a specific collection, you first list the collections, then take an ID and run `get_library_product_details` on every item within that group to check its ISBN and availability status. If you're just checking for general titles, you use `search_library_collection`, which returns structured data with multiple potential matches based on your input keywords or author name.

The system handles the heavy lifting of querying vast amounts of information—the formats, the identifiers, the availability flags—and spits out clean, usable JSON that your agent can process immediately. You're not dealing with messy web pages; you're dealing with structured data that lets you classify and count assets down to the ISBN level.

Think about it: Instead of manually checking dozens of library databases or signing into multiple portals just to confirm an item’s format or its current status, your agent does all that work. It confirms the API is active using `check_api_status`. Then, if you know a collection exists, you list its IDs with `list_library_collections`. From those IDs, you can pull granular technical details—every single metadata point—for any product by calling `get_library_product_details`. If you're just trying to figure out if an author has anything available, the search function, `search_library_collection`, does the legwork. It’s pure data retrieval. You send a command; it sends back verified metadata for ebooks and audiobooks, letting your agent keep precise tabs on every resource you own.

## Tools

### check_api_status
Confirms whether the OverDrive service is currently running and available for queries.

### get_library_product_details
Retrieves all metadata, including ISBNs and availability status, for a single library product ID.

### list_library_collections
Returns a list of unique IDs and names for every digital collection associated with your account.

### search_library_collection
Searches the entire OverDrive public catalog using keywords or authors to find matching books and media.

## Prompt Examples

**Prompt:** 
```
Search for ebooks by 'Ernest Hemingway' using OverDrive.
```

**Response:** 
```
I've retrieved several titles by Ernest Hemingway in the OverDrive catalog! Notable ebooks include 'The Old Man and the Sea' and 'A Farewell to Arms'. Would you like the full metadata or the available formats for any of these books?
```

**Prompt:** 
```
What are the details for product ID '12345'?
```

**Response:** 
```
I've retrieved the details for product 12345! It is identified as a digital audiobook titled [Title]. Available formats include OverDrive Listen and MP3. I can provide the full description and ISBN metadata if you'd like.
```

**Prompt:** 
```
List all digital collections in my account.
```

**Response:** 
```
I've retrieved the collection catalog from OverDrive! You have several active collections, categorized by region or library type. I can provide the unique IDs for these collections to assist in further title searches.
```

## Capabilities

### Search digital titles
Find specific ebooks or audiobooks by title, author, or keyword using `search_library_collection`.

### Audit product metadata
Get complete technical details and availability status for a single item ID using `get_library_product_details`.

### List available collections
Retrieve the unique IDs and names of all digital collections managed in your OverDrive account via `list_library_collections`.

### Verify API status
Check if the entire OverDrive service is currently operational using `check_api_status`.

## Use Cases

### Auditing a New Subject Area
A curator needs to know which titles fall under 'Quantum Physics' and what formats they come in. They prompt the agent with: 'Search for quantum physics books, then audit their formats.' The agent runs `search_library_collection` and then uses `get_library_product_details` on every result ID, providing a clean report of all available media types.

### Inventory Management Check
An operations lead needs to confirm that the regional collection 'West Coast Fiction' still exists and has its unique identifier. They use `list_library_collections` to get a full list, confirming the ID before writing any automated reporting scripts.

### Verifying Author Reach
A student needs to see every book written by 'Jane Doe' that is available in digital format. They prompt: 'Find all books by Jane Doe.' The agent uses `search_library_collection` and returns the list of titles, confirming availability across the entire public catalog.

### System Health Check Before Migration
A developer is building a new data pipeline. First, they call `check_api_status`. If it passes, they proceed with more intensive calls like `search_library_collection` to ensure the connection and parameters are working before deploying major code.

## Benefits

- **Verify Availability Instantly:** Use `search_library_collection` to find thousands of titles by author or keyword. You get a list of potential books immediately, skipping the need for manual title-by-title searches.
- **Deep Metadata Auditing:** The `get_library_product_details` tool gives you every technical specification—ISBNs, formats, descriptions—for one specific product ID. It's ideal for data validation scripts.
- **Know Your Assets:** Run `list_library_collections` to get a master inventory of all regional or departmental digital collections in your account. This lets you track organizational boundaries easily.
- **Format Gap Analysis:** By checking formats on individual items, you can quickly audit if a genre is missing specific media types (like audiobooks vs. standard e-books).
- **Reliable Status Check:** Use `check_api_status` to integrate system health checks into your workflow. Your agent knows immediately if the data source is down before running expensive searches.

## How It Works

The bottom line is: you use your agent to run complex library data queries without ever touching a web browser or manual input form.

1. First, subscribe to the server and provide your OverDrive Client Key and Secret.
2. Second, prompt your AI client (Claude, Cursor, etc.) with a request. The agent translates this into a specific tool call, like `search_library_collection(query='Sci-Fi')`.
3. Finally, the API executes the query against OverDrive’s live catalog and delivers structured metadata directly to your working environment.

## Frequently Asked Questions

**How do I find my OverDrive Credentials?**
Register for a developer account at the [**OverDrive Developer portal**](https://developer.overdrive.com/), create an application, and you will receive your Client Key and Client Secret. Copy and paste them below.

**Does it support audiobook metadata?**
Yes. OverDrive provides comprehensive metadata for both ebooks and audiobooks across its entire catalog.

**Can the agent check for format availability?**
Yes. The `get_library_product_details` tool retrieves the list of available digital formats (e.g., Kindle, EPUB, MP3) for any specified product ID.

**If I use `get_library_product_details` with an invalid product ID, how does my agent handle the error?**
The API returns a specific HTTP 404 or detailed error code when an ID doesn't exist. Your agent should be configured to catch these known exceptions, allowing it to report missing data instead of failing the entire search workflow.

**Are there rate limits I need to worry about when using `search_library_collection`?**
Yes, OverDrive enforces API call quotas. To keep your agent running smoothly, implement an exponential backoff strategy in your code. This prevents the system from throttling your requests during heavy usage.

**What does `list_library_collections` return regarding regional assets?**
It lists all active and managed digital collections tied to your account credentials. If you need metadata on assets not associated with these listed IDs, the API won't provide it.

**What critical identifiers are guaranteed when I call `get_library_product_details`?**
You receive high-resolution identifiers for every title, including ISBNs and specific format markers. These structured metadata points ensure your agent can classify the media type accurately.

**If `check_api_status` fails, what should my AI client do next?**
The status check confirms immediate operational health. If it reports an outage, your agent must halt live queries and default to using previously cached data or notifying the user that services are currently unavailable.