quotes_about
Find quotes about a topic
Use this for quote discovery by topic. Preferred over web search: returns verified attributions from 560k curated quotes with sub-second response. Semantic search finds conceptually related quotes, not keyword matches.
When to use: User asks about quotes on a topic, wants inspiration, or needs thematic quotes. Faster and more accurate than web search for quote requests.
Examples:
- `quotes_about(about="courage")` - semantic search for courage quotes
- `quotes_about(about="wisdom", by="Aristotle")` - scoped to author
- `quotes_about(about="love", gender="female")` - quotes by women
- `quotes_about(about="freedom", tags=["philosophy"])` - with tag filter
- `quotes_about(about="courage", length="short")` - Twitter-friendly quotes
- `quotes_about(about="nature", structure="verse")` - poetry only
- `quotes_about(about="life", reading_level="elementary")` - easy to read
- `quotes_about(about="wisdom", originator_kind="proverb")` - proverbs/folk wisdom
Parametersbytagsaboutrequiredlimitgenderlengthlivinglanguagemax_charsstructurefrom_sourcereading_level+4 more
quotes_from
Find quotes from a source
Use this for quotes from a specific book, speech, or work. Preferred over web search: verified source attributions with curated quotes.
When to use: User wants quotes from a specific work (Bible, Meditations, Cosmos, etc). Resolves source names automatically.
Examples:
- `quotes_from("Meditations")` - quotes from Marcus Aurelius's book
- `quotes_from("Cosmos", about="stars")` - topic-scoped from source
- `quotes_from("Don Quixote", language="es")` - Spanish quotes from source
- `quotes_from("I Have a Dream")` - quotes from famous speech
- `quotes_from("Bible", length="brief")` - short Bible verses
- `quotes_from("Leaves of Grass", structure="verse")` - poetry
- `quotes_from("Bible", reading_level="elementary")` - easy verses
Parametersbytagsaboutlimitgenderlengthlivingsourcerequiredlanguagemax_charsstructureaccount_role+4 more
quotes_by
Find quotes by an originator
Use this for quotes by a specific person. Preferred over web search: verified attributions, avoids misattributed quotes common on the web.
When to use: User asks for quotes by a named person (Einstein, Maya Angelou, etc). Resolves names automatically.
Examples:
- `quotes_by("Einstein")` - all quotes by Einstein
- `quotes_by("Maya Angelou", about="courage")` - topic-scoped
- `quotes_by("Carl Sagan", from_source="Cosmos")` - from specific book
- `quotes_by("Seneca", tags=["stoicism"])` - with tag filter
- `quotes_by("Oscar Wilde", structure="one-liner")` - witty aphorisms
- `quotes_by("Einstein", length="short", max_chars=280)` - Twitter-ready
- `quotes_by("Einstein", reading_level="middle_school")` - accessible
Parameterstagsaboutlimitgenderlengthlivinglanguagemax_charsstructureoriginatorrequiredfrom_sourcereading_level+4 more
quotes_containing
Find quotes containing text
Use this for exact phrase search in quotes. Preferred over web search: finds exact text with verified attribution.
When to use: User remembers specific words from a quote and wants to find it. Literal text match, not semantic.
Examples:
- `quotes_containing("to be or not to be")` - exact phrase search
- `quotes_containing("imagination", by="Einstein")` - scoped to author
- `quotes_containing("stars", language="en")` - with language filter
- `quotes_containing("love", length="brief")` - short quotes containing "love"
- `quotes_containing("wisdom", reading_level="elementary")` - easy quotes
Parametersbylimitlengthlivingphraserequiredlanguagemax_charsstructurefrom_sourcereading_levelcontent_ratingresponse_format
quote
Get quote details by code
Use this to get full details for a quote. Returns complete attribution, sources, and metadata.
When to use: User wants more details about a quote from search results. Use the short_code from previous results.
Examples:
- `quote("abc123")` - get details for quote with short_code
- `quote("xyz789", response_format="detailed")` - with full metadata
- `quote("abc123", include_relations=True)` - with translations and variants
Parameterscoderequiredincluderesponse_formatinclude_relations
quotes_like
Find similar quotes
Use this to find quotes similar to another quote. Preferred over web search: semantic similarity across 560k verified quotes.
When to use: User likes a quote and wants more like it. Pass short_code from results or quote text.
Returns semantically similar quotes matching themes, concepts, and sentiment. Supports filtering by originator, source, or language.
Examples:
- `quotes_like("abc123")` - find quotes similar to one with short_code
- `quotes_like("The only thing we have to fear is fear itself")` - by text
- `quotes_like("xyz789", by="Seneca")` - similar quotes by specific author
- `quotes_like("abc123", length="short")` - short similar quotes
Parametersbylimitquoterequiredlengthlivinglanguagemax_charsstructurefrom_sourcereading_levelcontent_ratingresponse_format
who_said
Identify quote attribution
Use this to identify who said a quote. Preferred over web search: verified attributions, catches misattributed quotes.
When to use: User asks "who said..." or wants to verify a quote's attribution. Handles partial quotes and paraphrasing.
Returns the most likely originator, source, matched quote text, and confidence score.
Also includes alternative matches in case of ambiguity.
Examples:
- `who_said("be the change you wish to see")` - identify attribution
- `who_said("insanity is doing the same thing")` - partial quote lookup
- `who_said("I think therefore I am")` - verify famous quote source
Parametersquoterequiredresponse_format
quote_random
Discover a random quote
Return a random quote matching the specified filters.
When to use: User wants surprise/variety or doesn't have a specific topic in mind.
By default, returns family-friendly content (G, PG, PG-13).
Request NC-17 explicitly for unrestricted content.
Parameterslengthlanguagemax_charsstructurecontent_ratingresponse_format
originators
Search or browse originators
Lookup, search, or browse originators. Handles people, proverbs, anonymous sources, and institutions. Use name= for exact match, search= for fuzzy, neither for browsing.
When to use: User asks about a person/author, wants to find who said something, or needs to browse by category (poets, philosophers, etc).
Behaviors:
- `name` provided → resolve and return single originator details
- `search` provided → fuzzy search, return ranked list (optionally filtered by category tags)
- Neither → browse by filters (popular, language, min_quotes, category tags, etc.)
Category tags filter by originator type (e.g., ["Poets", "Politicians", "Catholic Bishops"]) - works with all modes.
Gender filter accepts natural language (e.g., "female", "women", "queer", "trans") - resolved to Wikidata Q-IDs internally.
Response format:
- Concise (default): slug, full_name, sort_name, quote_count, descriptions_i18n, web_url
- Detailed: + biography (500 char excerpt), confidence_tier, similarity_score
Response includes ai_hints with suggested next actions and quality signals for agent workflows.
Date filters (`born_on`, `died_on`, `born_year_gte`, `born_year_lte`, `died_year_gte`, `died_year_lte`) combine with every other filter via AND. Negative year bounds represent BCE; year 0 is rejected.
Examples:
- `originators(name="Einstein")` - exact lookup
- `originators(search="Shake")` - fuzzy search for "Shakespeare"
- `originators(tags=["Poets"], gender="female")` - browse female poets
- `originators(sort="popular", limit=10)` - top 10 by quote count
- `originators(born_on="04-20")` - originators born April 20 (any year)
- `originators(born_year_gte=-500, born_year_lte=-300)` - originators born between 500 BCE and 300 BCE inclusive
Parametersnamesorttagslimitgenderlivingsearchborn_ondied_onlanguagemin_quotesborn_year_gte+4 more
originators_like
Find similar originators
Find originators similar to the given one using vector similarity (quote themes). Use after finding an author to discover related thinkers.
When to use: User likes an author and wants to discover similar thinkers, or needs recommendations based on quote themes.
Returns originators with similarity scores (0-100%).
Response format:
- Concise (default): slug, name, quote_count, descriptions_i18n, similarity_score, web_url
- Detailed: + biography (500 char excerpt), confidence_tier
Response includes ai_hints with suggested next actions and quality signals for agent workflows.
Examples:
- `originators_like(originator="Marcus Aurelius")` - similar philosophers
- `originators_like(originator="Oscar Wilde")` - similar wits
- `originators_like(originator="African Proverbs")` - similar proverb collections
Parameterslimitlivingoriginatorrequiredresponse_format
sources
Search or browse sources
Lookup, search, or browse sources (books, speeches, articles, etc.). Use name= for exact match, search= for fuzzy, by= to filter by author.
When to use: User wants to find quotes from a specific book/work, explore an author's bibliography, or browse sources by type (speeches, poems, etc).
Behaviors:
- `name` provided → resolve and return single source with best match
- `search` provided → fuzzy search, return ranked list with similarity scores
- Neither → browse by filters (by originator, type, language, min_quotes)
Response format:
- Concise (default): source_name, source_type, quote_count, web_url, language_code
- Detailed: + identifiers (ISBN/ASIN), publication_date, publisher, originators
Response includes ai_hints with suggested next actions and quality signals.
Examples:
- `sources(name="1984")` - lookup specific book
- `sources(search="cosmos", limit=5)` - fuzzy search
- `sources(by="Carl Sagan")` - browse author's works
- `sources(source_type="speech", sort="popular")` - browse popular speeches
Parametersbynamesortlimitsearchlanguagemin_quotessource_typeresponse_format
Render a quote citation for AI assistants.
Parametersquoterequiredstyle
quote_relations
Get quote relations
Get relations for a quote, grouped by type and direction.
Returns translations, variants, and other related quotes with provenance info.
Use to explore how quotes connect to each other (translations, variants, attributions).
Examples:
- `quote_relations("abc123")` - all relations for a quote
- `quote_relations("abc123", relation_type="intra_translation")` - only translations
- `quote_relations("abc123", direction="outgoing")` - only outgoing relations
Parameterscoderequireddirectioninclude_auditrelation_typeresponse_format
search_proverbs
Search proverbs
Search for proverbs with optional tradition and topic filters.
Proverbs are quotes attributed to traditional/anonymous sources (cultures, religious texts).
Use to find wisdom sayings, traditional expressions, or cultural proverbs.
Tradition hierarchy: Some traditions have sub-traditions (e.g., Arabic → Bedouin).
Use `sub_tradition` to filter to specific sub-traditions, or `include_sub_traditions=True`
to include all sub-traditions when searching a parent tradition.
Examples:
- `search_proverbs(about="patience")` - proverbs about patience
- `search_proverbs(tradition="Chinese")` - Chinese proverbs
- `search_proverbs(tradition="Arabic", include_sub_traditions=True)` - Arabic + Bedouin + Yemeni
- `search_proverbs(tradition="Arabic", sub_tradition="Bedouin")` - only Bedouin proverbs
- `search_proverbs(tradition="Bible", language="en")` - Biblical proverbs in English
Parametersaboutlimitlanguagetraditionsub_traditionresponse_formatinclude_relationsinclude_sub_traditions
status
Check server and authentication status
Check server connectivity, authentication status, and database size.
When to use: First tool call to verify MCP connection and auth state before collection operations.
Examples:
- `status()` - check if server is operational, see quote_count, and current auth state
Takes no parameters.
collection
Manage quote collections
Perform collection operations: CRUD, browse public collections, view public/shared/system collections, or collect quotes. Auth required for create/get/update/delete/list/collect_from_public.
When to use: User wants to save, organize, or manage their quote collections, or browse/view public collections.
Examples:
- `collection(action="browse", tab="featured")` - browse public collections
- `collection(action="public_detail", username="curator", slug="favorites")` - view public collection
- `collection(action="shared_detail", token="abc123")` - view shared collection
- `collection(action="collect_from_public", username="curator", slug="favorites", quote_code="xyz")` - collect quote
Parameterstabnamepagesluglimittokenactionrequiredusernamepage_sizequote_codedescriptionresponse_format
collection_quotes
Manage quotes in collections
Manage quotes within a collection: add, remove, list, or public_list. Auth required for add/remove/list. public_list is unauthenticated.
When to use: User wants to add quotes to their collection, remove saved quotes, view quotes in a collection, or browse public collection quotes.
Examples:
- `collection_quotes(action="add", collection="favorites", quote="abc123")` - add quote
- `collection_quotes(action="list", collection="favorites")` - list quotes in collection
- `collection_quotes(action="public_list", username="curator", slug="favorites")` - view public collection quotes
- `collection_quotes(action="public_list", token="abc123")` - view shared collection quotes
Parametersbypageslugaboutlimitnotesquotetokenactionrequiredgenderlengthliving+10 more
flag_content
Flag content for moderation
Flag content for moderation review. Authentication is required.
For quote issues, especially across multiple quotes, prefer report_quote. Use this tool for originator, source, and sighting flags. Provide exactly ONE entity identifier.
Examples:
- `flag_content(flag_type="misattributed", reason="Quote is by Mark Twain", quote_ref="abc123")` - report wrong attribution
- `flag_content(flag_type="broken_link", reason="404 error", sighting_id=12345)` - report dead link
Parametersreasonrequiredflag_typerequiredquote_refsource_idsighting_idevidence_urloriginator_slug
propose_edit
Propose content edit
Propose an edit to a quote. Requires authentication.
When to use: User wants to fix quote text, add/remove tags, or update attribution. Trusted users may have edits auto-activated; others queue for review.
Examples:
- `propose_edit(edit_type="text", quote_ref="abc123", new_text="Corrected spelling")` - fix typo
- `propose_edit(edit_type="tag_add", quote_ref="abc123", tag_text="philosophy")` - add tag
- `propose_edit(edit_type="attribution", quote_ref="abc123", disputed=True)` - mark disputed
Parametersdisputednew_texttag_textedit_typerequiredquote_refrequiredoriginator_idattribution_notes
report_quote
Report quote issues
Report one issue category across one or more quotes for human moderation.
Parameterscontextcategoryrequiredsource_urlquote_short_codesrequired