annas-mcp
MCP server and CLI tool for searching and downloading documents from Anna's Archive Go-based implementation. Trusted by 500+ developers.
Documentation
Anna's Archive MCP Server (and CLI Tool)
An MCP server and CLI tool for searching and downloading documents (books and articles) from Anna's Archive, with optional automatic selection of a mirror reported as healthy by SLUM.
> [!NOTE]
> Notwithstanding prevailing public sentiment regarding Anna's Archive, the platform serves as a comprehensive repository for automated retrieval of documents released under permissive licensing frameworks (including Creative Commons publications and public domain materials). This software does not endorse unauthorized acquisition of copyrighted content and should be regarded solely as a utility. Users are urged to respect the intellectual property rights of authors and acknowledge the considerable effort invested in document creation.
> [!WARNING]
> Please refer to Mirror Selection if any of the links lead to a non-functional Anna's Archive server.
Requirements
Search works without any required environment variables.
Downloads require:
- A donation to Anna's Archive, which grants JSON API access
- An API key
- An MCP client, such as Claude Desktop, if using the project as an MCP server
Setup
Download the appropriate binary from the GitHub Releases section.
If you plan to use the tool for its MCP server functionality, you need to integrate it into your MCP client. If you are using Claude Desktop, please consider the following example configuration:
"anna-mcp": {
"command": "/Users/iosifache/Downloads/annas-mcp",
"args": ["mcp"],
"env": {
"ANNAS_SECRET_KEY": "feedfacecafebeef",
"ANNAS_DOWNLOAD_PATH": "/Users/iosifache/Downloads",
"ANNAS_BASE_URL": "annas-archive.gl"
}
}Configuration
The tool can be configured with environment variables. These variables can also be stored in an `.env` file in the folder containing the binary.
Download Environment Variables
Downloads use:
- `ANNAS_SECRET_KEY`: The Anna's Archive API key.
- `ANNAS_DOWNLOAD_PATH`: The path where the documents should be downloaded.
Mirror Selection
Anna's Archive has multiple mirrors, and their availability can change over time. By default, this project uses `ANNAS_BASE_URL`, or `annas-archive.gl` when `ANNAS_BASE_URL` is not set.
Optionally, you can set:
- `ANNAS_BASE_URL`: The Anna mirror to use (defaults to `annas-archive.gl`). When automatic mirror discovery is enabled, this becomes the fallback mirror.
- `ANNAS_AUTO_BASE_URL`: Set to `true` to discover the best available Anna mirror automatically from SLUM.
Automatic discovery is opt-in: when `ANNAS_AUTO_BASE_URL=true`, the tool reads the public status page, ranks discovered Anna mirror candidates by recent health and latency, probes them locally, and uses the best reachable mirror. If discovery or probing fails, the tool falls back to `ANNAS_BASE_URL`, then to the built-in default mirror.
Timeouts
HTTP requests default to a 1 hour timeout. For CLI usage, override this with `--timeout`, for example:
annas-mcp --timeout 1h book-download abc123def456 "my-book.pdf"For MCP usage, tools accept an optional `timeout_seconds` parameter, for example `3600` for 1 hour.
Demo
As an MCP Server
As a CLI Tool
Available Operations
| Operation | MCP Tool | CLI Command | Example |
|---|---|---|---|
| Search for books by title, author, or topic | `book_search` | `book-search` | `book-search "machine learning python"` |
| Download a book by its MD5 hash | `book_download` | `book-download` | `book-download abc123def456 "my-book.pdf"` |
| Search for articles by DOI or keywords | `article_search` | `article-search` | `article-search "10.1038/nature12345"` or `article-search "neural networks"` |
| Download an article by its DOI | `article_download` | `article-download` | `article-download "10.1038/nature12345"` |
Frequently asked questions
What is annas-mcp?
annas-mcp is MCP server and CLI tool for searching and downloading documents from Anna's Archive Go-based implementation. Trusted by 500+ developers.
How do I install annas-mcp?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is annas-mcp open source?
Yes — it is hosted on GitHub at https://github.com/iosifache/annas-mcp and has 567 stars.
Related MCP tools
The most powerful MCP Slack Server with no permission requirements, Apps support, multiple transports Stdio and SSE, DMs, Group DMs and smart history fetch l...
Self-hosted MCP Gateway and Registry for AI agents Go-based implementation. Trusted by 600+ developers. Trusted by 600+ developers.
Convert Any OpenAPI V3 API to MCP Server Go-based implementation. Trusted by 500+ developers. Trusted by 500+ developers.
Go server implementing Model Context Protocol (MCP) for filesystem operations. Trusted by 500+ developers. Trusted by 500+ developers.
Flux Operator is a Kubernetes controller for managing the lifecycle of Flux CD for the Model Context Protocol. Enhance AI assistants with powerful integrations.
A command-line interface for interacting with MCP (Model Context Protocol) servers using both stdio and HTTP transport. Go-based implementation.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP