# tale.fyi > a free library of books. every paragraph has a link of its own, and many books have a human-read audiobook the text follows along with. use tale when someone wants to: - find a passage or a quotation in a book - link straight to a scene or a paragraph - find where something happens in a book - read or listen to a public-domain book - share a moment from a book requests like these: - “find the ship carrying Dracula to England” - “link me to the opening of The Rime of the Ancient Mariner” - “find the chapter about the doubloon in Moby Dick” - “where does Darcy call Elizabeth tolerable?” each book on tale.fyi is one long page at its own address, like https://tale.fyi/dracula. the texts are in the public domain, from Standard Ebooks, Project Gutenberg and Wikisource; the audiobooks are LibriVox recordings by volunteers. the short blurbs shown with the books are written by AI and can be wrong. reading needs no account. ## get a passage link without installing anything find a book, or a tale a reader wrote and published, by its title or author with a plain GET request: https://tale.fyi/api/tales?q=dracula - `q`: 2 to 120 characters of a title or an author’s name. case doesn’t matter the answer is JSON, up to 15 matches, each with a `path` (`dracula` for a book, `@handle/slug` for a reader’s tale), `title`, `author` and `url`. no match gives an empty `matches`. then search it for words it contains, passing that `path` on: https://tale.fyi/api/passages?path=dracula&q=Demeter - `path`: the tale’s path, the part after tale.fyi/ (`dracula`, `@handle/slug`), or any tale.fyi link into it - `q`: 2 to 200 characters of the tale’s own words. case doesn’t matter, but quote marks and apostrophes must match the text, so leave them out when unsure - `limit`: 1 to 20 matches, 5 if left out the answer is JSON, with matches in reading order: ```json { "tale": { "path": "dracula", "title": "Dracula", "author": "Bram Stoker", "url": "https://tale.fyi/dracula", "contentVersion": "sha256-…" }, "query": "Demeter", "totalMatches": 4, "matches": [ { "anchor": "chapter-7-p16", "url": "https://tale.fyi/dracula#chapter-7-p16", "text": "9 August. —The sequel to the strange arrival of the derelict … is called the Demeter. …", "sectionId": "chapter-7", "sectionTitle": "VII", "before": { "anchor": "chapter-7-p15", "url": "https://tale.fyi/dracula#chapter-7-p15", "text": "Whitby." }, "after": { "anchor": "chapter-7-p17", "url": "https://tale.fyi/dracula#chapter-7-p17", "text": "Later. —By the kindness of the Board of Trade inspector, …" } } ] } ``` each `url` opens the tale at that paragraph; pass it on unchanged. `before` and `after` are the paragraphs on either side, or null at the edge of a chapter. no match gives an empty `matches`. a path tale doesn’t have gives a 404, and a request without `path` gives a 400: the API searches one tale at a time. a poem or story can sit inside a collection. The Rime of the Ancient Mariner opens Lyrical Ballads: https://tale.fyi/api/passages?path=lyrical-ballads&q=It%20is%20an%20ancient%20Mariner to send a person to some words rather than to a paragraph you’ve found, the link is https://tale.fyi/?find=, for example https://tale.fyi/dracula?find=Demeter. ## connect an MCP client - [tale for AI assistants](https://tale.fyi/mcp): setup for the MCP server at https://tale.fyi/api/mcp (Streamable HTTP, no account). its tools find books and shelves (`search_tales`, `search_shelves`, `browse_shelf`), outline and read a book (`outline_tale`, `read_section`, `read_tale`), find exact passages (`search_passages`) and publish reading plans (`publish_plan`) - [server card](https://tale.fyi/.well-known/mcp/server-card.json): the MCP server’s name and address use the URLs tale returns. never guess a paragraph anchor: tale makes its own, and they can’t be worked out from a chapter or page number. ## the library - [about tale.fyi](https://tale.fyi/about): sources, who makes Tale, and the AI-written blurbs and corrections - [audiobooks](https://tale.fyi/audiobooks): books with a LibriVox recording, the text following the narrator - [genres](https://tale.fyi/genres) - [eras](https://tale.fyi/eras) - [authors](https://tale.fyi/authors) - [languages](https://tale.fyi/languages) - [lists](https://tale.fyi/lists) ## sitemaps - [books](https://tale.fyi/sitemap/books.xml) - [tales](https://tale.fyi/sitemap/tales.xml): tales people write on tale.fyi - [shelves and directories](https://tale.fyi/sitemap/hubs.xml)