Anna's Archive MCP

Anna's Archive MCP: busca y descarga libros y artículos por título, autor o DOI.

Documentación

annas-mcp

Tests Release npm annas-mcp MCP server

Un servidor MCP que permite a Claude, Cursor, Codex y otros clientes de IA buscar en Anna's Archive libros y artículos, y descargar el archivo que elijas. También funciona como herramienta de línea de comandos.

Inicia sesión con la clave secreta de tu membresía y renueva la sesión automáticamente, para que nunca tengas que copiar cookies de un navegador. Si vienes de iosifache/annas-mcp, cambiar es un cambio de una sola línea.

HerramientaQué hace
book_searchEncuentra libros, libros de texto, manuales y normas por título, autor o tema, filtrados por formato, idioma, fuente o año; puede incluir recuentos de actividad de archivos
article_searchEncuentra artículos de revistas por palabra clave, autor o año, o busca uno por DOI; puede incluir recuentos de actividad de archivos
metadata_searchBusca en catálogos de bibliotecas como Open Library, WorldCat e ISBNdb ediciones e ISBNs
book_detailsMuestra los ISBNs y otros identificadores de un resultado, edición, descripción y problemas de archivo reportados
account_statusMuestra tu membresía y cuántas descargas rápidas quedan
book_downloadDescarga un libro usando el hash de un resultado de búsqueda
article_downloadDescarga un artículo por DOI o hash

Úsalo solo para material al que tengas derecho a acceder, según las leyes y términos que te apliquen.

Configuración

Necesitas Node.js 18 o más reciente y una membresía de Anna's Archive. Cualquier nivel puede descargar; buscar requiere Lucky Librarian o superior.

1. Obtén tu clave secreta

Copia la clave secreta con la que inicias sesión desde tu página de cuenta de Anna's Archive. También es tu clave de API (FAQ de API).

2. Añade el servidor a tu cliente

Claude Code

claude mcp add annas-mcp \
  --env ANNAS_SECRET_KEY=your-secret-key \
  -- npx -y annas-mcp

En Windows nativo (no WSL), termina el comando con -- cmd /c npx -y annas-mcp.

Claude Desktop, con un clic

Descarga annas-mcp.mcpb y ábrelo, o arrástralo a Configuración → Extensiones. Claude Desktop te pedirá tu clave secreta y te permitirá elegir una carpeta de descarga diferente.

Claude Desktop o Cursor, manualmente

Añade esto a la configuración de Claude Desktop (Configuración → Desarrollador → Editar Configuración) o al ~/.cursor/mcp.json de Cursor:

{
  "mcpServers": {
    "annas-mcp": {
      "command": "npx",
      "args": ["-y", "annas-mcp"],
      "env": {
        "ANNAS_SECRET_KEY": "your-secret-key"
      }
    }
  }
}

Codex

Añade esto a ~/.codex/config.toml:

[mcp_servers.annas-mcp]
command = "npx"
args = ["-y", "annas-mcp"]

[mcp_servers.annas-mcp.env]
ANNAS_SECRET_KEY = "your-secret-key"

Gemini CLI

gemini extensions install https://github.com/SokolskyNikita/annas-mcp

Gemini CLI te pedirá tu clave secreta, que guarda en el llavero del sistema, y luego dos configuraciones opcionales; presiona Enter para omitirlas. Cámbialas más tarde con gemini extensions config annas-mcp.

Docker

Construye la imagen directamente desde este repositorio:

docker build -t annas-mcp https://github.com/SokolskyNikita/annas-mcp.git

Luego haz que tu cliente la ejecute, montando tu carpeta de descargas en /downloads:

{
  "mcpServers": {
    "annas-mcp": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "ANNAS_SECRET_KEY", "-v", "/absolute/path/to/downloads:/downloads", "annas-mcp"],
      "env": { "ANNAS_SECRET_KEY": "your-secret-key" }
    }
  }
}

En Linux, añade "--user", "1000:1000" con tus propios IDs de usuario y grupo antes de "annas-mcp", para que el contenedor pueda escribir en la carpeta.

3. Pruébalo

Reinicia tu cliente y pide algo como "Encuentra el EPUB de Orgullo y Prejuicio y descárgalo". La IA busca, elige una copia y te dice dónde guardó el archivo: annas-archive en tu carpeta de inicio a menos que elijas otra.

Cambiar desde iosifache/annas-mcp

Este servidor mantiene las mismas cuatro herramientas, añade tres más y lee las mismas variables ANNAS_SECRET_KEY, ANNAS_DOWNLOAD_PATH y ANNAS_BASE_URL. En la configuración de tu cliente, reemplaza la ruta al binario antiguo con npx:

-      "command": "/path/to/annas-mcp",
-      "args": ["mcp"],
+      "command": "npx",
+      "args": ["-y", "annas-mcp"],

Qué cambia:

  • Las búsquedas se ejecutan con tu cuenta de miembro con sesión iniciada, por lo que no son rechazadas con 403 por la verificación del navegador del archivo. Buscar requiere Lucky Librarian o superior.
  • El servidor elige automáticamente un espejo oficial que funcione. Establece ANNAS_AUTO_BASE_URL=false para usar solo ANNAS_BASE_URL.
  • Las descargas se verifican contra el hash MD5 del archivo.
  • npx detecta nuevas versiones sin descarga manual.

Iniciar sesión

Anna's Archive solo permite buscar a miembros con sesión iniciada. El servidor inicia sesión con tu clave secreta antes de su primera solicitud y nuevamente cuando el archivo termina la sesión, aproximadamente una vez por semana. La sesión se guarda entre ejecuciones.

Si el inicio de sesión falla, el error indica qué respondió cada espejo y cómo darle al servidor una sesión de navegador en su lugar:

  1. Inicia sesión en Anna's Archive en tu navegador, abre las herramientas de desarrollador y ve a Aplicación (Chrome, Edge) o Almacenamiento (Firefox, Safari) → Cookies.
  2. Copia el valor de aa_account_id2 en ANNAS_ACCOUNT_COOKIE y reinicia el servidor MCP desde tu cliente.

El servidor usa esa cookie hasta que expire, luego inicia sesión nuevamente con la clave secreta. Mantén la clave secreta y la cookie privadas.

Configuración

VariableNecesaria paraDescripción
ANNAS_SECRET_KEYTodoTu clave secreta de Anna's Archive. El servidor inicia sesión con ella y la usa para descargas.
ANNAS_DOWNLOAD_PATHOpcionalCarpeta para archivos descargados. Por defecto es annas-archive en tu carpeta de inicio. Ver Elegir la carpeta de descargas.
ANNAS_ACCOUNT_COOKIEOpcionalUna cookie aa_account_id2 para usar antes de iniciar sesión. Ver Iniciar sesión.
ANNAS_BASE_URLOpcionalEspejo a probar primero; los espejos oficiales lo reemplazan mientras falla. Por defecto es annas-archive.gl. Las versiones de idioma como es.annas-archive.gl son rechazadas, ya que el servidor lee el archivo en inglés.
ANNAS_AUTO_BASE_URLOpcionalEstablece a false para usar siempre ANNAS_BASE_URL en lugar de elegir un espejo automáticamente.
ANNAS_MCP_CACHE_DIROpcionalDónde guarda el servidor su sesión y npx almacena en caché los binarios de versiones. Ver La carpeta de caché.

El servidor y la CLI también leen un archivo .env desde su directorio de trabajo. Las variables ya establecidas en el entorno tienen prioridad.

El servidor solo usa ANNAS_BASE_URL y los espejos oficiales annas-archive.gl, .pk y .gd; Elegir un espejo explica cómo elige uno. Cualquier host que establezcas en ANNAS_BASE_URL recibe tus credenciales, así que solo usa uno en el que confíes.

Elegir la carpeta de descargas

Las descargas van a ~/annas-archive (%USERPROFILE%\annas-archive en Windows), que se crea en la primera descarga. Establece ANNAS_DOWNLOAD_PATH para usar otra carpeta. Debe ser una ruta absoluta, excepto que un ~ inicial representa tu carpeta de inicio.

En macOS, Escritorio, Documentos, Descargas e iCloud Drive están protegidos: la primera descarga allí hace que macOS pregunte si tu cliente MCP puede acceder a la carpeta. Si se deniega ese acceso, las descargas fallan con [CONFIG] cannot write to the download folder; permite tu cliente en Configuración del Sistema → Privacidad y Seguridad → Archivos y Carpetas, o elige una carpeta directamente en tu carpeta de inicio. Evita /tmp, que el sistema operativo limpia.

Herramientas

La IA completa las opciones de cada herramienta a partir de tu solicitud. HOW-IT-WORKS.md las enumera y qué devuelve cada herramienta, y --help las muestra en la línea de comandos.

Antes de descargar, el servidor verifica los archivos regulares completados directamente en tu carpeta de descargas contra el hash MD5 completo. Si uno coincide, devuelve la ruta y el tamaño de ese archivo independientemente de su nombre o extensión, sin descargarlo ni hacer una nueva solicitud de cuenta; downloads_left se omite. Para descargas de artículos por DOI, el DOI se resuelve a un hash primero. Si ningún archivo local coincide, el servidor descarga una copia verificada y elige un nombre de archivo único sin sobrescribir un archivo existente. Una descarga rápida puede usar el saldo de tu membresía, que Anna's Archive cuenta en una ventana móvil de 18 o 24 horas. Descargar un archivo nuevamente dentro de esa ventana es gratis, y account_status muestra cuántas quedan.

Solución de problemas

Los errores comienzan con un código:

CódigoQué hacer
[CONFIG]Falta una variable o es inválida, Anna's Archive rechazó la clave secreta o la carpeta de descargas no se puede escribir. Revisa Configuración.
[UPSTREAM_BLOCKED]El archivo rechazó el acceso. Verifica que tu membresía permita buscar. Si el error dice que no quedan descargas rápidas, espera a que la ventana se reinicie; account_status muestra el saldo. Si el inicio de sesión en sí falló, ver Iniciar sesión.
[NOT_FOUND]Nada coincidió, o esa copia no tiene descarga rápida. Prueba otra consulta, u otra copia de los resultados de búsqueda.
[INVALID_ARGUMENT]Corrige el hash, DOI, id, filtro, orden, página, límite o tiempo de espera.
[REQUEST_TIMEOUT]Reintenta, o aumenta timeout_seconds.
[UPSTREAM]El archivo o un servidor de descargas falló. El error indica cuál y por qué; reintenta más tarde.

Una descarga fallida enumera cada servidor que intentó y por qué falló cada uno. El servidor solo verifica tus credenciales cuando buscas o descargas, no cuando se inicia.

Si el servidor no se inicia en absoluto, ejecuta npx -y annas-mcp --version en una terminal para ver el error. El lanzador desempaqueta las versiones con el tar del sistema, que macOS, la mayoría de las distribuciones de Linux y Windows 10 o posterior incluyen.

Línea de comandos

Cada herramienta también es un comando. Establece las mismas variables (o ponlas en un archivo .env), luego:

npx -y annas-mcp book-search "pride and prejudice" --language en --format epub --include-stats
npx -y annas-mcp book-search --author "Jane Austen" --year 1813 --sort oldest
npx -y annas-mcp article-search 10.1038/nature14539
npx -y annas-mcp metadata-search 9780141439518
npx -y annas-mcp book-details <hash>
npx -y annas-mcp account-status
npx -y annas-mcp book-download <hash> "Pride and Prejudice.epub"
npx -y annas-mcp article-download 10.1038/nature14539

Añade --include-stats a una búsqueda de libro o artículo para incluir recuentos de descarga, lista, votos de calidad, informes y comentarios por archivo cuando estén disponibles. Añade --json para salida legible por máquina, --timeout 10m para cambiar el tiempo de espera y --help a cualquier comando para todas sus opciones.

Privacidad

annas-mcp se ejecuta en tu máquina y no tiene telemetría. Envía tu clave secreta (y cookie, si la estableces) solo a Anna's Archive, y descarga archivos de los servidores a los que Anna's Archive lo dirige. Las búsquedas de DOI pueden contactar a doi.org. El lanzador npx y el MCP Bundle contactan a GitHub para obtener y verificar los binarios de versiones. Aparte de los archivos descargados, solo almacena el binario de la versión, la sesión guardada y la salud reciente de los espejos, todo en la carpeta de caché. Preguntas: abre un issue.

Contribuir

Ver CONTRIBUTING.md para compilar desde el código fuente, pruebas y versiones.

Créditos

La idea de este proyecto proviene de iosifache/annas-mcp, que primero expuso Anna's Archive como servidor MCP. Este repositorio es una reescritura completa y no comparte código con él.

Licencia

MIT