onecite — Claude Code MCP server: citations from DOI and arXiv
Turns DOIs, arXiv IDs, ISBNs and URLs into BibTeX or CSL-JSON records. Handy when a draft has collected references in several formats.
claude mcp add onecite -- uvx oneciteWhat onecite does
onecite is a command-line tool and Python library that plugs into an agent as an MCP server. Input covers DOIs, PMIDs, arXiv IDs, ISBNs, URLs and BibTeX fragments; output is BibTeX or CSL-JSON. The pipeline runs in four stages: parse, identify, enrich, format. Entries that stay unresolved show up in the report instead of vanishing.
Strong identifiers travel their own routes: Crossref, arXiv, PubMed, Semantic Scholar, Google Books, DataCite, Zenodo. Plain text with no identifier is not auto-accepted by process — onecite suggest hands back a ranked candidate list for a human to judge. Theses and dissertations get a separate route through OpenAIRE and BASE.
Everything starts with uvx onecite, so uv has to be on the machine. Normal process and suggest runs make outbound requests: a DOI goes to Crossref, search queries go to Crossref, Semantic Scholar and arXiv, and any URL you pass is fetched from the host you named. Google Scholar sits in suggest as an optional fallback, off by default, and can hit a CAPTCHA when switched on. Resolving a source does not prove a work is authentic or unretracted.
What it helps with
- build BibTeX from a batch of DOIs and arXiv IDs
- find candidates for a link that has no identifier
- fill in journal, volume and page fields
- format a dissertation through OpenAIRE and BASE
- produce CSL-JSON for downstream processing
Example prompts for the agent
- Build BibTeX from these DOIs and arXiv IDs
- Run onecite suggest on this link and show the candidates
- Fill in the missing fields for this Crossref article record
How to install onecite
Platform CLI
claude mcp add onecite -- uvx oneciteuvx runs the command named after the package; if the README names another one, use uvx --from onecite <command>
Platform CLI
codex mcp add onecite -- uvx oneciteuvx runs the command named after the package; if the README names another one, use uvx --from onecite <command>
Config file
{
"mcpServers": {
"onecite": {
"command": "uvx",
"args": [
"onecite"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from onecite <command>
Config file
{
"servers": {
"onecite": {
"type": "stdio",
"command": "uvx",
"args": [
"onecite"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from onecite <command>
Platform CLI
gemini mcp add onecite uvx oneciteuvx runs the command named after the package; if the README names another one, use uvx --from onecite <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about onecite
How do I install onecite in Claude Code?
With one command: claude mcp add onecite -- uvx onecite.
What does onecite do?
It normalizes references into BibTeX or CSL-JSON: resolves the source from an identifier, completes available fields, and reports unresolved entries separately.
How is process different from suggest?
process handles strong identifiers and does not accept fuzzy title matches. Ambiguous text goes to onecite suggest, which returns ranked candidates for review.