Library of Alexandria
Classic books in 25 languages: search, print editions, the free shelf. Read-only, no sign-in.
Should I use this
Quality & Safety
Findings (1)
- LOWin browse_collection
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"library-of-alexandria": {
"url": "https://mcp.libraryofalexandria.com/mcp"
}
}
}Remote endpoints
https://mcp.libraryofalexandria.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (26)
🟢search_books(query, language, limit)
Search the catalogue of Library of Alexandria Press by words from a title or an author's name, or by a topic word, in any language of the catalogue (Chinese in simplified and traditional characters). Returns up to 8 titles with id, title, subtitle, author, language, whether print editions are available, and the address of the title page on libraryofalexandria.com. Pass the asker's language so titles and authors come back in it.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Words from a title or an author's name, or a topic word, in any language. Example: 'Moby Dick', 'Dostoevsky', 'war strategy'.",
"maxLength": 200
},
"language": {
"type": "string",
"enum": [
"en",
"es",
"de",
"nl",
"fr",
"it",
"pt-BR",
"ru",
"zh-CN",
"zh-TW",
"ja",
"ko",
"pl",
"ar",
"hi",
"id",
"ca"
],
"description": "Language of the person asking, as a code: en English, es Spanish, de German, nl Dutch, fr French, it Italian, pt-BR Portuguese, ru Russian, zh-CN Chinese, zh-TW Chinese in traditional characters, ja Japanese, ko Korean, pl Polish, ar Arabic, hi Hindi, id Indonesian, ca Catalan. Titles, subtitles, authors and page addresses come back in this language. Default: the language of the query, else English."
},
"limit": {
"type": "integer",
"description": "Number of titles to return, 1 to 8. Default 8.",
"minimum": 1,
"maximum": 8
}
},
"required": [
"query"
],
"additionalProperties": false
}🟢get_book(id, language)
Get the catalogue facts of one title: title, subtitle, author and original title in the chosen language, the cover picture address, the print editions, and the title page address in each language in which libraryofalexandria.com has the page (a language without a page there is not listed, so the list can be shorter than the languages of the catalogue). `url_language` says when `url` is in another language than the one asked.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Title id as found in a search result, for example top3500-00013 or forbidden-00004. A plain number is read as a number of the main list."
},
"language": {
"type": "string",
"enum": [
"en",
"es",
"de",
"nl",
"fr",
"it",
"pt-BR",
"ru",
"zh-CN",
"zh-TW",
"ja",
"ko",
"pl",
"ar",
"hi",
"id",
"ca"
],
"description": "Language of the person asking, as a code: en English, es Spanish, de German, nl Dutch, fr French, it Italian, pt-BR Portuguese, ru Russian, zh-CN Chinese, zh-TW Chinese in traditional characters, ja Japanese, ko Korean, pl Polish, ar Arabic, hi Hindi, id Indonesian, ca Catalan. Titles, subtitles, authors and page addresses come back in this language. Default: the language of the query, else English."
}
},
"required": [
"id"
],
"additionalProperties": false
}🟢get_summary(id, language, part)
Read the 15-minute summary of one title: the first key idea in full, with its heading, and the headings of the other key ideas, which open in the library. Choose a key idea with 'part'. A title or a language whose summary is not open yet answers that it opens here soon.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Title id as found in a search result, for example top3500-00013 or forbidden-00004. A plain number is read as a number of the main list."
},
"language": {
"type": "string",
"enum": [
"en",
"es",
"de",
"nl",
"fr",
"it",
"pt-BR",
"ru",
"zh-CN",
"zh-TW",
"ja",
"ko",
"pl",
"ar",
"hi",
"id",
"ca"
],
"description": "Language of the person asking, as a code: en English, es Spanish, de German, nl Dutch, fr French, it Italian, pt-BR Portuguese, ru Russian, zh-CN Chinese, zh-TW Chinese in traditional characters, ja Japanese, ko Korean, pl Polish, ar Arabic, hi Hindi, id Indonesian, ca Catalan. Titles, subtitles, authors and page addresses come back in this language. Default: the language of the query, else English."
},
"part": {
"type": "integer",
"description": "Number of the key idea, starting at 1. Default 1. Only the first key idea is given in full.",
"minimum": 1
}
},
"required": [
"id"
],
"additionalProperties": false
}🟢get_sample(id, language, page)
Read the free opening of one title: the first chapter of its text, in pages of at most 400 words. Pass 'page' for the next page; every answer says how many pages there are and where the text continues. Until the text is open the answer says that it opens here soon.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Title id as found in a search result, for example top3500-00013 or forbidden-00004. A plain number is read as a number of the main list."
},
"language": {
"type": "string",
"enum": [
"en",
"es",
"de",
"nl",
"fr",
"it",
"pt-BR",
"ru",
"zh-CN",
"zh-TW",
"ja",
"ko",
"pl",
"ar",
"hi",
"id",
"ca"
],
"description": "Language of the person asking, as a code: en English, es Spanish, de German, nl Dutch, fr French, it Italian, pt-BR Portuguese, ru Russian, zh-CN Chinese, zh-TW Chinese in traditional characters, ja Japanese, ko Korean, pl Polish, ar Arabic, hi Hindi, id Indonesian, ca Catalan. Titles, subtitles, authors and page addresses come back in this language. Default: the language of the query, else English."
},
"page": {
"type": "integer",
"description": "Page of the sample, starting at 1. Default 1. Each page has at most 400 words.",
"minimum": 1
}
},
"required": [
"id"
],
"additionalProperties": false
}🟢list_free_shelf(language, subject, limit)
List the titles on the free shelf, optionally for one language and one subject, with the address of each reading page.
Input Schema
{
"type": "object",
"properties": {
"language": {
"type": "string",
"enum": [
"en",
"es",
"de",
"nl",
"fr",
"it",
"pt-BR",
"ru",
"zh-CN",
"zh-TW",
"ja",
"ko",
"pl",
"ar",
"hi",
"id",
"ca"
],
"description": "Language of the person asking, as a code: en English, es Spanish, de German, nl Dutch, fr French, it Italian, pt-BR Portuguese, ru Russian, zh-CN Chinese, zh-TW Chinese in traditional characters, ja Japanese, ko Korean, pl Polish, ar Arabic, hi Hindi, id Indonesian, ca Catalan. Titles, subtitles, authors and page addresses come back in this language. Default: the language of the query, else English."
},
"subject": {
"type": "string",
"description": "A subject word, for example 'philosophy' or 'poetry'.",
"maxLength": 100
},
"limit": {
"type": "integer",
"description": "Number of titles to return, 1 to 8. Default 8.",
"minimum": 1,
"maximum": 8
}
},
"additionalProperties": false
}🟢read_free_chapter(id, chapter, page, language)
Read one chapter of a title on the free shelf, in pages of at most 400 words. Chapter numbers are those of the reader's contents list; without 'chapter' the first chapter of the text is read. Every answer points to the next page. Until the text is open the answer says that it opens here soon.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Title id as found in a search result, for example top3500-00013 or forbidden-00004. A plain number is read as a number of the main list."
},
"chapter": {
"type": "integer",
"description": "Chapter number as in the reader's contents list, starting at 1. Default: the first chapter of the text.",
"minimum": 1
},
"page": {
"type": "integer",
"description": "Page of the chapter, starting at 1. Default 1. Each page has at most 400 words.",
"minimum": 1
},
"language": {
"type": "string",
"enum": [
"en",
"es",
"de",
"nl",
"fr",
"it",
"pt-BR",
"ru",
"zh-CN",
"zh-TW",
"ja",
"ko",
"pl",
"ar",
"hi",
"id",
"ca"
],
"description": "Language of the person asking, as a code: en English, es Spanish, de German, nl Dutch, fr French, it Italian, pt-BR Portuguese, ru Russian, zh-CN Chinese, zh-TW Chinese in traditional characters, ja Japanese, ko Korean, pl Polish, ar Arabic, hi Hindi, id Indonesian, ca Catalan. Titles, subtitles, authors and page addresses come back in this language. Default: the language of the query, else English."
}
},
"required": [
"id"
],
"additionalProperties": false
}🟢get_print_options(id, language)
Get the print editions of one title (standard and large print; paperback or hardcover) with the normal price in US dollars where it exists, ISBN-13 and page count where known, and the address of each product page.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Title id as found in a search result, for example top3500-00013 or forbidden-00004. A plain number is read as a number of the main list."
},
"language": {
"type": "string",
"enum": [
"en",
"es",
"de",
"nl",
"fr",
"it",
"pt-BR",
"ru",
"zh-CN",
"zh-TW",
"ja",
"ko",
"pl",
"ar",
"hi",
"id",
"ca"
],
"description": "Language of the person asking, as a code: en English, es Spanish, de German, nl Dutch, fr French, it Italian, pt-BR Portuguese, ru Russian, zh-CN Chinese, zh-TW Chinese in traditional characters, ja Japanese, ko Korean, pl Polish, ar Arabic, hi Hindi, id Indonesian, ca Catalan. Titles, subtitles, authors and page addresses come back in this language. Default: the language of the query, else English."
}
},
"required": [
"id"
],
"additionalProperties": false
}🟢get_publisher_info
Get the publisher's standard description, the languages of the catalogue and the address of the terms page.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢browse_collection(collection, language, limit, cursor)
Browse a ready-made shelf of the library: the free books, the easy, medium or challenging reading levels, the lost books, the titles with a 15-minute summary, or the most popular titles. Returns up to 8 titles at a time, with a cursor for the next page.
Input Schema
{
"type": "object",
"properties": {
"collection": {
"type": "string",
"enum": [
"free-books",
"easy",
"medium",
"challenging",
"lost-books",
"with-summary",
"popular"
],
"description": "Which shelf to browse."
},
"language": {
"type": "string",
"enum": [
"en",
"es",
"de",
"nl",
"fr",
"it",
"pt-BR",
"ru",
"zh-CN",
"zh-TW",
"ja",
"ko",
"pl",
"ar",
"hi",
"id",
"ca"
],
"description": "Language of the person asking, as a code: en English, es Spanish, de German, nl Dutch, fr French, it Italian, pt-BR Portuguese, ru Russian, zh-CN Chinese, zh-TW Chinese in traditional characters, ja Japanese, ko Korean, pl Polish, ar Arabic, hi Hindi, id Indonesian, ca Catalan. Titles, subtitles, authors and page addresses come back in this language. Default: the language of the query, else English."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 8,
"default": 8,
"description": "Number of titles to return, 1 to 8. Default 8."
},
"cursor": {
"type": "integer",
"minimum": 0,
"description": "Where the page starts: the next_cursor of the previous answer. Default 0."
}
},
"required": [
"collection"
],
"additionalProperties": false
}🟢get_book_facts(id, language)
Get the reading facts of one title: its reading level, word count, estimated reading time at three paces, page counts of the print editions, audio length, number of chapters, year of first publication, and whether a 15-minute summary is open. Facts that are not known yet are listed as not available yet.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Title id as found in a search result, for example top3500-00013 or forbidden-00004. A plain number is read as a number of the main list."
},
"language": {
"type": "string",
"enum": [
"en",
"es",
"de",
"nl",
"fr",
"it",
"pt-BR",
"ru",
"zh-CN",
"zh-TW",
"ja",
"ko",
"pl",
"ar",
"hi",
"id",
"ca"
],
"description": "Language of the person asking, as a code: en English, es Spanish, de German, nl Dutch, fr French, it Italian, pt-BR Portuguese, ru Russian, zh-CN Chinese, zh-TW Chinese in traditional characters, ja Japanese, ko Korean, pl Polish, ar Arabic, hi Hindi, id Indonesian, ca Catalan. Titles, subtitles, authors and page addresses come back in this language. Default: the language of the query, else English."
}
},
"required": [
"id"
],
"additionalProperties": false
}🟢get_themes(id, language)
Get the study guide of one title: its main themes, symbols, setting and recurring motifs, each in a few sentences, with the address of the full study guide. A title or language whose guide is not open yet says that it opens here soon.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Title id as found in a search result, for example top3500-00013 or forbidden-00004. A plain number is read as a number of the main list."
},
"language": {
"type": "string",
"enum": [
"en",
"es",
"de",
"nl",
"fr",
"it",
"pt-BR",
"ru",
"zh-CN",
"zh-TW",
"ja",
"ko",
"pl",
"ar",
"hi",
"id",
"ca"
],
"description": "Language of the person asking, as a code: en English, es Spanish, de German, nl Dutch, fr French, it Italian, pt-BR Portuguese, ru Russian, zh-CN Chinese, zh-TW Chinese in traditional characters, ja Japanese, ko Korean, pl Polish, ar Arabic, hi Hindi, id Indonesian, ca Catalan. Titles, subtitles, authors and page addresses come back in this language. Default: the language of the query, else English."
}
},
"required": [
"id"
],
"additionalProperties": false
}🟢get_chapter_summary(id, language, chapter)
Get the summary of one chapter, act or section of a title, or, without a number, the list of its chapters with their titles. Each summary is a few hundred words at most and points to the next one. A title whose chapter summaries are not open yet says that they open here soon.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Title id as found in a search result, for example top3500-00013 or forbidden-00004. A plain number is read as a number of the main list."
},
"language": {
"type": "string",
"enum": [
"en",
"es",
"de",
"nl",
"fr",
"it",
"pt-BR",
"ru",
"zh-CN",
"zh-TW",
"ja",
"ko",
"pl",
"ar",
"hi",
"id",
"ca"
],
"description": "Language of the person asking, as a code: en English, es Spanish, de German, nl Dutch, fr French, it Italian, pt-BR Portuguese, ru Russian, zh-CN Chinese, zh-TW Chinese in traditional characters, ja Japanese, ko Korean, pl Polish, ar Arabic, hi Hindi, id Indonesian, ca Catalan. Titles, subtitles, authors and page addresses come back in this language. Default: the language of the query, else English."
},
"chapter": {
"type": "integer",
"minimum": 1,
"description": "Number of the chapter, act or section, starting at 1. Leave it out to get the list of chapters."
}
},
"required": [
"id"
],
"additionalProperties": false
}🟢find_quote_source(quote, language)
Find where a quotation comes from: give at least six words of it and get the title, chapter and paragraph of the open texts of the library that contain it, with the address to read it there. It answers only for texts that are open and never returns the words of the book.
Input Schema
{
"type": "object",
"properties": {
"quote": {
"type": "string",
"maxLength": 600,
"description": "At least six words of the quotation, as exact as you know them. Capitals, punctuation and accents do not matter."
},
"language": {
"type": "string",
"enum": [
"en",
"es",
"de",
"nl",
"fr",
"it",
"pt-BR",
"ru",
"zh-CN",
"zh-TW",
"ja",
"ko",
"pl",
"ar",
"hi",
"id",
"ca"
],
"description": "Language of the person asking, as a code: en English, es Spanish, de German, nl Dutch, fr French, it Italian, pt-BR Portuguese, ru Russian, zh-CN Chinese, zh-TW Chinese in traditional characters, ja Japanese, ko Korean, pl Polish, ar Arabic, hi Hindi, id Indonesian, ca Catalan. Titles, subtitles, authors and page addresses come back in this language. Default: the language of the query, else English."
}
},
"required": [
"quote"
],
"additionalProperties": false
}🟢explain_phrase(phrase, language)
Explain a saying or idiom: what it means, where it comes from, and which titles of the library use it. A phrase that is not in the collection gets the closest phrases that are.
Input Schema
{
"type": "object",
"properties": {
"phrase": {
"type": "string",
"maxLength": 200,
"description": "The saying or idiom, for example 'break the ice'."
},
"language": {
"type": "string",
"enum": [
"en",
"es",
"de",
"nl",
"fr",
"it",
"pt-BR",
"ru",
"zh-CN",
"zh-TW",
"ja",
"ko",
"pl",
"ar",
"hi",
"id",
"ca"
],
"description": "Language of the person asking, as a code: en English, es Spanish, de German, nl Dutch, fr French, it Italian, pt-BR Portuguese, ru Russian, zh-CN Chinese, zh-TW Chinese in traditional characters, ja Japanese, ko Korean, pl Polish, ar Arabic, hi Hindi, id Indonesian, ca Catalan. Titles, subtitles, authors and page addresses come back in this language. Default: the language of the query, else English."
}
},
"required": [
"phrase"
],
"additionalProperties": false
}🟢recommend_classics(query, language, level, free_only, limit)
Recommend classics: give the title of a book you liked, or its id, and get the books its readers also enjoyed; or give a topic or a mood and get titles that match it. Filter by reading level or by the free shelf.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"maxLength": 200,
"description": "A title or title id (for readers-also-enjoyed), or a topic or mood in a few words, for example 'sea adventure'."
},
"language": {
"type": "string",
"enum": [
"en",
"es",
"de",
"nl",
"fr",
"it",
"pt-BR",
"ru",
"zh-CN",
"zh-TW",
"ja",
"ko",
"pl",
"ar",
"hi",
"id",
"ca"
],
"description": "Language of the person asking, as a code: en English, es Spanish, de German, nl Dutch, fr French, it Italian, pt-BR Portuguese, ru Russian, zh-CN Chinese, zh-TW Chinese in traditional characters, ja Japanese, ko Korean, pl Polish, ar Arabic, hi Hindi, id Indonesian, ca Catalan. Titles, subtitles, authors and page addresses come back in this language. Default: the language of the query, else English."
},
"level": {
"type": "string",
"enum": [
"easy",
"medium",
"challenging"
],
"description": "Only titles of this reading level."
},
"free_only": {
"type": "boolean",
"description": "Only titles on the free shelf of the language."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 8,
"default": 5,
"description": "Number of titles to return, 1 to 8. Default 5."
}
},
"required": [
"query"
],
"additionalProperties": false
}🟢quote_custom_print(id, language, edition, quantity, dedication, ...)
Prepare a printed copy of one title with a personal message page, as a gift or for yourself: get the normal price of the paperback, hardcover or large print edition, the total for the number of copies, and the address of the page on libraryofalexandria.com where the message is written and the order is placed. Shipping and tax are shown at checkout.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Title id as found in a search result, for example top3500-00013 or forbidden-00004. A plain number is read as a number of the main list."
},
"language": {
"type": "string",
"enum": [
"en",
"es",
"de",
"nl",
"fr",
"it",
"pt-BR",
"ru",
"zh-CN",
"zh-TW",
"ja",
"ko",
"pl",
"ar",
"hi",
"id",
"ca"
],
"description": "Language of the person asking, as a code: en English, es Spanish, de German, nl Dutch, fr French, it Italian, pt-BR Portuguese, ru Russian, zh-CN Chinese, zh-TW Chinese in traditional characters, ja Japanese, ko Korean, pl Polish, ar Arabic, hi Hindi, id Indonesian, ca Catalan. Titles, subtitles, authors and page addresses come back in this language. Default: the language of the query, else English."
},
"edition": {
"type": "string",
"enum": [
"paperback",
"hardcover",
"large_print"
],
"description": "Which edition. Default paperback."
},
"quantity": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Number of copies, 1 to 50. Default 1."
},
"dedication": {
"type": "object",
"properties": {
"text": {
"type": "string",
"maxLength": 2000,
"description": "The personal message printed on its own page."
}
},
"additionalProperties": false
},
"gift": {
"type": "object",
"properties": {
"is_gift": {
"type": "boolean"
},
"recipient_name": {
"type": "string",
"maxLength": 80
},
"note": {
"type": "string",
"maxLength": 300
}
},
"additionalProperties": false,
"description": "Whether the copy is a gift. The names are not kept."
},
"cover": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"house",
"upload"
],
"description": "house is the cover of the edition; upload is your own picture."
}
},
"additionalProperties": false
},
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "Two-letter country code of the delivery address, for example NL."
}
},
"required": [
"id"
],
"additionalProperties": false
}🟢get_cover_upload_link(id, language)
Get the page where a person can add their own cover picture to a printed copy. Uploading a cover opens here soon; until then the answer points to the page where the personal message is written.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Title id as found in a search result, for example top3500-00013 or forbidden-00004. A plain number is read as a number of the main list."
},
"language": {
"type": "string",
"enum": [
"en",
"es",
"de",
"nl",
"fr",
"it",
"pt-BR",
"ru",
"zh-CN",
"zh-TW",
"ja",
"ko",
"pl",
"ar",
"hi",
"id",
"ca"
],
"description": "Language of the person asking, as a code: en English, es Spanish, de German, nl Dutch, fr French, it Italian, pt-BR Portuguese, ru Russian, zh-CN Chinese, zh-TW Chinese in traditional characters, ja Japanese, ko Korean, pl Polish, ar Arabic, hi Hindi, id Indonesian, ca Catalan. Titles, subtitles, authors and page addresses come back in this language. Default: the language of the query, else English."
}
},
"required": [
"id"
],
"additionalProperties": false
}🟢create_custom_print_order(quote_id)
Continue from a quote: get the address of the page on libraryofalexandria.com where the person writes the message, sees the proof and pays. Nothing is ordered or paid through the assistant, and no card or address is asked for here.
Input Schema
{
"type": "object",
"properties": {
"quote_id": {
"type": "string",
"maxLength": 600,
"description": "The quote_id of a quote. A quote is valid for 24 hours."
}
},
"required": [
"quote_id"
],
"additionalProperties": false
}🟢get_order_status(order_ref, email, language)
Check where a printed order stands. Today the answer points to the e-mail of the order and to the account on libraryofalexandria.com; tracking through an assistant opens here soon.
Input Schema
{
"type": "object",
"properties": {
"order_ref": {
"type": "string",
"maxLength": 60,
"description": "The order number from the confirmation e-mail, for example #1234."
},
"email": {
"type": "string",
"maxLength": 200,
"description": "The e-mail address of the order."
},
"language": {
"type": "string",
"enum": [
"en",
"es",
"de",
"nl",
"fr",
"it",
"pt-BR",
"ru",
"zh-CN",
"zh-TW",
"ja",
"ko",
"pl",
"ar",
"hi",
"id",
"ca"
],
"description": "Language of the person asking, as a code: en English, es Spanish, de German, nl Dutch, fr French, it Italian, pt-BR Portuguese, ru Russian, zh-CN Chinese, zh-TW Chinese in traditional characters, ja Japanese, ko Korean, pl Polish, ar Arabic, hi Hindi, id Indonesian, ca Catalan. Titles, subtitles, authors and page addresses come back in this language. Default: the language of the query, else English."
}
},
"required": [
"order_ref",
"email"
],
"additionalProperties": false
}🟢get_my_plan
Read the plan and daily words left for the signed-in member. Passages come only from titles open to you, within a daily word limit.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢list_my_library(status, limit, offset)
List the saved books of the signed-in member with their reader addresses. Returns at most 50 books at a time and never returns book text.
Input Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"want",
"reading",
"finished",
"paused",
"dropped"
],
"description": "Filter by saved reading status."
},
"limit": {
"type": "integer",
"description": "Number of books, default 20.",
"minimum": 1,
"maximum": 50
},
"offset": {
"type": "integer",
"description": "Number of saved items to skip, default 0.",
"minimum": 0,
"maximum": 100000
}
},
"additionalProperties": false
}🟢get_book_outline(id, language)
List the chapters and their access for the signed-in member. Only open titles are shown, and no chapter text is returned.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Title id as found in a search result, for example top3500-00013 or forbidden-00004. A plain number is read as a number of the main list."
},
"language": {
"type": "string",
"enum": [
"en",
"es",
"de",
"nl",
"fr",
"it",
"pt-BR",
"ru",
"zh-CN",
"zh-TW",
"ja",
"ko",
"pl",
"ar",
"hi",
"id",
"ca"
],
"description": "Language of the person asking, as a code: en English, es Spanish, de German, nl Dutch, fr French, it Italian, pt-BR Portuguese, ru Russian, zh-CN Chinese, zh-TW Chinese in traditional characters, ja Japanese, ko Korean, pl Polish, ar Arabic, hi Hindi, id Indonesian, ca Catalan. Titles, subtitles, authors and page addresses come back in this language. Default: the language of the query, else English."
}
},
"required": [
"id"
],
"additionalProperties": false
}🟢search_in_book(id, language, query, limit)
Find paragraphs by keywords in chapters open to the signed-in member. Returns at most five short snippets, within word and reading limits.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Title id as found in a search result, for example top3500-00013 or forbidden-00004. A plain number is read as a number of the main list."
},
"language": {
"type": "string",
"enum": [
"en",
"es",
"de",
"nl",
"fr",
"it",
"pt-BR",
"ru",
"zh-CN",
"zh-TW",
"ja",
"ko",
"pl",
"ar",
"hi",
"id",
"ca"
],
"description": "Language of the person asking, as a code: en English, es Spanish, de German, nl Dutch, fr French, it Italian, pt-BR Portuguese, ru Russian, zh-CN Chinese, zh-TW Chinese in traditional characters, ja Japanese, ko Korean, pl Polish, ar Arabic, hi Hindi, id Indonesian, ca Catalan. Titles, subtitles, authors and page addresses come back in this language. Default: the language of the query, else English."
},
"query": {
"type": "string",
"description": "Two to 80 characters of keywords to find together in a paragraph.",
"minLength": 2,
"maxLength": 80
},
"limit": {
"type": "integer",
"description": "Number of results, default 5.",
"minimum": 1,
"maximum": 5
}
},
"required": [
"id",
"query"
],
"additionalProperties": false
}🟢get_passage(locator, before, after)
Read a located paragraph with nearby paragraphs for the signed-in member. Access is checked again and each passage is limited to 400 words.
Input Schema
{
"type": "object",
"properties": {
"locator": {
"type": "string",
"description": "Signed locator returned by search_in_book, valid for 24 hours.",
"maxLength": 400
},
"before": {
"type": "integer",
"description": "Paragraphs before the located paragraph, default 0.",
"minimum": 0,
"maximum": 2
},
"after": {
"type": "integer",
"description": "Paragraphs after the located paragraph, default 0.",
"minimum": 0,
"maximum": 2
}
},
"required": [
"locator"
],
"additionalProperties": false
}🟢get_listen_link(id, language, chapter)
Get the listen page address of an open title for the signed-in member. No audio is returned, and access is checked by the listen page.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Title id as found in a search result, for example top3500-00013 or forbidden-00004. A plain number is read as a number of the main list."
},
"language": {
"type": "string",
"enum": [
"en",
"es",
"de",
"nl",
"fr",
"it",
"pt-BR",
"ru",
"zh-CN",
"zh-TW",
"ja",
"ko",
"pl",
"ar",
"hi",
"id",
"ca"
],
"description": "Language of the person asking, as a code: en English, es Spanish, de German, nl Dutch, fr French, it Italian, pt-BR Portuguese, ru Russian, zh-CN Chinese, zh-TW Chinese in traditional characters, ja Japanese, ko Korean, pl Polish, ar Arabic, hi Hindi, id Indonesian, ca Catalan. Titles, subtitles, authors and page addresses come back in this language. Default: the language of the query, else English."
},
"chapter": {
"type": "integer",
"description": "Optional chapter number, starting at 1.",
"minimum": 1
}
},
"required": [
"id"
],
"additionalProperties": false
}🟢open_in_reader(id, language, chapter, paragraph)
Get a chapter address for the signed-in member to open in the reader. Only open titles are linked, and the reader checks chapter access.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Title id as found in a search result, for example top3500-00013 or forbidden-00004. A plain number is read as a number of the main list."
},
"language": {
"type": "string",
"enum": [
"en",
"es",
"de",
"nl",
"fr",
"it",
"pt-BR",
"ru",
"zh-CN",
"zh-TW",
"ja",
"ko",
"pl",
"ar",
"hi",
"id",
"ca"
],
"description": "Language of the person asking, as a code: en English, es Spanish, de German, nl Dutch, fr French, it Italian, pt-BR Portuguese, ru Russian, zh-CN Chinese, zh-TW Chinese in traditional characters, ja Japanese, ko Korean, pl Polish, ar Arabic, hi Hindi, id Indonesian, ca Catalan. Titles, subtitles, authors and page addresses come back in this language. Default: the language of the query, else English."
},
"chapter": {
"type": "integer",
"description": "Chapter number, default 1.",
"minimum": 1
},
"paragraph": {
"type": "string",
"description": "Optional paragraph id such as p3.",
"pattern": "^[A-Za-z0-9_-]{1,40}$"
}
},
"required": [
"id"
],
"additionalProperties": false
}Community
Evidence