scix-client
scix-client gives your AI assistant direct access to the SciX / NASA ADS database. Search the literature, build bibliographies, analyze citation networks, manage personal libraries, resolve object names via SIMBAD/NED, and export references in BibTeX, AASTeX, or 15 other formats — all from natural language.
It also works standalone: as a CLI tool, a Python library, or a Rust crate.
Research workflows: literature reviews, bibliography management, citation analysis, reference export, object resolution, paper details, library collaboration, annotation/notes
| Mode | What it does | Guide |
|---|---|---|
MCP server (scix serve) |
Expose SciX tools to Claude, Cursor, VS Code, Zed, Gemini CLI, Codex CLI, Windsurf | docs/mcp-server.md |
CLI (scix) |
Command-line tool for your terminal | docs/cli.md |
Python library (scix_client) |
Native Python module — pip install scix-client |
docs/python.md |
Rust library (scix_client) |
Async Rust crate — cargo add scix-client |
docs/rust.md |
One binary (scix) does everything. Python bindings are auto-generated from the Rust types — zero extra maintenance.
You need a free SciX / ADS API token from https://ui.adsabs.harvard.edu/user/settings/token. Every path below asks for it once and stores it for you.
Claude Desktop: one-click install
- Download
scix-vX.Y.Z.mcpbfrom the latest release (macOS universal + Windows in one file). - Double-click it (or drag it onto Claude Desktop → Settings → Extensions).
- Paste your API token when asked. Done — no terminal, no PATH, no JSON.
Everything else: install scix, then scix setup
Pick any one installer:
# One-line installer (prebuilt binary, no Rust toolchain)
curl -sSf https://raw.githubusercontent.com/yipihey/scix-client/main/install.sh | sh
# Python (also gives you the scix_client module)
pip install scix-client # or: pipx install scix-client / uv tool install scix-client
# Rust
cargo install scix-client # compiles locally
cargo binstall scix-client # prebuilt binary via cargo-binstall
Then:
scix setup
The wizard asks for your token (offering to open the token page), validates it, saves it to ~/.config/scix/token, and registers the server with every editor it finds: Claude Code, Claude Desktop, Cursor, Zed, Gemini CLI, Codex CLI, Windsurf. Run it again any time; it is idempotent.
scix setup claude-code— configure only one editorscix setup --yes— non-interactive (usesSCIX_API_TOKEN, configures all detected editors)scix login— just save the token, touch no editor configsscix doctor— check binary, PATH, token, API connectivity, and detected editors
Install badges
After scix login, any MCP host can run plain scix serve with no environment setup:
GUI editors do not see your shell PATH. If a badge-installed server cannot find scix, run scix setup cursor (or whichever editor) once; it writes the absolute path.
No install at all
With uv present, this works as the command in any MCP config:
{ "command": "uvx", "args": ["scix-client", "serve"], "env": { "SCIX_API_TOKEN": "your-token" } }
Manual setup
Claude Code
claude mcp add --scope user scix -- scix serve
(--scope user makes it available in every project; the default scope is the current directory only.)
Claude Desktop (manual, instead of the .mcpb)
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows), using the full path from which scix:
{
"mcpServers": {
"scix": {
"command": "/full/path/to/scix",
"args": ["serve"],
"env": { "SCIX_API_TOKEN": "your-token-here" }
}
}
}
See docs/mcp-server.md for Cursor, VS Code, Zed, Gemini CLI, Codex CLI, Windsurf, the full tool reference, and example workflows.
Quick Start: CLI
scix search 'first_author:"Perlmutter" supernova' --sort "citation_count desc"
scix export 1999ApJ...517..565P --format bibtex
scix cites 1999ApJ...517..565P --rows 50
scix libraries create "Thesis Papers" --description "Key references"
See docs/cli.md for all commands including library permissions, notes, and set operations.
Quick Start: Python
pip install scix-client
import scix_client
client = scix_client.SciXClient() # token from SCIX_API_TOKEN or ~/.config/scix/token
results = client.search('author:"Einstein" year:1905', rows=5)
for paper in results.papers:
print(f"{paper.title} ({paper.year}) — {paper.citation_count} citations")
The wheel also installs the scix command, so pip install scix-client && scix setup is a complete MCP setup. See docs/python.md for the full API reference.
Quick Start: Rust
[dependencies]
scix-client = { version = "0.4", default-features = false } # library only, no CLI deps
use scix_client::SciXClient;
#[tokio::main]
async fn main() -> scix_client::error::Result<()> {
let client = SciXClient::from_env()?;
let results = client.search("author:\"Einstein\" year:1905", 5).await?;
for paper in &results.papers {
println!("{} — {} citations", paper.title, paper.citation_count.unwrap_or(0));
}
Ok(())
}
See docs/rust.md for the full API, error handling, and architecture.
Query Syntax Quick Reference
| Pattern | Meaning |
|---|---|
author:"Einstein" |
Author search |
first_author:"Einstein" |
First author only |
title:"dark matter" |
Title words |
abs:"gravitational waves" |
Abstract words |
year:2023 or year:[2020 TO 2023] |
Year / year range |
bibcode:2023ApJ... |
Bibcode |
doi:"10.1234/..." |
DOI |
object:"M31" |
Astronomical object |
property:refereed |
Refereed papers |
property:openaccess |
Open access |
Boolean: AND, OR, NOT, parentheses
Functional: citations(bibcode:X), references(bibcode:X), similar(bibcode:X)
Sort: date desc (default), citation_count desc, score desc, read_count desc
See docs/query-syntax.md for the full reference including all 17 export formats.
Token lookup order
scix (and the Python/Rust clients' from_env) look for the API token in this order:
SCIX_API_TOKENenvironment variableADS_API_TOKENenvironment variable~/.config/scix/token(%APPDATA%\scix\tokenon Windows; override the directory withSCIX_CONFIG_DIR), written byscix login/scix setup
Rate Limiting
The SciX API allows 5,000 requests/day and 5 requests/second. scix-client handles rate limiting automatically — a token-bucket rate limiter enforces 5 req/s locally, and API rate-limit headers are respected.
License
MIT
Metadata
Release files for scix-client 0.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| scix_client-0.4.1.tar.gz | 63.7 kB | With provenance | Details for scix_client-0.4.1.tar.gz |
Built distributions (wheels)
| File | Actions Reset | |||
|---|---|---|---|---|
| scix_client-0.4.1-cp38-abi3-win_amd64.whl | CPython 3.8 | abi3 | Windows x86-64 | Details for scix_client-0.4.1-cp38-abi3-win_amd64.whl |
| scix_client-0.4.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.8 | abi3 | Linux glibc 2.17+ x86-64 | Details for scix_client-0.4.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
| scix_client-0.4.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | CPython 3.8 | abi3 | Linux glibc 2.17+ ARM64 | Details for scix_client-0.4.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
| scix_client-0.4.1-cp38-abi3-macosx_11_0_arm64.whl | CPython 3.8 | abi3 | macOS 11.0+ ARM64 | Details for scix_client-0.4.1-cp38-abi3-macosx_11_0_arm64.whl |
| scix_client-0.4.1-cp38-abi3-macosx_10_12_x86_64.whl | CPython 3.8 | abi3 | macOS 10.12+ x86-64 | Details for scix_client-0.4.1-cp38-abi3-macosx_10_12_x86_64.whl |
Total release size: 15.2 MB
Release files / scix_client-0.4.1.tar.gz
| Download URL | scix_client-0.4.1.tar.gz |
|---|---|
| Size | 63.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
49837f8160afe305975f8216bc082c9aeeb166f3225e8002a32237c71e902154
|
|
BLAKE2b-256 checksum How to use checksums |
9e3d2e6afad003ab60d30a088eab76cae1026f8e638e524afdd22776283b6b11
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.
Transparency logRelease files / scix_client-0.4.1-cp38-abi3-win_amd64.whl
| Download URL | scix_client-0.4.1-cp38-abi3-win_amd64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | CPython 3.8 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
25caea71e97383567e0e0b8db651ded710b60dd90d5dcf0e54b7bb5eecd1b853
|
|
BLAKE2b-256 checksum How to use checksums |
8deb49680ee8afdac1414151d9ed5874d81550f1fc87dd9b663dea9fb68fd4b4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.
Transparency logRelease files / scix_client-0.4.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | scix_client-0.4.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 3.2 MB |
| Tags | CPython 3.8 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
d7d55202675c27149f60cfe43a2688ba8a6bb20af8c86700118003ef4feb2674
|
|
BLAKE2b-256 checksum How to use checksums |
4dd340d5a2d4c8246ba2303ba42d10cc93abd0ee07260f4fff30ad39f8db4e7f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.
Transparency logRelease files / scix_client-0.4.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | scix_client-0.4.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 3.2 MB |
| Tags | CPython 3.8 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
a54296594240d3b0b8222a0d132008d00a725432086df02aedccbb3e4e507a8b
|
|
BLAKE2b-256 checksum How to use checksums |
1b17868be1e7006dede092c9c1bfb37e332951dfb32fbddbf129e47330f13c14
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.
Transparency logRelease files / scix_client-0.4.1-cp38-abi3-macosx_11_0_arm64.whl
| Download URL | scix_client-0.4.1-cp38-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.9 MB |
| Tags | CPython 3.8 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
897fe53be1f580ae8e70e43c9646aef4544992386bb03b9e3a93520bf933ee78
|
|
BLAKE2b-256 checksum How to use checksums |
b0078df6b123e36fbd533c5d3191c3a9a2ebe80dc5b1a5af5f7f1505df69ea35
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.
Transparency logRelease files / scix_client-0.4.1-cp38-abi3-macosx_10_12_x86_64.whl
| Download URL | scix_client-0.4.1-cp38-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 3.0 MB |
| Tags | CPython 3.8 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
a6791aacddb408252594dee04a34c53284920decc3252a13494b4e0365a6b0dd
|
|
BLAKE2b-256 checksum How to use checksums |
0608c84c6a715fa6339b9eac2a15b39cdc6b14162094faf66cdb873ff34e7e58
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.
Transparency logSecurity for scix-client 0.4.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 6 files in this release have been uploaded with provenance metadata.
Attestation for scix_client-0.4.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.