/ Directory / Playground / annas-mcp
● Community iosifache ⚡ Instant

annas-mcp

by iosifache · iosifache/annas-mcp

Search and download books and academic articles from Anna's Archive directly through your AI assistant.

annas-mcp provides an MCP server and CLI for searching and downloading documents from Anna's Archive. It supports book search by title/author/topic, article search by DOI or keyword, and direct downloads. Written in Go with pre-built binaries for all platforms. Requires an Anna's Archive API key obtained via donation.

Why use it

Key features

Live Demo

What it looks like in practice

annas.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "annas": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/iosifache/annas-mcp"
      ],
      "_inferred": true
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "annas": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/iosifache/annas-mcp"
      ],
      "_inferred": true
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "annas": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/iosifache/annas-mcp"
      ],
      "_inferred": true
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "annas": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/iosifache/annas-mcp"
      ],
      "_inferred": true
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "annas",
      "command": "TODO",
      "args": [
        "See README: https://github.com/iosifache/annas-mcp"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "annas": {
      "command": {
        "path": "TODO",
        "args": [
          "See README: https://github.com/iosifache/annas-mcp"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add annas -- TODO 'See README: https://github.com/iosifache/annas-mcp'

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use annas-mcp

How to find and download a research paper with annas-mcp

👤 Researchers and students needing access to academic literature ⏱ ~5 min beginner

When to use: You need a specific paper by DOI or want to explore articles on a topic.

Prerequisites
  • Anna's Archive API key — Donate at annas-archive.li to receive your API key
  • ANNAS_SECRET_KEY env var set — export ANNAS_SECRET_KEY=your_key
Flow
  1. Search for the article
    Search Anna's Archive for articles about 'transformer attention mechanisms' published after 2020.✓ Copied
    → List of matching articles with titles, authors, and DOIs
  2. Download the paper
    Download the first result to my papers folder.✓ Copied
    → File saved confirmation with path

Outcome: PDF of the requested paper saved locally.

Pitfalls
  • API key not set — Ensure ANNAS_SECRET_KEY is set in your environment before starting the MCP server
Combine with: filesystem

Build a reading list on a topic using annas-mcp

👤 Anyone curating books or papers for study ⏱ ~10 min beginner

When to use: You want to compile a list of relevant books on a subject.

Prerequisites
  • Anna's Archive API key — Donate at annas-archive.li
Flow
  1. Search for books
    Search for books about 'distributed systems' and list the top 10 results with authors and publication years.✓ Copied
    → Formatted list of books with metadata
  2. Download selected titles
    Download books 1, 3, and 7 from the list.✓ Copied
    → Three files saved with confirmation

Outcome: A curated set of downloaded books on the chosen topic.

Pitfalls
  • Download fails with certain mirrors — Set ANNAS_BASE_URL to a different mirror if the default is unreachable
Combine with: filesystem

Combinations

Pair with other MCPs for X10 leverage

annas + filesystem

Download papers and organize them into topic-based folders automatically

Search for papers on 'reinforcement learning from human feedback', download the top 5, and organize them into ~/papers/rlhf/.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
book_search query: str Search for books by title, author, or topic 1 API call
book_download md5: str Download a book using its MD5 identifier from search results 1 API call
article_search query: str Find articles by DOI or keyword 1 API call
article_download doi: str Download an article by its DOI 1 API call

Cost & Limits

What this costs to run

API quota
Rate limits depend on your Anna's Archive API tier
Tokens per call
200–500 tokens per search, more for downloads
Monetary
Requires donation to Anna's Archive for API access
Tip
Use search first to identify exactly what you want before downloading to avoid unnecessary API calls.

Security

Permissions, secrets, blast radius

Credential storage: API key stored in ANNAS_SECRET_KEY environment variable
Data egress: Calls to Anna's Archive API (configurable mirror URL)

Troubleshooting

Common errors and fixes

401 Unauthorized

Your ANNAS_SECRET_KEY is missing or invalid. Verify it's set correctly in your environment.

Verify: echo $ANNAS_SECRET_KEY
Connection refused / timeout

The default mirror may be down. Set ANNAS_BASE_URL to an alternative mirror.

Verify: curl https://annas-archive.li
No results found

Try broader search terms or different keywords. Book searches work best with exact titles or author names.

Alternatives

annas-mcp vs others

AlternativeWhen to use it insteadTradeoff
fetch MCPYou just need to grab a specific URL or DOI link directlyNo structured search — you need to know the exact URL

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills