Search ~48M books, papers, and documents from a local Anna's Archive metadata index. Tools: search → download or read.
Strong tool definitions with comprehensive descriptions and well-structured schemas. All 4 tools have detailed, LLM-optimized descriptions (194 - 500+ chars) explaining WHAT, WHEN, and HOW. Input schemas use Zod with proper types, ranges, and descriptions for all parameters. Search tool is exemplary with query strategies and format tips. However, output schemas are not explicitly documented in code, and error handling lacks recovery guidance. No tool annotations (readOnlyHint, destructiveHint) despite all being read-only operations.
Get a fast download URL for a document by its MD5 hash (from search results). Returns a temporary download link — use it promptly. Requires a linked Anna's Archive membership key through OAuth or the X-Annas-Secret-Key header. Get one at https://annas-archive.gl/account . Present the URL as a clickable markdown link. To save locally: curl -L -o filename.ext '<url>'
Extract and return full text from a document by MD5 hash. Supports PDF, EPUB, DJVU, MOBI, and more. Use start_page/end_page to paginate, or list_chapters=true / chapter=N to navigate by chapter.
Search the local Anna's Archive metadata index (~48M books, papers, and documents). Returns metadata and MD5 hashes for downloading. PARAMETERS — use any combination: - "query": General full-text search across title + author + publisher. Best for broad searches. - "title": Search within titles only. Use this when you know the book/paper name. - "author": Search within authors only. Use this to find works by a specific person. - "publisher": Search within publishers only. - "year_from" / "year_to": Filter by publication year range (e.g. year_from=2020, year_to=2024). - "isbn": Exact ISBN lookup (10 or 13 digits, hyphens OK). - "doi": Exact DOI lookup (e.g. "10.1038/nature12345"). - "language": Filter by language — lowercase English name (e.g. "english", "chinese", "french", "german", "spanish", "russian", "japanese", "arabic"). - "format": Filter by file format (e.g. "pdf", "epub", "djvu", "mobi", "fb2", "azw3"). - "limit": Max results (default 10, max 50). SEARCH BEHAVIOR: - All text params use AND matching — all terms must appear. More terms = fewer, more precise results. - Diacritic-insensitive: "Zizek" matches "Žižek". - Stopwords ("the", "of", "and") are ignored. - If "query" AND matching returns nothing, automatically falls back to OR matching. - You can combine params freely: title="Pedagogy" + author="Freire" + format="pdf" + language="english". QUERY STRATEGIES: - Specific book: use "title" + "author". e.g. title="Parallax View", author="Zizek" - Author's works: use "author" alone. e.g. author="Baudrillard" - Broad topic: use "query". e.g. query="machine learning neural networks" - Recent papers: use "query" or "title" + year_from/year_to. e.g. query="transformer attention", year_from=2023 - Non-English: search in original language. e.g. title="三國演義" - If no results, try fewer terms or use "query" instead of specific fields. FORMAT TIPS (for "read" workflows): - When the same work is available as both PDF and EPUB, EPUB is surfaced first automatically — EPUBs have native chapter structure, so chapter-based reading is accurate. - For reading books (not papers), prefer EPUB when available. The read tool's chapter/list_chapters features work best on EPUB. - For papers and articles, PDF is usually the only option and works fine with page-based reading. - Only set format="pdf" explicitly if the user specifically needs the PDF version. RESULTS include: title, author, year, language, format, file size, MD5 hash, ISBN/DOI if available. Use the MD5 with the download or read tools.
Output schemas not documented in code. Tool descriptions explain results (e.g., 'Returns metadata and MD5 hashes') but no formal schema definition visible for response structure. LLMs cannot reliably extract fields or plan downstream calls without documented return types.
No tool annotations despite all tools being read-only. Missing readOnlyHint on search, download, stats, read. Agents cannot distinguish safe tools from destructive ones without explicit hints.
Error handling lacks recovery guidance. No documented error responses or recovery paths. E.g., if search returns no results, should agent retry with fewer terms? If download fails due to missing key, what should agent do?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 67 | 2026-07-28+ | v2 |
Get statistics about the local Anna's Archive metadata index — total records and breakdown by source collection.
stats tool description is minimal (60 chars). 'Get statistics about the local Anna's Archive metadata index, total records and breakdown by source collection.' lacks guidance on WHEN to call it or what fields are returned.
download and read tools require membership key but do not document how agents should handle missing/invalid credentials. No guidance on error recovery or user prompting.