Alexandria

Búsqueda semántica en más de 4.6 millones de fragmentos de texto de más de 20,000 obras clásicas de filosofía y humanidades: Platón, Aristóteles, Kant, Nietzsche y miles más. Multilingüe (griego, latín, alemán, francés, inglés). Sin necesidad de instalación.

Documentación

Servidor MCP Alexandria

Available on CodeGuilds

Búsqueda semántica sobre 4.6 millones de fragmentos de texto de más de 20,000 obras clásicas de filosofía y humanidades. Construido para agentes de IA usando FastMCP sobre HTTP.

Qué hay en la colección

Todos los textos son de dominio público (anteriores a 1928), obtenidos de Internet Archive (colecciones americana, europeanlibraries, gutenberg).

  • Filosofía: Aristóteles, Platón, Kant, Hegel, Nietzsche, Schopenhauer, Descartes, Spinoza, Locke, Hume, Mill, Wittgenstein, Aquino, Agustín, Leibniz, Rousseau, Voltaire, Marx, y cientos más
  • Temas: Ética, metafísica, epistemología, lógica, filosofía política, teología, estoicismo, neoplatonismo, existencialismo, historia de las ideas
  • Idiomas: Inglés, alemán, latín, francés, italiano, griego, ruso

Conexión al servidor

Remoto (alojado):

claude mcp add --transport http alexandria https://alexandria.aidatanorge.no/mcp

Mediante configuración MCP:

{
  "mcpServers": {
    "alexandria": {
      "type": "http",
      "url": "https://alexandria.aidatanorge.no/mcp"
    }
  }
}

Herramientas

search_texts

Busca en la colección usando lenguaje natural. Utiliza recuperación híbrida densa+dispersa con reordenamiento mediante cross-encoder.

ParámetroTipoDescripción
querystringLo que estás buscando
authorstringFiltro opcional por autor/creador, p. ej. Kant, Nietzsche, Plato
languagestringFiltro de idioma opcional: eng, ger, lat, fre, ita, gre, rus
limitintNúmero de resultados (por defecto 5, máximo 20)

Consultas de ejemplo:

  • "Nietzsche will to power eternal recurrence"
  • "Kantian categorical imperative duty"
  • "Platonic theory of forms and the Good"
  • "Stoic virtue and the sage"
  • "Hegel dialectics spirit history"

Cada resultado incluye: title, creator, date, language, subject, text (fragmento), rerank_score, vector_score.

Ejemplo con curl:

curl -X POST https://alexandria.aidatanorge.no/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "search_texts",
      "arguments": {
        "query": "Kantian categorical imperative duty ethics",
        "author": "Kant",
        "limit": 3
      }
    }
  }'

get_book_list

Lista los libros de la colección filtrados por autor, tema o idioma.

ParámetroTipoDescripción
authorstringFiltrar por autor/creador, p. ej. Kant, Plato
subjectstringFiltrar por palabra clave de tema, p. ej. ethics, logic
languagestringFiltrar por código de idioma: eng, ger, lat, fre, ita, gre, rus
limitintMáximo de libros a devolver (por defecto 20, máximo 100)

Ejemplo con curl:

curl -X POST https://alexandria.aidatanorge.no/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/call",
    "params": {
      "name": "get_book_list",
      "arguments": {"author": "Plato", "language": "eng"}
    }
  }'

ping

Prueba de conectividad.

Indicaciones

  • philosopher_analysis(philosopher) — inmersión profunda en las ideas clave de un filósofo
  • topic_exploration(topic) — explora un tema a través de múltiples pensadores
  • compare_philosophers(philosopher_a, philosopher_b, topic) — compara dos filósofos sobre un tema específico

Arquitectura

Archive.org (13,000+ books)
        ↓
  Text extraction + chunking
        ↓
  Qdrant (4.6M vectors)
        ↓
  Hybrid search: intfloat/multilingual-e5-large (dense) + Qdrant/bm25 (sparse)
        ↓
  Cross-encoder reranking: mmarco-mMiniLMv2-L12-H384-v1
        ↓
  FastMCP 3.2 over HTTP

Autoalojamiento

Requiere una instancia de Qdrant en ejecución con la colección alexandria poblada.

pip install -r requirements.txt
python alexandria_mcp_server.py
# Server starts at http://localhost:8005/mcp

Variables de entorno (opcional):

QDRANT_HOST=localhost
QDRANT_PORT=6333
MCP_PORT=8005

Licencia

MIT