Quotes
liveBooksReferenceCitation-grade quote API with provenance and attribution checking. Curated public-domain corpus (Shakespeare, Twain, Wilde) plus full-text search across plays and novels — every quote returns work, year, speaker, and location (act/scene/chapter).
Tools
random_quoteReturn a random quote from the corpus, optionally filtered by author, fame, verification status, or tag. Each result includes citation: work, year, speaker (for plays/fiction), and source URL.
author_idoptstring—famous_onlyoptboolean—verified_onlyoptboolean—tagoptstring—Try it
search_quotesrequired: querySearch quotes by substring. Matches both canonical text and known popular paraphrases — searching for 'protest' finds Hamlet's 'The lady doth protest too much, methinks' even though the popular form '
queryreqstring—author_idoptstring—limitoptnumber—Try it
check_attributionrequired: textGiven a quote and (optionally) the author it is claimed to be by, return one of four verdicts: "verified" (genuine, with citation), "misattributed" (no primary source — popular but fake), "paraphrase_
textreqstring—claimed_authoroptstring—Try it
quote_by_locationrequired: author_id, work_titleLook up quotes by structural address within a work — act/scene for plays, chapter for novels. Example: author_id="william-shakespeare", work_title="Hamlet", act=3, scene=1 returns the "To be, or not t
author_idreqstring—work_titlereqstring—actoptnumber—sceneoptnumber—chapteroptnumber—Try it
list_authorsReturn all authors available in the corpus — each entry includes author id (used as input to other tools), display name, birth/death dates, and public-domain status.
No parameters required.
Try it
list_full_text_worksList works for which the full text (every scene, speech, and line) is loaded — beyond just the famous-quote excerpts. Use this to discover what is available for deep structural lookup via get_scene an
No parameters required.
Try it
get_scenerequired: author_id, work_slug, act, sceneReturn the full text of a specific scene from a play (every speech, every line, in order). Example: author_id="william-shakespeare", work_slug="hamlet", act=3, scene=1 returns the entire "To be, or no
author_idreqstring—work_slugreqstring—actreqnumber—scenereqnumber—Try it
get_actrequired: author_id, work_slug, actReturn the full text of an entire act (all scenes within it). Use this to read a full structural unit at once. Returned object contains nested scenes with their speeches and lines.
author_idreqstring—work_slugreqstring—actreqnumber—Try it
get_chapterrequired: author_id, work_slug, chapterReturn the full text of a chapter from a novel/prose work (all paragraphs in order). Example: author_id="oscar-wilde", work_slug="the-picture-of-dorian-gray", chapter=2 returns the entire chapter wher
author_idreqstring—work_slugreqstring—chapterreqnumber—Try it
Test with curl
The gateway speaks JSON-RPC 2.0 over HTTP POST. You can test any pack directly from the terminal.
curl -X POST https://gateway.pipeworx.io/quotes/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'curl -X POST https://gateway.pipeworx.io/quotes/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"random_quote","arguments":{}}}'Use with the SDK
Install @pipeworx/sdk to call tools from any TypeScript/Node project.
import { Pipeworx } from '@pipeworx/sdk';
const px = new Pipeworx();
const result = await px.call("random_quote", {});// Or ask in plain English:
const answer = await px.ask("citation-grade quote api with provenance and attribution checking");