Data source: Open Library (Internet Archive)
https://context.gnist.ai/mcp/open-library/
AuthenticationAll requests require a Gnist-API-Key header (or api_key query parameter).
Free tier: 100 calls/day. Get your API key.
Tools (7)
search_booksSearch Open Library for books by title, author, or subject.
Returns matching books with titles, authors, publication years, ISBNs,
subjects, and cover image IDs. Use the returned work key (e.g. /works/OL27448W)
with get_book() for full details.
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | required | Search query — title, author, or subject (e.g. "the lord of the rings", "tolkien"). |
limit | integer | optional | Max results to return (1-100). Default 10. (default: 10) |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "search_books",
"arguments": {
"query": "example"
}
}
}get_bookGet detailed information about a book/work by its Open Library work ID.
Returns title, description, subjects, author references, cover IDs, and
timestamps. Work IDs end in "W" — find them via search_books().
| Parameter | Type | Required | Description |
|---|---|---|---|
olid | string | required | Open Library work ID (e.g. "OL27448W" for The Lord of the Rings). |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "get_book",
"arguments": {
"olid": "example"
}
}
}search_authorsSearch Open Library for authors by name.
Returns matching authors with names, birth/death dates, top works, and
work counts. Use the returned author key with get_author() for full bio.
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | required | Author name to search for (e.g. "tolkien", "ursula le guin"). |
limit | integer | optional | Max results to return (1-100). Default 10. (default: 10) |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "search_authors",
"arguments": {
"query": "example"
}
}
}get_authorGet detailed information about an author by Open Library author ID.
Returns name, biography, birth/death dates, external links, and photo IDs.
Author IDs end in "A" — find them via search_authors().
| Parameter | Type | Required | Description |
|---|---|---|---|
olid | string | required | Open Library author ID (e.g. "OL26320A" for J.R.R. Tolkien). |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "get_author",
"arguments": {
"olid": "example"
}
}
}get_editionsGet all editions of a work — different publishers, languages, formats.
Returns edition details including publishers, publication dates, ISBNs,
page counts, languages, and cover IDs. Useful for finding specific
translations or print editions.
| Parameter | Type | Required | Description |
|---|---|---|---|
olid | string | required | Open Library work ID (e.g. "OL27448W"). |
limit | integer | optional | Max editions to return (1-100). Default 10. (default: 10) |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "get_editions",
"arguments": {
"olid": "example"
}
}
}search_by_isbnLook up a specific book edition by its ISBN-10 or ISBN-13.
Returns the edition's title, publishers, publication date, ISBNs, page
count, languages, covers, and linked work keys. Dashes in the ISBN are
stripped automatically.
| Parameter | Type | Required | Description |
|---|---|---|---|
isbn | string | required | ISBN-10 or ISBN-13 (e.g. "9780618640157" or "0618640150"). |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "search_by_isbn",
"arguments": {
"isbn": "example"
}
}
}report_feedbackReport a bug, feature request, or general feedback for this data source.
Use this when something doesn't work as expected, when you'd like
a new feature, or when you have suggestions for improvement.
Args:
feedback: Describe the issue or suggestion.
feedback_type: One of 'bug', 'feature_request', or 'general'.
| Parameter | Type | Required | Description |
|---|---|---|---|
feedback | string | required | |
feedback_type | string | optional | (default: "general") |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "report_feedback",
"arguments": {
"feedback": "example"
}
}
}Quick Start
curl -X POST "https://context.gnist.ai/mcp/open-library/" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Gnist-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "search_books", "arguments": {"query": "example"}}}'
import httpx
resp = httpx.post(
"https://context.gnist.ai/mcp/open-library/",
headers={"Gnist-API-Key": "YOUR_API_KEY", "Content-Type": "application/json"},
json={
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "search_books",
"arguments": {
"query": "example"
}
}
},
)
print(resp.json())