alexandria-mcp
The Alexandria MCP server provides semantic search over 4.6 million text chunks from 20,000+ classical philosophy and humanities works (sourced from the Internet Archive).
search_texts: Natural language semantic search using hybrid dense+sparse retrieval with cross-encoder reranking. Filter by author (e.g., Kant, Nietzsche, Plato), language (eng, ger, lat, fre, ita, gre, rus), and result limit (up to 20). Returns ranked excerpts with metadata: title, creator, date, language, subject, and relevance scores.get_book_list: Browse and filter the collection by author, subject (e.g., ethics, logic, metaphysics), or language. Returns book metadata including title, creator, date, Archive.org identifier, and chunk count (up to 100 results).ping: Health check to confirm the server is responsive.Prompts: Pre-built prompts for philosopher deep-dives, topic exploration across multiple thinkers, and side-by-side philosopher comparisons.
Provides access to a collection of 4.6 million text chunks from 20,000+ classical philosophy and humanities works sourced from Internet Archive, enabling semantic search across authors, topics, and languages.
Alexandria MCP Server
Semantic search over 4.6 million text chunks from 20,000+ classical philosophy and humanities works. Built for AI agents using FastMCP over HTTP.
What's in the collection
All texts are public domain (pre-1928), sourced from Internet Archive (americana, europeanlibraries, gutenberg collections).
Philosophy: Aristotle, Plato, Kant, Hegel, Nietzsche, Schopenhauer, Descartes, Spinoza, Locke, Hume, Mill, Wittgenstein, Aquinas, Augustine, Leibniz, Rousseau, Voltaire, Marx, and hundreds more
Topics: Ethics, metaphysics, epistemology, logic, political philosophy, theology, stoicism, neoplatonism, existentialism, history of ideas
Languages: English, German, Latin, French, Italian, Greek, Russian
Related MCP server: food-recipe-mcp
Connecting to the server
Remote (hosted):
claude mcp add --transport http alexandria https://alexandria.aidatanorge.no/mcpVia MCP config:
{
"mcpServers": {
"alexandria": {
"type": "http",
"url": "https://alexandria.aidatanorge.no/mcp"
}
}
}Tools
search_texts
Search the collection using natural language. Uses hybrid dense+sparse retrieval with cross-encoder reranking.
Parameter | Type | Description |
| string | What you are looking for |
| string | Optional filter by author/creator, e.g. |
| string | Optional language filter: |
| int | Number of results (default 5, max 20) |
Example queries:
"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"
Each result includes: title, creator, date, language, subject, text (chunk), rerank_score, vector_score.
curl example:
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
List books in the collection filtered by author, subject or language.
Parameter | Type | Description |
| string | Filter by author/creator, e.g. |
| string | Filter by subject keyword, e.g. |
| string | Filter by language code: |
| int | Max books to return (default 20, max 100) |
curl example:
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
Connectivity test.
Prompts
philosopher_analysis(philosopher)— deep dive into a philosopher's key ideastopic_exploration(topic)— explore a topic across multiple thinkerscompare_philosophers(philosopher_a, philosopher_b, topic)— compare two philosophers on a specific topic
Architecture
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 HTTPSelf-hosting
Requires a running Qdrant instance with the alexandria collection populated.
pip install -r requirements.txt
python alexandria_mcp_server.py
# Server starts at http://localhost:8005/mcpEnvironment variables (optional):
QDRANT_HOST=localhost
QDRANT_PORT=6333
MCP_PORT=8005License
MIT
Maintenance
Tools
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AIDataNordic/alexandria-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server