accueil / serveurs / Recherche & Web / io.github.quotewise/mcp
io.github.quotewise/mcp
serveur MCP (Model Context Protocol) · Quotewise.io Quote Server 3.4.7
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que io.github.quotewise/mcp est sûr ?
Au dernier audit MCP Hub, le serveur MCP « io.github.quotewise/mcp » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 20 outils
- cite_quote≈ 146 tokens
Render a quote citation for AI assistants.
Paramètres, retour & exemple (2)
Paramètresquote· string · requis
Quote short code or supported legacy identifierstyle· string · optionnel
Citation style: casual, mla, chicago, apa, csl-json, or all
Exemple d'appel{"name": "cite_quote", "arguments": {"quote": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - collection≈ 687 tokens
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
Paramètres, retour & exemple (12)
Paramètrestab· ? · optionnel
Browse tab: featured, recent, or popularname· ? · optionnel
Collection name/slug (required for create/get/update/delete)page· ? · optionnel
Page numberslug· ? · optionnel
Collection slug for public_detail/system_detail/collect_from_publiclimit· integer · optionnel
Max results (list action)token· ? · optionnel
Share token for shared_detailaction· string · requis · create | get | update | delete | list | browse | public_detail | shared_detail
Collection operationusername· ? · optionnel
Username for public_detail/collect_from_publicpage_size· ? · optionnel
Items per pagequote_code· ? · optionnel
Quote short_code for collect_from_publicdescription· ? · optionnel
Collection description (used for create/update)response_format· string · optionnel · concise | detailed
Response detail level
Exemple d'appel{"name": "collection", "arguments": {"action": "create"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - collection_quotes≈ 1394 tokens
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
Paramètres, retour & exemple (22)
Paramètresby· ? · optionnel
Originator name (e.g., 'Einstein')page· integer · optionnel
Page number for paginationslug· ? · optionnel
Collection slug for public_list lookupabout· ? · optionnel
Semantic search within collection (e.g., 'courage'); requires a single named collection (not collection='all' — use quotes_about for global search)limit· integer · optionnel
Max results (list action)notes· ? · optionnel
Private notes for the quote (used with add action)quote· ? · optionnel
Quote short_code or ID (required for add/remove actions)token· ? · optionnel
Share token for public_list lookupaction· string · requis · add | remove | list | public_list
Quote operation: add, remove, list, or public_listgender· ? · optionnel
Filter by originator gender. Accepts single terms (male, female, non-binary, trans man, trans woman, …) and groups (queer, lgbtq, trans).length· ? · optionnel
Filter quotes by word-count category: brief (≤15 words), short (≤35 words), medium (36–100 words), long (101–200 words), or passage (201+ words).living· enum · optionnel · living | deceased
Filter quotes by originator living status (living/alive vs deceased/historical).framing· ? · optionnel
Curator editorial framing for the quote (used with add action)language· ? · optionnel
Language (e.g., 'en', 'French')username· ? · optionnel
Username for public_list lookupmax_chars· ? · optionnel
Max chars (280=Twitter, 500=Threads)structure· ? · optionnel
Structure: prose/verse/one-linercollection· ? · optionnel
Collection name/slug identifier. Use 'all' to search across all collections (not combinable with 'about' — semantic search requires a single named collection).circumstance· ? · optionnel
Per-collection circumstance override (used with add action)reading_level· ? · optionnel
Filter quotes by reading level (elementary/middle_school/high_school/college). Supported languages: en, es, fr, de, it, nl, ru, pt. Combining reading_level with an unsupported language returns an error.content_rating· ? · optionnel
Filter quotes by maximum MPAA-style content rating. Cumulative: requesting 'PG' includes G and PG content.response_format· string · optionnel · concise | detailed
Response detail level
Exemple d'appel{"name": "collection_quotes", "arguments": {"action": "add"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - flag_content≈ 489 tokens
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
Paramètres, retour & exemple (7)
Paramètresreason· string · requis
Explanation of the issue (required)flag_type· string · requis · spam | misattributed | typo | nested | broken_link
Type of flag: spam (advertising/promotional), misattributed (wrong author), typo (text error), nested (quote within quote), broken_link (dead URL)quote_ref· ? · optionnel
Quote short_code (6-char identifier, e.g., 'abc123')source_id· ? · optionnel
Source database IDsighting_id· ? · optionnel
QuoteSighting database ID (for broken_link flags)evidence_url· ? · optionnel
URL supporting the flag (e.g., QuoteInvestigator link)originator_slug· ? · optionnel
Originator slug (e.g., 'albert-einstein')
Exemple d'appel{"name": "flag_content", "arguments": {"reason": "texte", "flag_type": "spam"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - originators≈ 1496 tokens
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
Paramètres, retour & exemple (16)
Paramètresname· ? · optionnel
Exact lookup for originator name (resolved internally) → single resultsort· string · optionnel · popular | name | recent
Sort order for results when browsing (not using name/search)tags· ? · optionnel
Filter by originator category tags (e.g., ['Poets', 'Politicians', 'Catholic Bishops'])limit· integer · optionnel
Max resultsgender· ? · optionnel
Filter by originator gender. Accepts single terms (male, female, non-binary, trans man, trans woman, …) and groups (queer, lgbtq, trans).living· enum · optionnel · living | deceased
Filter quotes by originator living status (living/alive vs deceased/historical).search· ? · optionnel
Fuzzy search query for originators (minimum 2 characters) → multiple resultsborn_on· ? · optionnel
Filter by birth month-day. Strict 'MM-DD' (zero-padded, hyphen-separated). Matches ^\d{2}-\d{2}$. Uses exact birth_date only; EDTF is not consulted for month-day filters. Example: '04-20' for April 20.died_on· ? · optionnel
Filter by death month-day. Strict 'MM-DD' (zero-padded, hyphen-separated). Matches ^\d{2}-\d{2}$. Uses exact death_date only. Example: '12-25'.language· ? · optionnel
Filter by quote language (ISO 639-1 code, e.g., 'en', 'fr', 'de')min_quotes· ? · optionnel
Minimum quote count thresholdborn_year_gte· ? · optionnel
Lower-bound filter on birth-date year (inclusive). Non-zero signed integer. Negative values represent BCE years (e.g., -500 means 500 BCE). Year 0 is rejected — use -1 for 1 BCE or 1 for 1 CE. Falls back to birth_date_edtf when exact birth_date is null AND the EDTF value encodes a single specific year (BCE and approximate-year markers like '1850~' accepted; intervals like '1850/1852' and century-only values like '18XX' excluded).born_year_lte· ? · optionnel
Upper-bound filter on birth-date year (inclusive). Same semantics as born_year_gte. If only one bound is supplied, the other side is unbounded. When both are supplied, born_year_lte must be >= born_year_gte.died_year_gte· ? · optionnel
Lower-bound filter on death-date year (inclusive). Same semantics as born_year_gte, applied to death_date / death_date_edtf.died_year_lte· ? · optionnel
Upper-bound filter on death-date year (inclusive). Same semantics as born_year_lte, applied to death_date / death_date_edtf.response_format· string · optionnel · concise | detailed
Response detail level - concise (slug, name, quote_count, descriptions_i18n, web_url) or detailed (+ biography excerpt, confidence_tier, similarity_score)
Exemple d'appel{"name": "originators", "arguments": {"name": "texte", "sort": "popular", "tags": "texte", "limit": 1, "gender": "texte", "living": "living"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - originators_like≈ 485 tokens
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
Paramètres, retour & exemple (4)
Paramètreslimit· integer · optionnel
Max resultsliving· enum · optionnel · living | deceased
Filter quotes by originator living status (living/alive vs deceased/historical).originator· string · requis
Originator name to find similar ones for (resolved internally)response_format· string · optionnel · concise | detailed
Response detail level - concise (slug, name, quote_count, descriptions_i18n, web_url) or detailed (+ biography excerpt, confidence_tier, similarity_score)
Exemple d'appel{"name": "originators_like", "arguments": {"originator": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - propose_edit≈ 495 tokens
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
Paramètres, retour & exemple (7)
Paramètresdisputed· ? · optionnel
Mark attribution as disputed (for attribution edits)new_text· ? · optionnel
Corrected quote text (required for text edits)tag_text· ? · optionnel
Tag to add/remove (required for tag edits)edit_type· string · requis · text | tag_add | tag_remove | attribution
Type of edit: text (fix quote text), tag_add (add tag), tag_remove (remove tag), attribution (fix attribution)quote_ref· string · requis
Quote short_code (6-char identifier, required)originator_id· ? · optionnel
New originator ID (for attribution edits)attribution_notes· ? · optionnel
Notes about attribution (for attribution edits)
Exemple d'appel{"name": "propose_edit", "arguments": {"edit_type": "text", "quote_ref": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - quote≈ 321 tokens
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
Paramètres, retour & exemple (4)
Paramètrescode· string · requis
Quote code (e.g., 'abc123')include· ? · optionnel
Include extra data: 'collections'response_format· string · optionnel · concise | detailed
Response detail levelinclude_relations· boolean · optionnel
Include related quotes (translations, variants, etc.)
Exemple d'appel{"name": "quote", "arguments": {"code": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - quote_random≈ 454 tokens
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.
Paramètres, retour & exemple (6)
Paramètreslength· ? · optionnel
Filter quotes by word-count category: brief (≤15 words), short (≤35 words), medium (36–100 words), long (101–200 words), or passage (201+ words).language· ? · optionnel
Language code (e.g., 'en', 'es', 'de')max_chars· ? · optionnel
Maximum characters (e.g., 280 for Twitter)structure· ? · optionnel
Structure: prose (single line), verse (multi-line), one-liner (single sentence)content_rating· string · optionnel · G | PG | PG-13 | R | NC-17
Filter quotes by maximum MPAA-style content rating. Cumulative: requesting 'PG' includes G and PG content.response_format· string · optionnel · concise | detailed
Response detail level
Exemple d'appel{"name": "quote_random", "arguments": {"length": "texte", "language": "texte", "max_chars": "texte", "structure": "texte", "content_rating": "G", "response_format": "concise"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - quote_relations≈ 402 tokens
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
Paramètres, retour & exemple (5)
Paramètrescode· string · requis
Quote short_code (e.g., 'abc123')direction· ? · optionnel
Filter by direction: outgoing, incoming, or bothinclude_audit· boolean · optionnel
Include audit/non-displayable relation edges for trusted curator callersrelation_type· ? · optionnel
Filter by relation type: intra_translation, cross_translation, variant, revision_of, misattributed_from, semantic_equivalent, inspired_byresponse_format· string · optionnel · concise | detailed
Response detail level
Exemple d'appel{"name": "quote_relations", "arguments": {"code": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - quotes_about≈ 1271 tokens
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
Paramètres, retour & exemple (16)
Paramètresby· ? · optionnel
Originator name (e.g., 'Einstein')tags· ? · optionnel
Tag names (e.g., ['philosophy']). Use ['any'] for quotes with any tags.about· string · requis
Concept/idea to search semanticallylimit· integer · optionnel
Max resultsgender· ? · optionnel
Filter by originator gender. Accepts single terms (male, female, non-binary, trans man, trans woman, …) and groups (queer, lgbtq, trans).length· ? · optionnel
Filter quotes by word-count category: brief (≤15 words), short (≤35 words), medium (36–100 words), long (101–200 words), or passage (201+ words).living· enum · optionnel · living | deceased
Filter quotes by originator living status (living/alive vs deceased/historical).language· ? · optionnel
Language (e.g., 'en', 'French')max_chars· ? · optionnel
Max chars (280=Twitter, 500=Threads)structure· ? · optionnel
Structure: prose/verse/one-linerfrom_source· ? · optionnel
Source name (e.g., 'Cosmos'). Use 'any' for quotes with any source.reading_level· ? · optionnel
Filter quotes by reading level (elementary/middle_school/high_school/college). Supported languages: en, es, fr, de, it, nl, ru, pt. Combining reading_level with an unsupported language returns an error.content_rating· ? · optionnel
Filter quotes by maximum MPAA-style content rating. Cumulative: requesting 'PG' includes G and PG content.originator_kind· enum · optionnel · person | tradition | character | organization | collective | anonymous | work | lore
Filter quotes by originator kind: person, tradition (proverb/folk/saying), character (fictional), organization, collective, anonymous, work, lore, agent (AI).response_format· string · optionnel · concise | detailed
Response detail levelexclude_misattributed· boolean · optionnel
Exclude misattributed quotes (default True)
Exemple d'appel{"name": "quotes_about", "arguments": {"about": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - quotes_by≈ 1222 tokens
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
Paramètres, retour & exemple (16)
Paramètrestags· ? · optionnel
Tag names (e.g., ['philosophy']). Use ['any'] for quotes with any tags.about· ? · optionnel
Topic (semantic, e.g., 'courage', 'love')limit· integer · optionnel
Max resultsgender· ? · optionnel
Filter by originator gender. Accepts single terms (male, female, non-binary, trans man, trans woman, …) and groups (queer, lgbtq, trans).length· ? · optionnel
Filter quotes by word-count category: brief (≤15 words), short (≤35 words), medium (36–100 words), long (101–200 words), or passage (201+ words).living· enum · optionnel · living | deceased
Filter quotes by originator living status (living/alive vs deceased/historical).language· ? · optionnel
Language (e.g., 'en', 'French')max_chars· ? · optionnel
Max chars (280=Twitter, 500=Threads)structure· ? · optionnel
Structure: prose/verse/one-lineroriginator· string · requis
Originator name (e.g., 'Einstein', 'Shakespeare')from_source· ? · optionnel
Source name (e.g., 'Cosmos', 'Meditations'). Use 'any' for quotes with any source.reading_level· ? · optionnel
Filter quotes by reading level (elementary/middle_school/high_school/college). Supported languages: en, es, fr, de, it, nl, ru, pt. Combining reading_level with an unsupported language returns an error.content_rating· ? · optionnel
Filter quotes by maximum MPAA-style content rating. Cumulative: requesting 'PG' includes G and PG content.originator_kind· enum · optionnel · person | tradition | character | organization | collective | anonymous | work | lore
Filter quotes by originator kind: person, tradition (proverb/folk/saying), character (fictional), organization, collective, anonymous, work, lore, agent (AI).response_format· string · optionnel · concise | detailed
Response detail levelexclude_misattributed· boolean · optionnel
Exclude misattributed quotes (default True)
Exemple d'appel{"name": "quotes_by", "arguments": {"originator": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - quotes_containing≈ 925 tokens
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
Paramètres, retour & exemple (12)
Paramètresby· ? · optionnel
Originator name (e.g., 'Einstein')limit· integer · optionnel
Max resultslength· ? · optionnel
Filter quotes by word-count category: brief (≤15 words), short (≤35 words), medium (36–100 words), long (101–200 words), or passage (201+ words).living· enum · optionnel · living | deceased
Filter quotes by originator living status (living/alive vs deceased/historical).phrase· string · requis
Text phrase to find (exact match)language· ? · optionnel
Language (e.g., 'en', 'French')max_chars· ? · optionnel
Max chars (280=Twitter, 500=Threads)structure· ? · optionnel
Structure: prose/verse/one-linerfrom_source· ? · optionnel
Source name (e.g., 'Cosmos'). Use 'any' for quotes with any source.reading_level· ? · optionnel
Filter quotes by reading level (elementary/middle_school/high_school/college). Supported languages: en, es, fr, de, it, nl, ru, pt. Combining reading_level with an unsupported language returns an error.content_rating· ? · optionnel
Filter quotes by maximum MPAA-style content rating. Cumulative: requesting 'PG' includes G and PG content.response_format· string · optionnel · concise | detailed
Response detail level
Exemple d'appel{"name": "quotes_containing", "arguments": {"phrase": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - quotes_from≈ 1180 tokens
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
Paramètres, retour & exemple (16)
Paramètresby· ? · optionnel
Originator name (for multi-author works)tags· ? · optionnel
Tag names (e.g., ['philosophy']). Use ['any'] for quotes with any tags.about· ? · optionnel
Topic (semantic, e.g., 'love', 'courage')limit· integer · optionnel
Max resultsgender· ? · optionnel
Filter by originator gender. Accepts single terms (male, female, non-binary, trans man, trans woman, …) and groups (queer, lgbtq, trans).length· ? · optionnel
Filter quotes by word-count category: brief (≤15 words), short (≤35 words), medium (36–100 words), long (101–200 words), or passage (201+ words).living· enum · optionnel · living | deceased
Filter quotes by originator living status (living/alive vs deceased/historical).source· string · requis
Source/work name (fuzzy matched - use exact titles like 'Cosmos', 'Don Quixote', 'The Little Prince')language· ? · optionnel
Language (e.g., 'en', 'French')max_chars· ? · optionnel
Max chars (280=Twitter, 500=Threads)structure· ? · optionnel
Structure: prose/verse/one-lineraccount_role· ? · optionnel
Social source account role: official or fan/archivistevidence_kind· ? · optionnel
Canonical source kind: platform container or bookreading_level· ? · optionnel
Filter quotes by reading level (elementary/middle_school/high_school/college). Supported languages: en, es, fr, de, it, nl, ru, pt. Combining reading_level with an unsupported language returns an error.content_rating· ? · optionnel
Filter quotes by maximum MPAA-style content rating. Cumulative: requesting 'PG' includes G and PG content.response_format· string · optionnel · concise | detailed
Response detail level
Exemple d'appel{"name": "quotes_from", "arguments": {"source": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - quotes_like≈ 964 tokens
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
Paramètres, retour & exemple (12)
Paramètresby· ? · optionnel
Originator name (e.g., 'Einstein')limit· integer · optionnel
Max resultsquote· string · requis
Quote identifier: either a short code (e.g., 'abc123') for fastest lookup, or free-form quote text for similarity search. Short codes are preferred when available.length· ? · optionnel
Filter quotes by word-count category: brief (≤15 words), short (≤35 words), medium (36–100 words), long (101–200 words), or passage (201+ words).living· enum · optionnel · living | deceased
Filter quotes by originator living status (living/alive vs deceased/historical).language· ? · optionnel
Language (e.g., 'en', 'French')max_chars· ? · optionnel
Max chars (280=Twitter, 500=Threads)structure· ? · optionnel
Structure: prose/verse/one-linerfrom_source· ? · optionnel
Source name (e.g., 'Cosmos'). Use 'any' for quotes with any source.reading_level· ? · optionnel
Filter quotes by reading level (elementary/middle_school/high_school/college). Supported languages: en, es, fr, de, it, nl, ru, pt. Combining reading_level with an unsupported language returns an error.content_rating· ? · optionnel
Filter quotes by maximum MPAA-style content rating. Cumulative: requesting 'PG' includes G and PG content.response_format· string · optionnel · concise | detailed
Response detail level
Exemple d'appel{"name": "quotes_like", "arguments": {"quote": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - report_quote≈ 259 tokens
Report one issue category across one or more quotes for human moderation.
Paramètres, retour & exemple (4)
Paramètrescontext· ? · optionnel
Shared explanation applied to every quotecategory· string · requis · misattributed | garbage | nested | typo | wrong_date | offensive | source_suggestionsource_url· ? · optionnel
Earliest, most direct source URL; required for source_suggestionquote_short_codes· array · requis
Short codes of quotes to report (1–25)
Exemple d'appel{"name": "report_quote", "arguments": {"category": "misattributed", "quote_short_codes": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - search_proverbs≈ 586 tokens
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
Paramètres, retour & exemple (8)
Paramètresabout· ? · optionnel
Topic to search semantically (e.g., 'patience', 'friendship')limit· integer · optionnel
Max resultslanguage· ? · optionnel
Language (e.g., 'en', 'French')tradition· ? · optionnel
Cultural tradition (e.g., 'African', 'Chinese', 'Jewish', 'Greek')sub_tradition· ? · optionnel
Specific sub-tradition within parent (e.g., 'Bedouin' within 'Arabic')response_format· string · optionnel · concise | detailed
Response detail levelinclude_relations· boolean · optionnel
Include related quotes (translations, variants)include_sub_traditions· boolean · optionnel
Include sub-traditions when filtering by tradition (default: False)
Exemple d'appel{"name": "search_proverbs", "arguments": {"about": "texte", "limit": 1, "language": "texte", "tradition": "texte", "sub_tradition": "texte", "response_format": "concise"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - sources≈ 740 tokens
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
Paramètres, retour & exemple (9)
Paramètresby· ? · optionnel
Filter by originator/author name (resolved internally, e.g., 'Carl Sagan')name· ? · optionnel
Exact lookup for source name (fuzzy matched - use exact titles like 'Cosmos', 'Don Quixote', 'The Little Prince')sort· string · optionnel · popular | name | recent
Sort order: popular (by quote_count), name, recentlimit· integer · optionnel
Max resultssearch· ? · optionnel
Fuzzy search query for sources (minimum 2 characters)language· ? · optionnel
Filter by language code (ISO 639-1, e.g., 'en', 'fr', 'de')min_quotes· ? · optionnel
Minimum quote count thresholdsource_type· ? · optionnel
Filter by type: book, speech, poem, article, letter, interview, etc.response_format· string · optionnel · concise | detailed
Response detail level - concise (name, type, count, url) or detailed (+ identifiers, originators)
Exemple d'appel{"name": "sources", "arguments": {"by": "texte", "name": "texte", "sort": "popular", "limit": 1, "search": "texte", "language": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - status≈ 152 tokens
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
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "status", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - who_said≈ 328 tokens
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
Paramètres, retour & exemple (2)
Paramètresquote· string · requis
Quote text or fragment to identify. Can be partial, paraphrased, or exact text. Examples: 'be the change you wish to see', 'insanity is doing the same thing'response_format· string · optionnel · concise | detailed
Response detail level
Exemple d'appel{"name": "who_said", "arguments": {"quote": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».