Skip to main content

Search & Citation MCP

PyPI Python License

MCP server for academic paper search and IEEE citation generation. Searches across 3 sources in parallel (OpenAlex + Crossref + Semantic Scholar), generates biblatex-ieee BibTeX, validates entries, downloads PDFs, and maintains your bibliography — all through 9 LLM-accessible tools.

Install

pip install search-citation-mcp

No config required. Creates ./bibliografia.bib on first citation.

Usage

MCP Server

Add to any MCP client config:

{
  "mcpServers": {
    "search-citation": {
      "command": "uvx",
      "args": ["search-citation-mcp"]
    }
  }
}

Config files by client:

Client File
Claude Desktop claude_desktop_config.json
Cursor .cursor/mcp.json
Antigravity .antigravity/mcp.json
Gemini CLI ~/.gemini/settings.json
opencode opencode.json
Cline .cline/mcp.json
Continue ~/.continue/config.json

HTTP mode for multi-client setups:

{
  "mcpServers": {
    "search-citation": {
      "command": "uvx",
      "args": ["search-citation-mcp", "--transport", "streamable-http"],
      "env": { "MCP_PORT": "8000" }
    }
  }
}

CLI

search-citation search "photovoltaic harmonics" -n 10
search-citation add --doi 10.1016/j.rser.2015.08.042
search-citation cite --doi 10.1016/j.rser.2015.08.042
search-citation related 10.1016/j.rser.2015.08.042 -n 5
search-citation detect "10.1016/j.rser.2015.08.042"
search-citation fix-bib bibliografia.bib --dry-run
search-citation download 10.1016/j.rser.2015.08.042 -o ./pdfs
search-citation cache

Tools

Tool Description
search_papers Parallel search via OpenAlex + Crossref + Semantic Scholar
add_from_doi Add citation by DOI (Crossref → S2 → OpenAlex pipeline)
cite_paper Generate .bib entry without writing to file
add_to_bibliography Add manual entry for sources without DOI
find_related_papers Related papers via citation graph + semantic similarity
detect_input Detect if text is a DOI, arXiv, PMID, ISBN, URL, or title
list_cached List recent cached searches
fix_bib Fix Title Case, protect acronyms, add datasheet notes
download_paper Download PDF from OA sources (with Sci-Hub fallback)

Configuration

Optional environment variables:

OPENALEX_API_KEY=           # Better rate limits
SEMANTIC_SCHOLAR_API_KEY=   # Enables third search source
CROSSREF_MAILTO=            # Crossref polite pool
UNPAYWALL_EMAIL=            # PDF downloads via Unpaywall
BIBLIOGRAPHY_PATH=          # Custom .bib path (default: ./bibliografia.bib)
EZPROXY_HOST=               # Institutional proxy (e.g. bibliotecabuap.elogim.com)
SCIHUB_ENABLED=1            # Enable Sci-Hub as last-resort PDF source
MCP_HOST=127.0.0.1          # HTTP transport host
MCP_PORT=8000               # HTTP transport port

BibTeX Types

article · inproceedings · book · techreport · mastersthesis · phdthesis · manual · misc · online · incollection

All validated against IEEE schema with required and optional fields. Auto-protects acronyms ({IEEE}, {CFE}, {MATLAB}) and converts month names (English/Spanish).

Development

git clone https://github.com/isaacwars/search-citation-mcp.git
cd search-citation-mcp
python -m venv .venv
source .venv/bin/activate
pip install -e .
pytest tests/ -v        # 123 tests

Security

  • stdio transport by default — no network exposure
  • All credentials via environment variables, never hardcoded
  • Path traversal blocked on every file operation
  • Output confined to workspace directory

License

Apache 2.0 with Commons Clause — see LICENSE

Metadata

Release files for search-citation-mcp 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for search-citation-mcp 1.2.0
File Size Uploaded
search_citation_mcp-1.2.0.tar.gz 55.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for search-citation-mcp 1.2.0
File Interpreter ABI Platform
search_citation_mcp-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 110.3 kB

Release files / search_citation_mcp-1.2.0.tar.gz

Download URL search_citation_mcp-1.2.0.tar.gz
Size 55.0 kB
Tags Source
SHA-256 checksum
How to use checksums
f5f00845ca8e92d9fb60076bc0259796ada87c30989365fe45be7756b192f2f6
BLAKE2b-256 checksum
How to use checksums
bdb26bf6ae496d45570948dd96a5021cbce5d0d766f6f3f3171bd102bebe0374
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release files / search_citation_mcp-1.2.0-py3-none-any.whl

Download URL search_citation_mcp-1.2.0-py3-none-any.whl
Size 55.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
48eb51e562083beb3febfe4cfeab6077aa7d69216df72be94fb102dccdf00bd5
BLAKE2b-256 checksum
How to use checksums
7ef8c1507ec51596e5ca36e21bae97e15852598ad08be279acef596bbc787753
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

1.1.5

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page