Skip to content

πŸ“š An intelligent toolkit to automatically parse, complete, and format academic references, with Model Context Protocol (MCP) support.

License

Notifications You must be signed in to change notification settings

HzaCode/OneCite

OneCite Logo

OneCite

The Universal Citation & Academic Reference Toolkit

Recommended by: (Updating) Β  Awesome LaTeX

Tests Status PyPI Version Python Version Downloads License Documentation MCP Registry

✨ Features β€’ πŸš€ Quick Start β€’ πŸ“– Advanced Usage β€’ πŸ€– AI Integration β€’ 🀝 Contributing


OneCite is a powerful command-line tool and Python library designed to automate the tedious process of citation management. Feed it anythingβ€”DOIs, paper titles, arXiv IDs, or even a mixβ€”and get clean, accurate bibliographic entries in return.


✨ Features

Feature Description
πŸ” Smart Recognition Fuzzy matching against multiple academic databases to find references from incomplete or inaccurate info.
πŸ“š Universal Formats Input .txt/.bib β†’ Output BibTeX, APA, or MLA formats with ease.
🎯 High-Accuracy Pipeline A 4-stage process (clean β†’ query β†’ validate β†’ format) ensures the highest quality output.
πŸ€– Auto-Completion Automatically enriches entries by filling in missing data like journal, volume, pages, and authors.
πŸŽ“ 7+ Citation Types Handles journal articles, conference papers, books, software, datasets, theses, and preprints.
🧠 Intelligent Routing Auto-detects content type and domain (Medical/CS/General) for optimal data retrieval.
πŸ“„ Universal Identifiers Accepts DOI, PMID, arXiv ID, ISBN, GitHub URL, Zenodo DOI, or even plain text queries.
πŸŽ›οΈ Interactive Mode Manually select the correct entry when multiple potential matches are found.
βš™οΈ Custom Templates A YAML-based template system provides complete control over the final output format.

🌐 Data Sources

CrossRef Semantic Scholar OpenAlex PubMed dblp arXiv DataCite Zenodo Google Books

πŸš€ Quick Start

Get up and running with OneCite in under a minute.

1. Installation

# Recommended: Install from PyPI
pip install onecite

2. Create an Input File

Create a file named references.txt with your mixed-format references:

# references.txt
# ⚠️ Important: Add blank lines between entries to avoid misidentification

10.1038/nature14539

Attention is all you need, Vaswani et al., NIPS 2017

Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press.

https://github.com/tensorflow/tensorflow

10.5281/zenodo.3233118

arXiv:2103.00020

Smith, J. (2020). Neural Architecture Search. PhD Thesis. Stanford University.

3. Run OneCite

Execute the command to process your file and generate a clean .bib output.

onecite process references.txt -o results.bib --quiet

4. Get Perfectly Formatted Output

Your results.bib file now contains 7 perfectly formatted entries of different types.

πŸ“„ View Complete Output (results.bib)
@article{LeCun2015Deep,
  doi = "10.1038/nature14539",
  title = "Deep learning",
  author = "LeCun, Yann and Bengio, Yoshua and Hinton, Geoffrey",
  journal = "Nature",
  year = 2015,
  volume = 521,
  number = 7553,
  pages = "436-444",
  publisher = "Springer Science and Business Media LLC",
  url = "https://doi.org/10.1038/nature14539",
  type = "journal-article",
}
@inproceedings{Vaswani2017Attention,
  arxiv = "1706.03762",
  title = "Attention Is All You Need",
  author = "Vaswani, Ashish and Shazeer, Noam and Parmar, Niki and Uszkoreit, Jakob and Jones, Llion and Gomez, Aidan N. and Kaiser, Lukasz and Polosukhin, Illia",
  year = 2017,
  journal = "arXiv preprint",
  url = "https://arxiv.org/abs/1706.03762",
}
# ... and 5 more entries ...

πŸ“– Advanced Usage

🎨 Multiple Output Formats (APA, MLA)
# Generate APA formatted citations
onecite process refs.txt --output-format apa
# β†’ LeCun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning. Nature, 521(7553), 436-444.

# Generate MLA formatted citations
onecite process refs.txt --output-format mla
# β†’ LeCun, Yann, Yoshua Bengio, and Geoffrey Hinton. "Deep Learning." Nature 521.7553 (2015): 436-444.
πŸ€– Interactive Disambiguation

For ambiguous entries, use the --interactive flag to manually select the correct match and ensure accuracy.

Command:

onecite process ambiguous.txt --interactive

Example Interaction:

Found multiple possible matches for "Deep learning Hinton":
1. Deep learning
   Authors: LeCun, Yann; Bengio, Yoshua; Hinton, Geoffrey
   Journal: Nature, 2015
   DOI: 10.1038/nature14539

2. Deep belief networks
   Authors: Hinton, Geoffrey E.
   Journal: Scholarpedia, 2009
   DOI: 10.4249/scholarpedia.5947

Please select (1-2, 0=skip): 1
βœ… Selected: Deep learning
🐍 Use as a Python Library

Integrate OneCite's processing power directly into your Python scripts.

from onecite import process_references

# A callback can be used for non-interactive selection (e.g., always choose the best match)
def auto_select_callback(candidates):
    return 0 # Index of the best candidate

result = process_references(
    input_content="Deep learning review\nLeCun, Bengio, Hinton\nNature 2015",
    input_type="txt",
    output_format="bibtex",
    interactive_callback=auto_select_callback
)

print(result['output_content'])

πŸ€– AI Assistant Integration (MCP)

OneCite provides complete Model Context Protocol (MCP) support, enabling AI assistants to directly use its functionality for literature search, processing, and formatting.

πŸš€ Setup & Usage

1. Installation & Testing

# Install OneCite (includes MCP server)
pip install onecite

# Test the MCP server
onecite-mcp

2. Configure Your AI Assistant

For Claude Desktop

Add the following to claude_desktop_config.json:

{
  "mcpServers": { "onecite": { "command": "onecite-mcp" } }
}

For Cursor

Add the following to .cursor/settings.json:

{
  "mcpServers": { "onecite": { "command": "onecite-mcp" } }
}

Restart your editor to enable the integration.

3. Available Functions & Examples

  • cite: Generate a single citation (e.g., "Generate an APA citation for DOI: 10.1038/nature14539").
  • batch_cite: Process a list of references (e.g., "Batch process these references in BibTeX format").
  • search: Search academic literature by keywords (e.g., "Search for papers on machine learning").

🀝 Contributing

Contributions are always welcome! Please see CONTRIBUTING.md for development guidelines and instructions on how to submit a pull request.

πŸ“„ License

This project is licensed under the MIT License. See the LICENSE file for details.


OneCite: The all-in-one toolkit for every academic reference.

⭐ Star on GitHub β€’ πŸš€ Try the Web App β€’ πŸ› Report an Issue β€’ πŸ’¬ Start a Discussion

Releases

No releases published

Packages

No packages published

Languages