Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
TRANSPORTNoTransport mode for the MCP server. Default is stdio.stdio
BHL_API_KEYNoAPI key for Biodiversity Heritage Library. Get from biodiversitylibrary.org/getapikey.aspx.
BASE_API_KEYNoAPI key for BASE (400M+ records). Email BASE for IP whitelist or token. May be empty if IP-only.
CORE_API_KEYNoAPI key for CORE (57M+ full-text OA papers). Register at core.ac.uk/services/api.
DPLA_API_KEYNoAPI key for Digital Public Library of America. Register at pro.dp.la/developers/api-codex.
GITHUB_TOKENNoGitHub token for OpenITI (10k+ Islamicate texts). Create at github.com/settings/tokens.
SUPABASE_URLNoSupabase project URL for vector storage (optional).
CONTACT_EMAILNoYour email address, optionally used for some API registrations.
TROVE_API_KEYNoAPI key for Trove (National Library of Australia). Register at trove.nla.gov.au/about/create-something/using-api.
OPENAI_API_KEYNoOptional OpenAI API key for natural language search routing. Get from platform.openai.com/api-keys.
ZENODO_API_KEYNoAPI key for Zenodo (CERN open research). Get from zenodo.org/account/settings/applications.
GOVINFO_API_KEYNoAPI key for GovInfo (US Congressional Record, Federal Register). Register at api.govinfo.gov/docs. Same key as Smithsonian.
NASA_ADS_API_KEYNoAPI key for NASA ADS (astronomy, astrophysics, physics). Get from ui.adsabs.harvard.edu/user/settings/token.
DIGITALNZ_API_KEYNoAPI key for DigitalNZ (New Zealand digital collections). Register at digitalnz.org/developers.
EUROPEANA_API_KEYNoAPI key for Europeana (50M+ items). Register at apis.europeana.eu.
SMITHSONIAN_API_KEYNoAPI key for Smithsonian (14M records). Same key works for GovInfo. Register at api.data.gov/signup.
SPRINGER_OA_API_KEYNoAPI key for Springer Nature Open Access. Register at dev.springernature.com.
GOOGLE_BOOKS_API_KEYNoAPI key for Google Books. Create in Google Cloud Console, enable Books API.
COURTLISTENER_API_KEYNoAPI key for CourtListener (US federal and state case law). Register at courtlistener.com/sign-in.
SPRINGER_META_API_KEYNoAPI key for Springer Nature Metadata. Register at dev.springernature.com.
SEMANTIC_SCHOLAR_API_KEYNoAPI key for Semantic Scholar (200M+ papers). Register at semanticscholar.org/product/api.
SUPABASE_SERVICE_ROLE_KEYNoSupabase 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

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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 formatted bibliography string; BibTeX prefers Crossref's own citation when a DOI is resolvable, for the first 20 results only (a paced, one-at-a-time doi.org lookup per item), with later results using a locally generated entry instead. Set response_format: "detailed" for full result fields.

Prompts

Interactive templates invoked by user choice

NameDescription
literature_reviewSurvey a topic across Alexandria's library sources and produce a cited report.
fact_check_claimCheck one claim against Alexandria and report whether it is supported.
verify_bibliographyCheck that a list of references resolves to real, findable items.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.4/5.0

Scored across 11 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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.

Maintenance

ActivityMaintained
ResponsivenessResponsive