
CiteNexus
io.github.akougkasPublished by GitHub account akougkasv0.2.2Updated Oct 24, 2026
Search scholarly sources, verify references, and export citations with traceable evidence.
Overview
CiteNexus lets an AI assistant search scholarly sources, resolve and verify references, and export citations in BibTeX, RIS or CSL-JSON with traceable evidence.
- What you can do
- Search federated scholarly sources and page through per-provider results, with optional year and open-access filters and deduplication across providers. Resolve DOIs and namespaced identifiers such as arXiv, PubMed, OpenAlex, Scopus or Web of Science IDs, and check a citation's title and year against retrieved metadata. Export single or batched records as BibTeX, RIS or CSL-JSON, and normalize existing BibTeX without inventing fields. Traverse a paper's references or citing works and read citation counts kept separate by provider and index. Find reported open-access locations, optionally enriched through Unpaywall, and inspect which providers are configured.
- When to use it
- Useful when building a literature shortlist, repairing an uncertain reference, checking the source behind a citation count, or preparing a bibliography for a reference manager or writing tool. It suits research assistants that need deterministic, source-attributed citation metadata rather than model-generated fields.
- Requirements
- Runs locally over stdio as a PyPI package via uvx; Python 3.11+ and uv are required, and the first run downloads the package. Crossref, DataCite, Europe PMC, arXiv and Semantic Scholar work without keys. Optional keys enable OpenAlex, Scopus, Web of Science, SerpAPI or SearchApi, plus optional contact emails for Crossref and Unpaywall. Network access to provider APIs is needed.
Installation
In SourceWeft
- Open CiteNexus in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
CiteNexus MCP
[CiteNexus]Scholarly discovery and citations with evidence you can trace.
CiteNexus connects research assistants to open scholarly metadata, specialist academic indexes, and optional commercial databases through the Model Context Protocol. Search without an API key, resolve stable identifiers, check references against their sources, and export citations without asking a language model to invent the missing fields.
This is a citation and metadata service for the assistant you already use. It works alongside reference managers such as Zotero and writing environments that support MCP.
CiteNexus 0.2.3 includes the MCP service and the cite-nexus-wtfp companion.
The WTF-P integration targets its separate 0.7.0 release. Marketplace listings and native
client plugin qualification are tracked independently.
Quick start · WTF-P integration · Provider guide · Troubleshooting · Release information
- Useful without credentials: Crossref, DataCite and Europe PMC are the default search sources. arXiv and Semantic Scholar are also available without mandatory keys.
- Optional specialist and commercial access: OpenAlex, Google Scholar through SerpAPI or SearchApi, Scopus and Web of Science Starter have explicit configuration and provider selection.
- Source-backed records: namespaced identifiers, retrieval timestamps, field attribution, incomplete-author warnings and provider-specific citation counts.
- Deterministic export: BibTeX, RIS and CSL-JSON from retrieved metadata. No model is required.
- Current MCP: Python SDK 2.2, the 2026-07-28 specification, structured tool results, resources, prompts, progress, stdio and Streamable HTTP. Earlier clients remain supported by the SDK's legacy protocol path.
Quick start
Python 3.11+ and uv are required.
For an MCP client with a mcpServers configuration:
The client starts MCP over stdio. No API key or .env file is required. Running the server
command directly waits for a client; it is not an interactive search shell. If your client
cannot find uvx, use its absolute executable path. The first run downloads the package and
its dependencies.
For a persistent installation, including the WTF-P companion:
The diagnostic starts the actual MCP service and lists providers without querying vendor APIs. See the WTF-P setup for the separate integration and executable-path setting.
For local HTTP clients:
Connect to http://127.0.0.1:8000/mcp. The CLI binds only to loopback and serves a single trust
boundary. A public, multi-user deployment needs authentication, credential isolation and its
own deployment integration; the CLI does not supply those features.
Sources and access
find-open-access can additionally enrich DOI records with Unpaywall when
UNPAYWALL_EMAIL is configured. It returns reported legal OA locations and licensing information;
it does not download PDFs or bypass access restrictions.
Free access is subject to provider rate limits and terms. Anonymous Semantic Scholar can be heavily throttled. OpenAlex access policies have changed over time; CiteNexus requires a key for that adapter even when an anonymous request happens to succeed. Institution keys do not by themselves guarantee subscription access or access outside an institution's network.
Commercial and metered adapters are called only when selected explicitly, when resolving their
own namespaced IDs, or when deliberately configured as search defaults. Setting a key alone does
not add a vendor to default searches. list-providers reports configuration, capabilities and
documentation links without testing access or revealing key values.
Research workflows
Use CiteNexus to build a literature shortlist, repair an uncertain reference, check the source behind a citation count, or prepare a bibliography for your writing tool. For a full writing workflow, the WTF-P companion connects discovery to evidence tables, outlines and manuscript work while keeping candidate references visible for review.
Ask your assistant to use the tools directly, or start with the literature-review and
bibliography-audit MCP prompts. Example tool arguments:
search-papers defaults to 10 results per provider, not 10 overall. Results interleave each
provider's ranking, then merge compatible records. limit is 1–50, or at most 20 when using
SerpAPI or SearchApi. Use each provider's next_offsets with the same limit, selecting that provider for
the next call. Europe PMC search uses next_cursors instead: pass its token as cursor,
select only europe_pmc, keep the same query and limit, and leave offset at zero.
Offsets must be multiples of the limit, up to 10,000. year_from, year_to and
open_access_only filter the fetched page; unknown values are excluded. Abstracts are omitted
from search results by default; set include_abstract: true or resolve a record to retrieve them.
Search records are compact by default: field_sources is empty while sources still names every
provider. Set detail: "full" or resolve a record for per-field provenance.
Provider search languages differ: explicit advanced queries use that provider's syntax.
Supported identifiers include 10.1038/nature14539, arxiv:1706.03762, PMID:26017442,
PMC12345, openalex:W2919115771, s2:<paperId>, s2:CorpusId:<number>,
scholar:<numericClusterId>, scopus:<numericId>, and WOS:<recordId>. DOI, arXiv and PubMed
URLs are recognized. Arbitrary URLs are not fetched, and unprefixed numeric strings are not
assumed to be PubMed or Scholar IDs.
DOI resolution tries Crossref, DataCite and Europe PMC in order until a matching record is
retrieved. An explicit providers list instead checks each compatible selected source and
retains evidence and disagreements. Native identifiers route to their corresponding source.
A title search always returns candidates; it never silently declares the first result a match.
Read the MCP resources cite-nexus://methodology, cite-nexus://providers and
cite-nexus://workflows for machine-accessible guidance.
What “verified” means
Verification establishes that an identifier exists in retrieved metadata and checks any supplied
title and year. It does not establish that a paper's findings are correct, that every author
is present, that the paper supports a specific claim, or that no retraction exists. A provider
outage produces unavailable, rather than a claim that the citation is fabricated.
Exports omit unavailable metadata. Partial author lists generate warnings; BibTeX uses others
where appropriate. Citation counts retain their source, index and observation timestamp and are
never summed across databases. Counts from different providers are not directly interchangeable.
Metadata can contain errors or conflicting publication years, and an absent retraction flag is
not proof that a paper is unretracted.
CSL-JSON is structured bibliographic data. Use a CSL processor or your reference manager to render
APA, IEEE or a journal's house style. enhance-citation supports default and compact formatting;
it does not infer keywords, awards, impact factors or missing authors.
Configuration
Copy .env.example to .env only if you need optional settings. Existing process environment
variables take precedence. The CLI loads ./.env, or an explicit --env-file; it never searches
parent directories. Importing the Python package does not read .env or call external services.
Pass --no-env-file for clients that manage credentials themselves. The WTF-P companion and
plugin manifests always use this mode.
Cached records retain their original retrieval and citation-observation timestamps. The cache is
bounded and partitions responses by credentials. Responses larger than 8 MB are rejected. Long
Retry-After cooldowns return a provider issue instead of holding the call open. Keys and upstream
error bodies are excluded from tool errors. Local stderr logging keeps stdout clean for MCP.
See provider details, migration notes, and product direction for access nuances and boundaries.
Development and verification
To work from source:
The automated suite uses synthetic provider fixtures and mock HTTP, plus real local stdio and Streamable HTTP processes. It requires no vendor credentials and blocks external network access from the test process. Paid and institutional adapters have fixture-based contract coverage; live entitlement testing requires an account with access.
An explicit public-API smoke test is available separately:
It ignores account credentials and only contacts Crossref, DataCite, Europe PMC, arXiv and anonymous Semantic Scholar. Rate limits and network failures are reported as outcomes.
The official MCP Tasks extension is not advertised. SDK 2.2 does not implement it yet.
batch-citations is a bounded synchronous workflow with progress and cancellation, not a durable
job queue. The roadmap describes the criteria for adding persistent
tasks, local libraries and further licensed providers.
The launch kit includes positioning, listing copy, a demo script, and promotional drafts. The marketplace inventory tracks 41 channels and leads, including verified routes, duplicate channels and inactive or unresolved sites. Source metadata, portable plugin manifests and image assets are prepared for review. See data handling before configuring optional providers or hosting.
License
MIT. Provider content, API access and redistribution remain subject to each source's terms.
Source: README.md at commit 3f92bcf
Tools
0Version history
2- v0.2.2LatestSep 17, 2026
- v0.2.0Sep 17, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts