Add verified citations to academic papers and proposals. Use when working on LaTeX documents that need citations, finding papers for a specific section, verifying existing citations, or when user mentions "cite", "citation", "references", "bibliography", or asks to find related work. Supports Semantic Scholar API, Exa MCP, and DOI-based BibTeX retrieval. Never hallucinate citations. Invoke with "citation-assistant" or "citation-assistant [section]".
Add verified citations to academic LaTeX documents. Identify citation gaps, search for relevant papers, verify their existence, and add properly formatted BibTeX entries.
All citations MUST be real, verified papers. Hallucinated or fabricated citations are absolutely not tolerated - they constitute academic misconduct and can result in paper rejection or retraction.
[CITATION NEEDED] - do NOT guesscitation-assistant # Ask user which section needs citations
citation-assistant [section] # Add citations to specified section (e.g., "introduction", "related work")
citation-assistant verify # Verify all existing citations in the document
When invoked:
\section{...})Read the section and identify:
List gaps to user before searching - Show each claim and why it needs a citation.
For each gap, use multiple search methods to ensure broad coverage:
Check existing bibliography first - Search the project's .bib file(s)
Search using ALL available tools (not just one):
Run searches in parallel when possible. Different tools have different coverage - a paper missing from one source may appear in another.
Aggregate and deduplicate results - Merge results from all sources
Verify each paper exists in 2+ sources before citing
Fetch BibTeX via DOI - Never generate from memory
\cite{}, \citep{}, \citet{}, etc.)| Situation | Action |
|---|---|
| Found paper, got DOI | Fetch BibTeX via DOI, add citation |
| Found paper, no DOI | Use arXiv BibTeX or construct from verified metadata |
| Cannot verify paper | Mark as [CITATION NEEDED], inform user |
| "I think there's a paper about X" | Search first, never guess |
Never hallucinate citations. If verification fails at any step, mark the citation as needing manual verification.
@article{author2024keyword,
title={Title with {Acronyms} Protected},
author={Last, First and Last2, First2},
journal={arXiv preprint arXiv:XXXX.XXXXX},
year={2024}
}
@inproceedings{author2024conf,
title={Title Here},
author={Last, First},
booktitle={Proceedings of NeurIPS},
year={2024}
}
author_year_keyword{LLM}, {GPU}, {BERT}and between authorsWhen running Python code for citation lookups:
uv venvsource .venv/bin/activateuv add semanticscholar requestsNever use the system Python directly.
See references/apis.md for Semantic Scholar and DOI lookup code.
For each citation added, report: