MCPInstall

citation-bibliography-generator

Format citations in APA, MLA, Chicago, IEEE, Harvard styles from structured data, DOI/ISBN lookup, or manual entry. Generate bibliographies with auto-sort.

Installs
147
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/dkyazzentwatwa/chatgpt-skills --skill citation-bibliography-generator
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads citation-bibliography-generator automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Citation & Bibliography Generator

Generate properly formatted citations and bibliographies in multiple academic and professional styles. Supports manual entry, structured data import, and automatic metadata lookup via DOI/ISBN.

Quick Start

from scripts.citation_generator import CitationGenerator

# Create generator with desired style
gen = CitationGenerator(style='apa')

# Cite a book
citation = gen.cite_book(
    authors=["Smith, John", "Doe, Jane"],
    title="Research Methods in Social Science",
    year=2020,
    publisher="Academic Press",
    city="New York"
)
print(citation)
# Output: Smith, J., & Doe, J. (2020). Research methods in social science. Academic Press.

# Build bibliography
gen.add_to_bibliography(citation)
bibliography = gen.generate_bibliography()
print(bibliography)

Supported Citation Styles

  • APA (American Psychological Association) - 7th Edition
  • MLA (Modern Language Association) - 9th Edition
  • Chicago (Chicago Manual of Style) - 17th Edition
  • IEEE (Institute of Electrical and Electronics Engineers)
  • Harvard (Harvard referencing style)

Features

1. Manual Citation Creation

Format citations by source type:

  • Books - Monographs, edited volumes, editions
  • Journal Articles - Peer-reviewed articles with DOI
  • Websites - Online sources with access dates
  • Conference Papers - Proceedings and presentations

2. Automatic Metadata Lookup

  • DOI Lookup - Fetch article metadata from CrossRef API
  • ISBN Lookup - Retrieve book information (when available)
  • Auto-detect source type and format accordingly

3. Bibliography Management

  • Add multiple citations
  • Auto-sort by author, year, or title
  • Duplicate detection and removal
  • Export to plain text or BibTeX

4. In-Text Citations

Generate parenthetical or narrative in-text citations:

  • Parenthetical: (Smith, 2020, p. 45)
  • Narrative: Smith (2020) argues that...
  • Multiple authors with et al. handling

5. Batch Processing

Import citations from CSV files with structured data and generate complete bibliographies.

API Reference

CitationGenerator

Initialization:

gen = CitationGenerator(style='apa')

Parameters:

  • style (str): Citation style - 'apa', 'mla', 'chicago', 'ieee', or 'harvard'

Citation Methods

cite_book()

citation = gen.cite_book(
    authors=["Last, First", "Last, First"],
    title="Book Title",
    year=2020,
    publisher="Publisher Name",
    city="City",           # Optional
    edition="3rd ed.",     # Optional
    isbn="978-0-123456-78-9"  # Optional
)

Returns: Formatted citation string

cite_article()

citation = gen.cite_article(
    authors=["Last, First"],
    title="Article Title",
    journal="Journal Name",
    year=2020,
    volume=10,          # Optional
    issue=2,            # Optional
    pages="45-67",      # Optional
    doi="10.1234/example"  # Optional
)

Returns: Formatted citation string

cite_website()

citation = gen.cite_website(
    authors=["Last, First"],  # Can be empty list
    title="Page Title",
    url="https://example.com",
    access_date="2024-01-15",
    publish_date="2023-12-01"  # Optional
)

Returns: Formatted citation string

cite_from_doi()

citation = gen.cite_from_doi(doi="10.1234/example")

Looks up article metadata from CrossRef API and generates formatted citation.

Returns: Formatted citation string

Bibliography Management

add_to_bibliography()

gen.add_to_bibliography(citation)

Add a citation to the bibliography list.

generate_bibliography()

bibliography = gen.generate_bibliography(
    sort_by='author',      # 'author', 'year', or 'title'
    deduplicate=True       # Remove duplicate entries
)

Returns: Formatted bibliography string with hanging indent

export_bibtex()

gen.export_bibtex(output_path='references.bib')

Export bibliography as BibTeX format for LaTeX documents.

In-Text Citations

in_text_citation()

citation = gen.in_text_citation(
    authors=["Smith, J."],
    year=2020,
    page="45",          # Optional
    narrative=False     # True for narrative style
)

Returns:

  • Parenthetical: (Smith, 2020, p. 45)
  • Narrative: Smith (2020)

Batch Processing

import_from_csv()

citations = gen.import_from_csv(csv_path='citations.csv')

Import multiple citations from CSV file.

CSV Format:

type,authors,title,year,journal,publisher,doi,isbn,url,access_date
article,"Smith, J.|Doe, A.",Research Methods,2020,Journal of Science,,10.1234/example,,,
book,"Johnson, M.",Data Analysis,2019,,Academic Press,,978-0-123456-78-9,,
website,,"Web Page Title",2024,,,,,https://example.com,2024-01-15

Note: Separate multiple authors with | pipe character

Returns: List of formatted citation strings

CLI Usage

Single Citation

Book:

python scripts/citation_generator.py book \
    --authors "Smith, J." "Doe, A." \
    --title "Research Methods" \
    --year 2020 \
    --publisher "Academic Press" \
    --city "New York" \
    --style apa

Article:

python scripts/citation_generator.py article \
    --authors "Smith, J." \
    --title "Study Title" \
    --journal "Journal Name" \
    --year 2020 \
    --volume 10 \
    --issue 2 \
    --pages "45-67" \
    --doi "10.1234/example" \
    --style mla

Website:

python scripts/citation_generator.py website \
    --title "Page Title" \
    --url "https://example.com" \
    --access-date "2024-01-15" \
    --style chicago

DOI Lookup

python scripts/citation_generator.py doi \
    --doi "10.1234/example" \
    --style apa

Batch Processing

python scripts/citation_generator.py batch \
    --input citations.csv \
    --style harvard \
    --output bibliography.txt \
    --sort author

BibTeX Export

python scripts/citation_generator.py batch \
    --input citations.csv \
    --format bibtex \
    --output references.bib

CLI Arguments

ArgumentDescriptionDefault
--style, -sCitation style (apa/mla/chicago/ieee/harvard)apa
--authors, -aAuthor names (multiple allowed)-
--title, -tTitle of work-
--year, -yPublication year-
--input, -iInput CSV file (batch mode)-
--output, -oOutput file pathstdout
--format, -fOutput format (text/bibtex)text
--sortSort bibliography by (author/year/title)author

Examples

Example 1: APA Book Citation

gen = CitationGenerator(style='apa')
citation = gen.cite_book(
    authors=["Doe, Jane", "Smith, John"],
    title="The Art of Research",
    year=2021,
    publisher="University Press",
    edition="2nd ed."
)
print(citation)
# Doe, J., & Smith, J. (2021). The art of research (2nd ed.). University Press.

Example 2: MLA Article Citation

gen = CitationGenerator(style='mla')
citation = gen.cite_article(
    authors=["Johnson, Mary"],
    title="Digital Humanities in the 21st Century",
    journal="Modern Research Quarterly",
    year=2022,
    volume=15,
    issue=3,
    pages="112-145",
    doi="10.5678/mrq.2022.15.3"
)
print(citation)
# Johnson, Mary. "Digital Humanities in the 21st Century." Modern Research Quarterly, vol. 15, no. 3, 2022, pp. 112-145. DOI: 10.5678/mrq.2022.15.3.

Example 3: Chicago Website Citation

gen = CitationGenerator(style='chicago')
citation = gen.cite_website(
    authors=["Brown, Robert"],
    title="Understanding Machine Learning",
    url="https://ml-guide.example.com",
    access_date="2024-01-20",
    publish_date="2023-11-15"
)
print(citation)
# Brown, Robert. "Understanding Machine Learning." Last modified November 15, 2023. Accessed January 20, 2024. https://ml-guide.example.com.

Example 4: Building a Bibliography

gen = CitationGenerator(style='apa')

# Add multiple citations
gen.add_to_bibliography(gen.cite_book(
    authors=["Smith, A."],
    title="First Book",
    year=2020,
    publisher="Press A"
))

gen.add_to_bibliography(gen.cite_article(
    authors=["Jones, B."],
    title="Research Article",
    journal="Journal X",
    year=2021
))

# Generate formatted bibliography
bibliography = gen.generate_bibliography(sort_by='author')
print(bibliography)

Example 5: DOI Lookup

gen = CitationGenerator(style='ieee')
citation = gen.cite_from_doi(doi="10.1109/ACCESS.2019.2947014")
print(citation)
# Auto-fetches metadata and formats in IEEE style

Example 6: Batch Processing from CSV

gen = CitationGenerator(style='harvard')
citations = gen.import_from_csv('my_references.csv')

# Add all to bibliography
for citation in citations:
    gen.add_to_bibliography(citation)

# Generate and export
gen.export_bibtex('references.bib')

Dependencies

pandas>=2.0.0
requests>=2.31.0

Install dependencies:

pip install -r scripts/requirements.txt

Limitations

  • API Availability: DOI/ISBN lookups require internet connection and depend on third-party APIs (CrossRef)
  • API Rate Limits: CrossRef API has rate limits; implement delays for batch lookups
  • Style Variations: Some citation styles have discipline-specific variations not fully covered
  • Special Characters: Unicode support for accents and special characters may vary by output format
  • Edition Numbers: Different styles format editions differently (ordinal vs text)
  • Author Name Formats: Input should be "Last, First" format; parsing other formats may be inconsistent
  • Multiple Authors: Et al. rules vary by style (APA: 3+, MLA: 3+, Chicago: 4+)
  • Online-First Articles: Articles published online before print may have partial metadata
  • Non-English Sources: Some citation styles have specific rules for non-English sources that may not be fully implemented

Citation Style Guidelines

APA (American Psychological Association)

  • Author-date system
  • Ampersand (&) before last author
  • Title case for book titles, sentence case for article titles
  • DOI as URL: https://doi.org/10.xxxx

MLA (Modern Language Association)

  • Author-page system
  • "And" before last author
  • Title case for all titles
  • Container concept (journal is container for article)

Chicago (Chicago Manual of Style)

  • Notes and bibliography system
  • "And" before last author
  • Title case for titles
  • Access dates for websites

IEEE (Institute of Electrical and Electronics Engineers)

  • Numbered references [1], [2], etc.
  • Initials before last name
  • Quotation marks for article titles
  • Abbreviated journal names

Harvard

  • Author-date system
  • "And" before last author
  • Italic for book/journal titles
  • Available at: for URLs

FAQ

What does the citation-bibliography-generator skill do?

Format citations in APA, MLA, Chicago, IEEE, Harvard styles from structured data, DOI/ISBN lookup, or manual entry. Generate bibliographies with auto-sort.

How do I install citation-bibliography-generator?

Run npx skills add https://github.com/dkyazzentwatwa/chatgpt-skills --skill citation-bibliography-generator in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/citation-bibliography-generator/ (personal) or .claude/skills/citation-bibliography-generator/ (project).

Which AI agents can use citation-bibliography-generator?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is citation-bibliography-generator safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains citation-bibliography-generator?

It is published by dkyazzentwatwa in dkyazzentwatwa/chatgpt-skills. It has 147 recorded installs.

More from dkyazzentwatwa/chatgpt-skills

View all →

ocr-document-processor

dkyazzentwatwa/chatgpt-skills

Extract text and structure from scans, images, and scanned PDFs. Use for OCR, searchable PDFs, table extraction, receipt parsing, and business card parsing.

Media & Creative4.8K installs

crypto-ta-analyzer

dkyazzentwatwa/chatgpt-skills

Run multi-indicator technical analysis on crypto or market OHLCV data. Use for deterministic trend, momentum, volume, and divergence analysis.

Business & Finance1.6K installs

text-summarizer

dkyazzentwatwa/chatgpt-skills

Generate extractive summaries from long text documents. Control summary length, extract key sentences, and process multiple documents.

693 installs

financial-calculator

dkyazzentwatwa/chatgpt-skills

Run loan, investment, NPV, retirement, savings, and risk calculations with schedules and charts. Use for deterministic financial modeling tasks.

Business & Finance503 installs

document-converter-suite

dkyazzentwatwa/chatgpt-skills

Convert PDFs, Office docs, markdown, HTML, and tables between editable formats. Use for best-effort document conversion, PDF utilities, form filling, and table extraction.

Docs & Writing483 installs

image-enhancement-suite

dkyazzentwatwa/chatgpt-skills

Open the skill to read its SKILL.md instructions.

Media & Creative293 installs

Popular other skills

View category →

hyperframes-cli

heygen-com/hyperframes

The HyperFrames CLI by job - scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history - plus reading its JSON and recovering from build or render failures.

1.3M installs

triage

mattpocock/skills

Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.

1M installs

ask-matt

mattpocock/skills

Ask which skill or flow fits your situation. A router over the skills in this repo.

778.4K installs

to-questionnaire

mattpocock/skills

Turn a decision you can't fully answer into a questionnaire for someone else to fill in.

508.9K installs

wait-what

mattpocock/skills

Stop. That last message did not land: re-pitch it.

459.7K installs

loop-me

mattpocock/skills

Grill me about specs for the workflows I want to build, within this workspace.

447.9K installs