Search / io.github.The-40-Thieves/alexandria-mcp
Alexandria
L0· runs locallySearch, read, and cite across 152 libraries: 11 tools, 3 prompts, and a full-text resource.
v11.0.0 · active · repository · descriptor JSON · versions
Search / io.github.The-40-Thieves/alexandria-mcp
L0· runs locallySearch, read, and cite across 152 libraries: 11 tools, 3 prompts, and a full-text resource.
v11.0.0 · active · repository · descriptor JSON · versions
{
"mcpServers": {
"alexandria-mcp": {
"command": "npx",
"args": [
"-y",
"@the-40-thieves/[email protected]"
],
"env": {
"OPENAI_API_KEY": "${OPENAI_API_KEY}",
"ALEXANDRIA_API_KEY": "${ALEXANDRIA_API_KEY}",
"CORE_API_KEY": "${CORE_API_KEY}",
"COURTLISTENER_API_KEY": "${COURTLISTENER_API_KEY}",
"GOVINFO_API_KEY": "${GOVINFO_API_KEY}",
"GOOGLE_BOOKS_API_KEY": "${GOOGLE_BOOKS_API_KEY}",
"GITHUB_TOKEN": "${GITHUB_TOKEN}",
"NASA_ADS_API_KEY": "${NASA_ADS_API_KEY}",
"EUROPEANA_API_KEY": "${EUROPEANA_API_KEY}",
"SEMANTIC_SCHOLAR_API_KEY": "${SEMANTIC_SCHOLAR_API_KEY}"
}
}
}
}claude mcp add alexandria-mcp -e "OPENAI_API_KEY=${OPENAI_API_KEY}" -e "ALEXANDRIA_API_KEY=${ALEXANDRIA_API_KEY}" -e "CORE_API_KEY=${CORE_API_KEY}" -e "COURTLISTENER_API_KEY=${COURTLISTENER_API_KEY}" -e "GOVINFO_API_KEY=${GOVINFO_API_KEY}" -e "GOOGLE_BOOKS_API_KEY=${GOOGLE_BOOKS_API_KEY}" -e "GITHUB_TOKEN=${GITHUB_TOKEN}" -e "NASA_ADS_API_KEY=${NASA_ADS_API_KEY}" -e "EUROPEANA_API_KEY=${EUROPEANA_API_KEY}" -e "SEMANTIC_SCHOLAR_API_KEY=${SEMANTIC_SCHOLAR_API_KEY}" -- npx -y @the-40-thieves/[email protected][mcp_servers.alexandria-mcp]
command = "npx"
args = ["-y", "@the-40-thieves/[email protected]"]
env = { "OPENAI_API_KEY" = "${OPENAI_API_KEY}", "ALEXANDRIA_API_KEY" = "${ALEXANDRIA_API_KEY}", "CORE_API_KEY" = "${CORE_API_KEY}", "COURTLISTENER_API_KEY" = "${COURTLISTENER_API_KEY}", "GOVINFO_API_KEY" = "${GOVINFO_API_KEY}", "GOOGLE_BOOKS_API_KEY" = "${GOOGLE_BOOKS_API_KEY}", "GITHUB_TOKEN" = "${GITHUB_TOKEN}", "NASA_ADS_API_KEY" = "${NASA_ADS_API_KEY}", "EUROPEANA_API_KEY" = "${EUROPEANA_API_KEY}", "SEMANTIC_SCHOLAR_API_KEY" = "${SEMANTIC_SCHOLAR_API_KEY}" }
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"alexandria-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"@the-40-thieves/[email protected]"
],
"enabled": true,
"environment": {
"OPENAI_API_KEY": "{env:OPENAI_API_KEY}",
"ALEXANDRIA_API_KEY": "{env:ALEXANDRIA_API_KEY}",
"CORE_API_KEY": "{env:CORE_API_KEY}",
"COURTLISTENER_API_KEY": "{env:COURTLISTENER_API_KEY}",
"GOVINFO_API_KEY": "{env:GOVINFO_API_KEY}",
"GOOGLE_BOOKS_API_KEY": "{env:GOOGLE_BOOKS_API_KEY}",
"GITHUB_TOKEN": "{env:GITHUB_TOKEN}",
"NASA_ADS_API_KEY": "{env:NASA_ADS_API_KEY}",
"EUROPEANA_API_KEY": "{env:EUROPEANA_API_KEY}",
"SEMANTIC_SCHOLAR_API_KEY": "{env:SEMANTIC_SCHOLAR_API_KEY}"
}
}
}
}{
"mcpServers": {
"alexandria-mcp": {
"command": "npx",
"args": [
"-y",
"@the-40-thieves/[email protected]"
],
"env": {
"OPENAI_API_KEY": "${OPENAI_API_KEY}",
"ALEXANDRIA_API_KEY": "${ALEXANDRIA_API_KEY}",
"CORE_API_KEY": "${CORE_API_KEY}",
"COURTLISTENER_API_KEY": "${COURTLISTENER_API_KEY}",
"GOVINFO_API_KEY": "${GOVINFO_API_KEY}",
"GOOGLE_BOOKS_API_KEY": "${GOOGLE_BOOKS_API_KEY}",
"GITHUB_TOKEN": "${GITHUB_TOKEN}",
"NASA_ADS_API_KEY": "${NASA_ADS_API_KEY}",
"EUROPEANA_API_KEY": "${EUROPEANA_API_KEY}",
"SEMANTIC_SCHOLAR_API_KEY": "${SEMANTIC_SCHOLAR_API_KEY}"
}
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=alexandria-mcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkB0aGUtNDAtdGhpZXZlcy9hbGV4YW5kcmlhLW1jcEAxMS4wLjAiXSwiZW52Ijp7Ik9QRU5BSV9BUElfS0VZIjoiJHtPUEVOQUlfQVBJX0tFWX0iLCJBTEVYQU5EUklBX0FQSV9LRVkiOiIke0FMRVhBTkRSSUFfQVBJX0tFWX0iLCJDT1JFX0FQSV9LRVkiOiIke0NPUkVfQVBJX0tFWX0iLCJDT1VSVExJU1RFTkVSX0FQSV9LRVkiOiIke0NPVVJUTElTVEVORVJfQVBJX0tFWX0iLCJHT1ZJTkZPX0FQSV9LRVkiOiIke0dPVklORk9fQVBJX0tFWX0iLCJHT09HTEVfQk9PS1NfQVBJX0tFWSI6IiR7R09PR0xFX0JPT0tTX0FQSV9LRVl9IiwiR0lUSFVCX1RPS0VOIjoiJHtHSVRIVUJfVE9LRU59IiwiTkFTQV9BRFNfQVBJX0tFWSI6IiR7TkFTQV9BRFNfQVBJX0tFWX0iLCJFVVJPUEVBTkFfQVBJX0tFWSI6IiR7RVVST1BFQU5BX0FQSV9LRVl9IiwiU0VNQU5USUNfU0NIT0xBUl9BUElfS0VZIjoiJHtTRU1BTlRJQ19TQ0hPTEFSX0FQSV9LRVl9In19"
}{
"servers": {
"alexandria-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@the-40-thieves/[email protected]"
],
"env": {
"OPENAI_API_KEY": "${OPENAI_API_KEY}",
"ALEXANDRIA_API_KEY": "${ALEXANDRIA_API_KEY}",
"CORE_API_KEY": "${CORE_API_KEY}",
"COURTLISTENER_API_KEY": "${COURTLISTENER_API_KEY}",
"GOVINFO_API_KEY": "${GOVINFO_API_KEY}",
"GOOGLE_BOOKS_API_KEY": "${GOOGLE_BOOKS_API_KEY}",
"GITHUB_TOKEN": "${GITHUB_TOKEN}",
"NASA_ADS_API_KEY": "${NASA_ADS_API_KEY}",
"EUROPEANA_API_KEY": "${EUROPEANA_API_KEY}",
"SEMANTIC_SCHOLAR_API_KEY": "${SEMANTIC_SCHOLAR_API_KEY}"
}
}
}
}{
"mcpServers": {
"alexandria-mcp": {
"command": "npx",
"args": [
"-y",
"@the-40-thieves/[email protected]"
],
"env": {
"OPENAI_API_KEY": "${OPENAI_API_KEY}",
"ALEXANDRIA_API_KEY": "${ALEXANDRIA_API_KEY}",
"CORE_API_KEY": "${CORE_API_KEY}",
"COURTLISTENER_API_KEY": "${COURTLISTENER_API_KEY}",
"GOVINFO_API_KEY": "${GOVINFO_API_KEY}",
"GOOGLE_BOOKS_API_KEY": "${GOOGLE_BOOKS_API_KEY}",
"GITHUB_TOKEN": "${GITHUB_TOKEN}",
"NASA_ADS_API_KEY": "${NASA_ADS_API_KEY}",
"EUROPEANA_API_KEY": "${EUROPEANA_API_KEY}",
"SEMANTIC_SCHOLAR_API_KEY": "${SEMANTIC_SCHOLAR_API_KEY}"
}
}
}
}extensions:
"alexandria-mcp":
enabled: true
name: "alexandria-mcp"
type: stdio
cmd: "npx"
args:
- "-y"
- "@the-40-thieves/[email protected]"
envs:
"OPENAI_API_KEY": "${OPENAI_API_KEY}"
"ALEXANDRIA_API_KEY": "${ALEXANDRIA_API_KEY}"
"CORE_API_KEY": "${CORE_API_KEY}"
"COURTLISTENER_API_KEY": "${COURTLISTENER_API_KEY}"
"GOVINFO_API_KEY": "${GOVINFO_API_KEY}"
"GOOGLE_BOOKS_API_KEY": "${GOOGLE_BOOKS_API_KEY}"
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
"NASA_ADS_API_KEY": "${NASA_ADS_API_KEY}"
"EUROPEANA_API_KEY": "${EUROPEANA_API_KEY}"
"SEMANTIC_SCHOLAR_API_KEY": "${SEMANTIC_SCHOLAR_API_KEY}"
timeout: 300
Placeholders to fill from your own secret store: ${OPENAI_API_KEY}, ${ALEXANDRIA_API_KEY}, ${CORE_API_KEY}, ${COURTLISTENER_API_KEY}, ${GOVINFO_API_KEY}, ${GOOGLE_BOOKS_API_KEY}, ${GITHUB_TOKEN}, ${NASA_ADS_API_KEY}, ${EUROPEANA_API_KEY}, ${SEMANTIC_SCHOLAR_API_KEY}. The registry never accepts secret values.
This is a local package: the command runs on your machine.
Not scored: fewer than three checks apply, usually because no remote answered a credential-free probe or the server is a local package.
protocol.modern, protocol.stateless, protocol.transport, protocol.list_ttlno remote answered a protocol handshake (not probed yet, unreachable, or local-only)auth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptions, tools.description_length, tools.schemas, tools.annotations, tools.directory_hints, tools.token_cost, tools.api_dumptool list unknown (behind auth, not probed, or empty)stability.changes, stability.rug_pulltool list unknowndeps.known_vulnsno known advisory in 94 resolved packagesdeps.mcp_sdk_version@modelcontextprotocol/client 2.1.0 has 2 known advisories (GHSA-6prh-2h8m-c8cw, GHSA-6qxp-vccf-f47h); update @modelcontextprotocol/client to 2.3.0 or laterdeps.resolvable@the-40-thieves/[email protected] resolved: 94 packagesNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo ~liveness-unmeasured ~updated-46d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
@the-40-thieves/[email protected] npm93 dependencies, resolved · MCP SDK @modelcontextprotocol/client 2.1.0 · advisories checked 2026-10-20
| advisory | severity | package | fixed in |
|---|---|---|---|
| GHSA-6qxp-vccf-f47hMCP TypeScript SDK: OAuth client could send credentials to an authorization server chosen by the MCP server | high | @modelcontextprotocol/[email protected]MCP SDK, direct | fixed in 2.2.0 |
| GHSA-6prh-2h8m-c8cwMCP TypeScript client SDK: HTTP client transports and OAuth requests followed cross-origin redirects and re-sent custom headers and request bodies | moderate | @modelcontextprotocol/[email protected]MCP SDK, direct | fixed in 2.3.0 |
Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.
| package | registry | version | runtime | secrets |
|---|---|---|---|---|
@the-40-thieves/alexandria-mcp | npm | 11.0.0 | npx | OPENAI_API_KEY, ALEXANDRIA_API_KEY, CORE_API_KEY, COURTLISTENER_API_KEY, GOVINFO_API_KEY, GOOGLE_BOOKS_API_KEY, GITHUB_TOKEN, NASA_ADS_API_KEY, EUROPEANA_API_KEY, SEMANTIC_SCHOLAR_API_KEY |
No tools observed. Local packages are never executed by the registry.
Schemas: list_tools.
{
"name": "io.github.The-40-Thieves/alexandria-mcp",
"_meta": {
"io.modelcontextprotocol.registry/publisher-provided": {
"environmentVariablesNote": "environmentVariables above is a curated subset: the optional, source-specific keys. The full list of environment variables this server reads (transport, provider, and caching settings included) is documented in .env.example in the repository."
}
},
"title": "Alexandria",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"version": "11.0.0",
"packages": [
{
"version": "11.0.0",
"transport": {
"type": "stdio"
},
"identifier": "@the-40-thieves/alexandria-mcp",
"runtimeHint": "npx",
"registryType": "npm",
"registryBaseUrl": "https://registry.npmjs.org",
"environmentVariables": [
{
"name": "OPENAI_API_KEY",
"format": "string",
"isSecret": true,
"description": "OpenAI key for routing (library_ask), synthesis (library_answer, library_research), and embeddings (library_ingest). Search and read tools work without it."
},
{
"name": "ALEXANDRIA_BASE_URL",
"format": "string",
"description": "OpenAI-compatible gateway base URL shared by every LLM role (router, synth, research, embeddings, rerank). Falls back to https://api.openai.com/v1.",
"placeholder": "https://gateway.example.com/v1"
},
{
"name": "ALEXANDRIA_API_KEY",
"format": "string",
"isSecret": true,
"description": "API key paired with ALEXANDRIA_BASE_URL. Falls back to OPENAI_API_KEY."
},
{
"name": "CORE_API_KEY",
"format": "string",
"isSecret": true,
"description": "Unlocks the core source (CORE, 57M+ open access papers). Free key from core.ac.uk/services/api."
},
{
"name": "COURTLISTENER_API_KEY",
"format": "string",
"isSecret": true,
"description": "Unlocks the courtlistener source (US federal and state court opinions). Free key from courtlistener.com."
},
{
"name": "GOVINFO_API_KEY",
"format": "string",
"isSecret": true,
"description": "Unlocks govinfo (Congressional Record, Federal Register, US Code); also accepted by congress and regulations. Free key from api.data.gov."
},
{
"name": "GOOGLE_BOOKS_API_KEY",
"format": "string",
"isSecret": true,
"description": "Unlocks the googlebooks source (40M+ books). Free key from the Google Cloud Console (Books API)."
},
{
"name": "GITHUB_TOKEN",
"format": "string",
"isSecret": true,
"description": "Unlocks githubsearch and githubmcp (GitHub code search); optional for ghsa and openiti. Public-repo read scope is enough."
},
{
"name": "NASA_ADS_API_KEY",
"format": "string",
"isSecret": true,
"description": "Unlocks the nasaads source (NASA Astrophysics Data System). Free key from ui.adsabs.harvard.edu."
},
{
"name": "EUROPEANA_API_KEY",
"format": "string",
"isSecret": true,
"description": "Unlocks the europeana source (50M+ European cultural heritage items). Free key from apis.europeana.eu."
},
{
"name": "SEMANTIC_SCHOLAR_API_KEY",
"format": "string",
"isSecret": true,
"description": "Optional for semanticscholar and library_recommend; raises the rate limit. Free key from semanticscholar.org/product/api."
}
]
}
],
"repository": {
"id": "1233551033",
"url": "https://github.com/The-40-Thieves/alexandria-mcp",
"source": "github"
},
"description": "Search, read, and cite across 152 libraries: 11 tools, 3 prompts, and a full-text resource."
}