Alexandria MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TRANSPORT | No | Transport mode for the MCP server. Default is stdio. | stdio |
| BHL_API_KEY | No | API key for Biodiversity Heritage Library. Get from biodiversitylibrary.org/getapikey.aspx. | |
| BASE_API_KEY | No | API key for BASE (400M+ records). Email BASE for IP whitelist or token. May be empty if IP-only. | |
| CORE_API_KEY | No | API key for CORE (57M+ full-text OA papers). Register at core.ac.uk/services/api. | |
| DPLA_API_KEY | No | API key for Digital Public Library of America. Register at pro.dp.la/developers/api-codex. | |
| GITHUB_TOKEN | No | GitHub token for OpenITI (10k+ Islamicate texts). Create at github.com/settings/tokens. | |
| SUPABASE_URL | No | Supabase project URL for vector storage (optional). | |
| CONTACT_EMAIL | No | Your email address, optionally used for some API registrations. | |
| TROVE_API_KEY | No | API key for Trove (National Library of Australia). Register at trove.nla.gov.au/about/create-something/using-api. | |
| OPENAI_API_KEY | No | Optional OpenAI API key for natural language search routing. Get from platform.openai.com/api-keys. | |
| ZENODO_API_KEY | No | API key for Zenodo (CERN open research). Get from zenodo.org/account/settings/applications. | |
| GOVINFO_API_KEY | No | API key for GovInfo (US Congressional Record, Federal Register). Register at api.govinfo.gov/docs. Same key as Smithsonian. | |
| NASA_ADS_API_KEY | No | API key for NASA ADS (astronomy, astrophysics, physics). Get from ui.adsabs.harvard.edu/user/settings/token. | |
| DIGITALNZ_API_KEY | No | API key for DigitalNZ (New Zealand digital collections). Register at digitalnz.org/developers. | |
| EUROPEANA_API_KEY | No | API key for Europeana (50M+ items). Register at apis.europeana.eu. | |
| SMITHSONIAN_API_KEY | No | API key for Smithsonian (14M records). Same key works for GovInfo. Register at api.data.gov/signup. | |
| SPRINGER_OA_API_KEY | No | API key for Springer Nature Open Access. Register at dev.springernature.com. | |
| GOOGLE_BOOKS_API_KEY | No | API key for Google Books. Create in Google Cloud Console, enable Books API. | |
| COURTLISTENER_API_KEY | No | API key for CourtListener (US federal and state case law). Register at courtlistener.com/sign-in. | |
| SPRINGER_META_API_KEY | No | API key for Springer Nature Metadata. Register at dev.springernature.com. | |
| SEMANTIC_SCHOLAR_API_KEY | No | API key for Semantic Scholar (200M+ papers). Register at semanticscholar.org/product/api. | |
| SUPABASE_SERVICE_ROLE_KEY | No | Supabase service role key for vector storage (optional). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| library_list_sourcesA | List all 152 library sources (count computed from the live registry at startup) with descriptions and capabilities. |
| library_health_checkA | Report per-source health: 'ok', 'degraded', 'down', 'key_missing', or 'unknown', merging this process's live error rate and latency with the last off-process probe run. The probe layer reads eval/probe-latest.json, which published installs do not ship, so on a published install a source's status stays 'unknown' until this process itself calls it. Use before relying on a source that has been erroring, or to check whether a key is configured. Optionally filter by source or cluster. Set response_format: "detailed" for error rate, latency, and quota usage. |
| library_askA | Ask for content in plain English; automatically selects the best sources from all 152 libraries, generates optimized per-source queries, and searches in parallel. Use this as the default entry point for any natural-language request. Use library_search instead when you already know which source to query. Requires OPENAI_API_KEY (already set for embeddings). Set response_format: "detailed" for routing reasons and per-stage diagnostics. |
| library_searchA | Search a specific library source by name. Use library_ask instead for natural language queries across multiple sources. Sources marked [full text] support library_read and library_ingest. Sources marked [metadata] return discovery info and external URLs only. |
| library_readA | Fetch text from a library source. Full-text sources return cleaned text (truncated at 200k chars). Metadata sources return item details and an external URL. |
| library_indexA | Dry run: fetch text, chunk semantically, score OCR quality. No writes. Full-text sources only. |
| library_ingestA | Chunk, embed, and store a text. Idempotent. Full-text sources only. Requires OPENAI_API_KEY + SUPABASE_URL + SUPABASE_SERVICE_ROLE_KEY. |
| library_recommendA | Get papers similar to a given paper using Semantic Scholar's recommendation engine. Pass a paperId from a semanticscholar search result. Returns up to 500 similar papers. |
| library_answerA | Ask a question in plain English and get a synthesized answer with inline [n] citations, fused across sources with reciprocal rank fusion. Use this instead of library_ask when you want a cited answer rather than raw results. Every factual sentence is cited or dropped; an uncited or all-dropped answer is flagged in warnings[]. Requires OPENAI_API_KEY (or ALEXANDRIA_SYNTH_API_KEY). Set response_format: "detailed" for the full result set, routing, citation grades, and resolvability. |
| library_researchA | Deep research on a topic: outlines 3 to 7 coverage objectives, generates search queries, answers each with library_answer, extracts learnings and follow-up questions, then recurses with half the breadth. Stops once every objective is covered by a learning, at the given depth, at the time budget, or once a round finds no new sources. Requires OPENAI_API_KEY (or ALEXANDRIA_RESEARCH_API_KEY / ALEXANDRIA_SYNTH_API_KEY). Set response_format: "detailed" for the per-round breakdown, elapsed time, citation grades, resolvability, and the objectives/coverage outline. |
| library_citationsA | List the works a scholarly item cites (direction: "references") or the works that cite it (direction: "citations"), resolved through OpenAlex's citation graph with OpenCitations as a fallback when OpenAlex has no record. Accepts an id/source from library_search or library_ask, or a bare DOI/arXiv id. Set format: "bibtex" | "ris" | "apa" to also return a |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| literature_review | Survey a topic across Alexandria's library sources and produce a cited report. |
| fact_check_claim | Check one claim against Alexandria and report whether it is supported. |
| verify_bibliography | Check that a list of references resolves to real, findable items. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 11 tools
Each tool targets a distinct operation—listing, health, natural-language search, specific search, read, dry-run indexing, ingest, recommend, answer, deep research, citations. Overlaps like ask vs. answer are clearly differentiated by descriptions.
All tools follow the library_<verb> pattern with consistent snake_case naming. Verbs are clear and predictable (list, search, read, ingest, etc.), with minor noun-based exceptions like 'health_check' and 'citations' that still fit the pattern.
11 tools is well within the ideal 3-15 range and each serves a distinct purpose, covering the full lifecycle from discovery to ingestion to synthesis without redundancy.
The tool set covers discovery (list_sources), health (health_check), search (ask, search), retrieval (read), ingestion (index, ingest), recommendation, synthesis (answer, research), and citations. No obvious gaps exist for a library server's expected operations.