accueil / serveurs / Recherche & Web / io.github.cyanheads/gutenberg-mcp-server
io.github.cyanheads/gutenberg-mcp-server
serveur MCP (Model Context Protocol) · gutenberg-mcp-server 0.2.0
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.cyanheads/gutenberg-mcp-server est sûr ?
Au dernier audit MCP Hub, le serveur MCP « io.github.cyanheads/gutenberg-mcp-server » 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 4 outils
- gutenberg_browse_popular≈ 2688 tokens
Browse Project Gutenberg books ordered by downloads in the last 30 days at the source snapshot. Returns up to 32 titles with IDs, authors, languages, download counts, and is_readable. Filter by language, topic, MIME prefix or copyright status. Empty matches succeed with criteria and a notice; truncated results include executable search continuation. Use this for discovery — "what are the most popular classics in French?".
Paramètres, retour & exemple (5)
Paramètreslimit· integer · optionnel
Requested number of books. Default 20; requests above 32 are capped locally at 32.topic· string · optionnel
Filter by a subject or bookshelf keyword (case-insensitive phrase match). Example: "science fiction", "adventure", "detective". Applies on top of the language filter.copyright· array · optionnel
Any selected source copyright status: "true" copyrighted, "false" public domain in the USA, "null" unknown. Empty means all statuses; this is not worldwide legal clearance.languages· array · optionnel
Restrict to books in these languages (two-character ISO 639-1 codes). Example: ["en"] for English only, ["de", "fr"] for German or French. Omit for all languages.mime_type· string · optionnel
Literal prefix of a format MIME key, such as "text/plain" or "text/html". Blank means unset.
Exemple d'appel{"name": "gutenberg_browse_popular", "arguments": {"limit": 1, "topic": "texte", "copyright": [], "languages": [], "mime_type": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"cap": 1, "books": [], "error": {}, "shown": 1, "notice": "texte", "truncated": true, "appliedLimit": 1, "continuation": {}, "requestedLimit": 1, "totalInCatalog": 1, "effectiveCriteria": {}, "truncationCeiling": 1}} - gutenberg_get_book≈ 1617 tokens
Fetch complete metadata for a Project Gutenberg book by ID — title, authors (with birth/death years), translators, editors, source bibliographic notes, subjects, bookshelves, languages, copyright status, and the full formats map with download URLs (plain text, HTML, EPUB, cover image, etc.). Use is_readable before gutenberg_get_text; source_notes may identify specific editions.
Paramètres, retour & exemple (1)
Paramètresid· integer · requis
Project Gutenberg book ID. Visible in Gutenberg URLs (e.g., gutenberg.org/ebooks/1342) and returned by gutenberg_search_books and gutenberg_browse_popular. Example: 1342 for Pride and Prejudice, 2600 for War and Peace.
Exemple d'appel{"name": "gutenberg_get_book", "arguments": {"id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"id": 1, "error": {}, "title": "texte", "authors": [], "editors": [], "formats": {}, "summary": "texte", "subjects": [], "copyright": true, "languages": [], "summaries": [], "media_type": "texte"}} - gutenberg_get_text≈ 1488 tokens
Retrieve the plain-text content of a Project Gutenberg book, stripped of the standard license header and footer so the response contains only the literary work. For long works — novels routinely run 500KB–2MB — use offset and limit to read in chunks rather than fetching the whole book at once. The response reports totalChars and remainingChars for reliable pagination. Prefers UTF-8 plain text; falls back to an HTML edition converted to text; refuses audio books (media_type "Sound") with a clear error.
Paramètres, retour & exemple (3)
Paramètresid· integer · requis
Project Gutenberg book ID. Use gutenberg_search_books or gutenberg_get_book to find IDs. Example: 1342 for Pride and Prejudice, 2600 for War and Peace, 84 for Frankenstein.limit· integer · optionnel
Requested maximum characters. Default 20,000 (~4–5 pages of prose); requests above 50,000 are capped locally at 50,000. Paragraph-boundary trimming may return less than the applied limit — use length for continuation.offset· integer · optionnel
Character offset into the stripped literary text at which to start reading. 0 returns the beginning of the work. To read subsequent chunks, use offset = prior_offset + prior_length (the length field from the previous response — NOT offset + limit, because the actual returned length may be slightly less than limit due to paragraph-boundary trimming).
Exemple d'appel{"name": "gutenberg_get_text", "arguments": {"id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"id": 1, "text": "texte", "error": {}, "title": "texte", "length": 1, "offset": 1, "hasMore": true, "provenance": "texte", "totalChars": 1, "appliedLimit": 1, "sourceFormat": "text/plain; charset=utf-8", "remainingChars": 1}} - gutenberg_search_books≈ 2377 tokens
Search the Project Gutenberg catalog of 78,000+ books. Every query word matches a title or author substring; filter by topic, language, author lifespan, IDs, MIME prefix or copyright status. More than four query words require the local mirror. Empty matches succeed with criteria and a notice. Default popularity uses downloads in the last 30 days at the source snapshot. Returns IDs, titles, authors, languages, subjects, counts, and is_readable — use gutenberg_get_book for full metadata.
Paramètres, retour & exemple (10)
Paramètresids· array · optionnel
Narrow results to these Gutenberg IDs, intersected with other filters. An empty list selects nothing; omit for unrestricted IDs. Use gutenberg_get_book for full single-ID metadata.page· integer · optionnel
Page number for paginated results (1-indexed). Each page returns up to 32 books. Use totalCount to determine total pages.sort· string · optionnel · popular | ascending | descending
Result ordering. "popular" (default) sorts by downloads in the last 30 days at the source snapshot, descending. "ascending" and "descending" sort by Gutenberg ID number.query· string · optionnel
Every nonblank whitespace-separated word must match title or author name as a case-insensitive literal substring. More than four words require the local mirror; live fallback rejects longer queries. Example: "dickens expectations" matches Great Expectations.topic· string · optionnel
Case-insensitive phrase to match against subjects and bookshelves. Example: "detective" returns books on the "Detective and Mystery Stories" bookshelf. Separate from query — topic searches categorization metadata, not title/author.copyright· array · optionnel
Any selected source copyright status: "true" copyrighted, "false" public domain in the USA, "null" unknown. Empty means all statuses; this is not worldwide legal clearance.languages· array · optionnel
Filter to books in any of these two-character ISO 639-1 language codes. Example: ["en"] for English, ["fr", "de"] for French or German.mime_type· string · optionnel
Literal prefix of a format MIME key, such as "text/plain" or "text/html". Blank means unset.author_year_end· integer · optionnel
Include only books with at least one author alive on or before this year. Example: author_year_start=1800 with author_year_end=1899 returns books with 19th-century authors.author_year_start· integer · optionnel
Include only books with at least one author alive on or after this year (positive = CE, negative = BCE). Combine with author_year_end for a range.
Exemple d'appel{"name": "gutenberg_search_books", "arguments": {"ids": [], "page": 1, "sort": "popular", "query": "texte", "topic": "texte", "copyright": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"page": 1, "books": [], "error": {}, "notice": "texte", "hasMore": true, "totalCount": 1, "effectiveCriteria": {}}}
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é ».