NASA SciX MCP Server
This server enables AI assistants to interact with NASA's SciX (ADS) API to search, analyze, and manage astronomical literature. It provides the following capabilities:
Search and retrieve literature: Query using full Solr syntax (author, title, abstract, year, Boolean operators) and fetch metadata by bibcode, DOI, arXiv ID, or SciX ID.
Citation analysis: Compute metrics (h-index, g-index, citation counts, usage stats) and explore citation networks (forward and backward citations).
Export citations: Generate bibliographies in over 20 formats (BibTeX, AASTeX, EndNote, RIS, IEEE, MNRAS, and more) with customizable formatting.
Library management: Create, edit, delete, and list libraries; add/remove papers individually or via search; perform set operations (union, intersection, difference, copy, empty).
Permissions and ownership: View/update library permissions (owner, admin, write, read) and transfer ownership.
Annotations: Add, update, retrieve, or delete notes on library documents.
Documentation search: Query SciX help documentation for usage guidance.
Diagnostics: Run health checks to verify API token, connectivity, and tool registry.
Provides access to the NASA Astrophysics Data System (SciX) for searching astronomical literature, retrieving paper metadata, calculating citation metrics, exploring citation networks, exporting bibliographic data in multiple formats, and managing personal libraries of papers.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@NASA SciX MCP Serverfind top cited exoplanet papers from 2023"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
NASA SciX MCP Server
A Model Context Protocol (MCP) server for the NASA Astrophysics Data System (SciX) API. This server enables LLMs to search astronomical literature, retrieve paper metadata, analyze citation metrics, and export bibliographic data.
Quick Start (MCP clients)
Get an API Key
Create an account at SciX
Generate an API token at https://scixplorer.org/user/settings/token
Set the environment variable:
export SCIX_API_TOKEN=your_api_key_hereOr create a .env file:
cp .env.example .env
# Edit .env and add your keyConfigure your MCP client (Claude, Codex, etc.)
Add to your MCP client configuration:
{
"mcpServers": {
"ads": {
"command": "npx",
"args": ["scix-mcp"],
"env": {
"SCIX_API_TOKEN": "your_api_key_here"
}
}
}
}Common locations: Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %AppData%\\Claude\\claude_desktop_config.json on Windows) and Codex CLI (~/.config/codex/config.json). Restart your client after editing.
Local MCP clients that read .mcp/server.json can also pick up the packaged config in .mcp/server.json; just drop in your SCIX_API_TOKEN.
Environment variables
SCIX_API_TOKEN(required): your SciX/ADS API key.SCIX_API_BASE(optional): override the API base URL. Defaults tohttps://api.adsabs.harvard.edu/v1when unset. Primarily used to point the server at a local mock during the e2e test suite.
Related MCP server: NASA ADS MCP Server
Example Prompts
- Find refereed JWST exoplanet papers from 2022-2024 sorted by citation_count, return the top 5 in markdown with bibcodes, titles, first author, and citation counts.
- Build a query for gravitational wave kilonova follow-ups since 2017 (fielded abstract search), add the first 50 results to library <library_id>, and then give me metrics (h-index, total cites) for those bibcodes in JSON.
- Fetch paper 2020ApJ...905....3A, list its first 10 references with titles, and also list the first 10 forward citations with publication years.
- Create a public library named “Cosmic Web Reviews”, seeded with bibcodes [...], then share the public URL and export the contents in BibTeX.
- For bibcodes [...], return citation metrics plus a ranked list of which papers cite the most recent one (rows=25) in markdown.
- Get all my libraries, pick the one with the most documents, and return its metadata plus the first 5 document titles in JSON.Features
Literature Search: Full-text search with advanced Solr query syntax
Paper Details: Retrieve metadata for any publication
Citation Metrics: Calculate h-index, citation counts, and usage statistics
Citation Network: Explore forward and backward citations
Export: Generate citations in 23 bibliographic formats (BibTeX, AASTeX, EndNote, RIS, and more) — see the
exporttool'sformatenum insrc/types.tsfor the full listDocumentation Search: Query SciX help/docs content via the
search_docstoolHealth Check: Diagnose setup (token, API reachability, tool registry) via the
health_checktoolDual Format: Support for both human-readable Markdown and machine-readable JSON
Available Tools
Search & Metadata
search: Solr-powered search across SciX. Params:query(required),rows(1-100, default 10),start(offset, default 0),sort(score desc|citation_count desc|date desc|date asc|read_count desc, defaultscore desc),response_format(markdown|json, defaultmarkdown).Example queries:
author:"Einstein, A." title:relativity,black holes year:2020-2023,author:^Smith,dark energy AND galaxy clusters.
get_paper: Fetch a paper bybibcode, DOI, arXiv ID, or SciX ID (scix:...) with optionalresponse_format.get_metrics: Metrics forbibcodes(1-2000) with optionalresponse_format; returns h-index, g-index, citation counts, usage stats.
Citation Network
get_citations: Forward citations for a paper (bibcode, DOI, arXiv ID, or SciX ID); optionalrows(1-100, default 20) andresponse_format.get_references: Backward references for a paper (bibcode, DOI, arXiv ID, or SciX ID); optionalrows(1-100, default 20) andresponse_format.
Export
export: Exportbibcodes(1-2000) informat— one of the 23 formats in theExportInputSchemaenum insrc/types.ts(e.g.bibtex,aastex,endnote,ris,ieee,mnras). Usecustom_formatwithformat: customfor a template. Returns plain text in the chosen format.
Documentation
search_docs: Search SciX help documentation. Params:query(required, natural language),limit(1-20, default 5). Returns a ranked list with title, section/subsection, source URL, relevance score, and a focused snippet.
Libraries
get_libraries: List libraries; optionaltype(all|owner|collaborator, defaultall) andresponse_format.get_library: Metadata + documents forlibrary_id; optionalresponse_format.create_library: Create withname(required), optionaldescription,public(defaultfalse),bibcodes, andresponse_format.delete_library: Permanently delete bylibrary_id; optionalresponse_format.edit_library: Updatename,description, orpublicforlibrary_id; optionalresponse_format.manage_documents: Add/remove documents withlibrary_id,bibcodes(1-2000),action(add|remove), and optionalresponse_format.add_documents_by_query: Add search results to a library withlibrary_id,query, optionalrows(1-2000, default 25), andresponse_format.library_operation: Run set ops on a library withlibrary_id,operation(union|intersection|difference|copy|empty), optionalsource_library_ids,name/description(for copy), andresponse_format.
Permissions & Sharing
get_permissions: View owners/collaborators forlibrary_id; optionalresponse_format.update_permissions: Grant/change a user's access withlibrary_id,email,permission(owner|admin|write|read), and optionalresponse_format.transfer_library: Transfer ownership withlibrary_id,email, and optionalresponse_format.
Annotations
get_annotation: Fetch note content forlibrary_id+bibcode; optionalresponse_format.manage_annotation: Add/update note withlibrary_id,bibcode,content, and optionalresponse_format.delete_annotation: Remove note forlibrary_id+bibcode; optionalresponse_format.
Diagnostics
health_check: Diagnose the server setup. No required params (optionalresponse_format). Reports server name/version, API base URL, whether a token is configured, an authentication probe result (ok|unauthorized|rate_limited|unreachable|skipped), and the registered tool names. Never emits the token value. Runs without a token (probe isskipped); use it to tell setup problems apart from ordinary API errors.
Rate Limits
5000 requests per day per API key
Rate limit info is returned in response headers
Contact adshelp@cfa.harvard.edu for higher limits
SciX Search Syntax
The SciX search supports Solr query syntax:
Syntax | Description | Example |
| Exact author |
|
| First author |
|
| Title search |
|
| Abstract search |
|
| Year range |
|
| Refereed only |
|
| Papers citing X |
|
| Papers cited by X |
|
| Boolean operators |
|
Development
Install & Build
pnpm install
pnpm buildLocal commands
# Watch mode
pnpm dev
# Test with MCP Inspector
npx @modelcontextprotocol/inspector node build/index.jsTesting
The project uses Vitest.
Running Tests
# Run all tests
pnpm test
# Run tests in watch mode
pnpm test:watch
# Run tests with coverage
pnpm test:coverage
# Run the end-to-end protocol smoke suite (builds first, then drives the
# built server over stdio against a local mock ADS API)
pnpm test:e2eThe e2e suite (test/e2e/protocol.test.ts) spawns node build/index.js,
connects a real MCP client over stdio, and asserts the live tool/prompt/
resource surface plus one canned call per tool. It points the server at a
local mock via the SCIX_API_BASE environment variable (see below); no real
network access is required.
Test Structure
Tests are organized in the test/ directory:
test/
├── helpers/
│ └── mockFetch.ts # Fetch mocking utilities
├── client.test.ts # HTTP client tests
├── search-docs.test.ts # Documentation search tests
└── tools/
├── search.test.ts # Search tool tests
├── paper.test.ts # Paper details tests
├── metrics.test.ts # Metrics tests
├── citations.test.ts # Citations/references tests
├── export.test.ts # Export tests
└── library.test.ts # Library management testsTest Coverage
The test suite covers:
HTTP Client: GET/POST/PUT/DELETE methods, error handling (401/404/429), timeouts, request formatting
Search Tools: Query parameter encoding, pagination, result limiting, response formatting
Paper Tools: Bibcode validation, field selection, error handling for missing papers
Metrics Tools: Batch bibcode processing, MAX_BIBCODES limits, metric type selection
Citation Tools: Forward/backward citations, sorting, row limits
Export Tools: Multiple export formats (BibTeX, AASTeX, EndNote, etc.), batch processing
Library Tools: All CRUD operations, permissions, annotations, library operations
API Token for Tests
Tests use mock fetch and don't require a real API token. Individual tests set SCIX_API_TOKEN='test-api-key' as needed.
Project Structure
src/
├── index.ts # Main server entry point
├── client.ts # SciX API client wrapper
├── types.ts # TypeScript/Zod type definitions
├── formatters.ts # Response formatting utilities
├── config.ts # Configuration constants
├── identifier-query.ts # Identifier (bibcode/DOI/arXiv/SciX) resolution
├── search-docs.ts # Offline docs search (search_docs tool)
└── tools/
├── search.ts # Search tool
├── paper.ts # Paper details tool
├── metrics.ts # Metrics tool
├── citations.ts # Citation network tools
├── export.ts # Export tool
└── library.ts # Library management toolsExample Usage
Search for papers
Use search with query "supernova 2023" to find recent supernova papersGet paper details
Use get_paper with bibcode "2023ApJ...950..123S"Calculate metrics
Use get_metrics with bibcodes ["2023ApJ...950..123S", "2022MNRAS.517.1234T"]Export citations
Use export with bibcodes ["2023ApJ...950..123S"] and format "bibtex"Error Handling
The server provides clear error messages:
401: Invalid API key - check
SCIX_API_TOKEN404: Resource not found - check bibcode format
429: Rate limit exceeded - wait until reset
Timeout: Request took > 30 seconds
Resources
License
MIT
Support
For API issues: adshelp@cfa.harvard.edu For server issues: Open an issue on GitHub
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables interaction with arXiv.org to search scholarly articles, retrieve metadata, download PDFs, and load article content directly into LLM context for analysis.53MIT
- AlicenseAqualityDmaintenanceProvides seamless access to the NASA Astrophysics Data System (ADS) for searching astronomical papers, tracking citations and metrics, managing paper libraries, and exporting BibTeX references through natural language conversation.107MIT
- AlicenseAqualityDmaintenanceProvides access to the Elsevier Scopus API, enabling AI assistants to search for academic papers, retrieve detailed abstracts, and look up author profiles. It facilitates bibliometric research and scholarly data analysis through natural language commands.538MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to interact with the SciX (formerly NASA ADS) API to search scientific literature, export citations, and analyze bibliometric data. It supports advanced tools for managing libraries, resolving astronomical object names, and exploring citation networks.1MIT
Related MCP Connectors
Search arXiv/Semantic Scholar/OpenAlex + medical evidence (PubMed/Europe PMC) + LaTeX/PDF tools.
Federated search of books and papers, BibTeX/RIS citations, open-access retrieval and reading.
Search 340M+ academic papers — citation graphs, semantic similarity, and AI literature reviews.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/adsabs/scix-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server