Skip to main content

Academic paper search and IEEE citation engine — MCP server with 9 tools

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

search_citation_mcp-1.1.2.tar.gz (41.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

search_citation_mcp-1.1.2-py3-none-any.whl (43.4 kB view details)

Uploaded Python 3

File details

Details for the file search_citation_mcp-1.1.2.tar.gz.

File metadata

  • Download URL: search_citation_mcp-1.1.2.tar.gz
  • Upload date:
  • Size: 41.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for search_citation_mcp-1.1.2.tar.gz
Algorithm Hash digest
SHA256 8719a48e04ba7968f7b8cbc34f561f838367547287b1f1c397cb0278c48369d0
MD5 1172a8bcb69953c50fbab068e9efaee9
BLAKE2b-256 92046f16a348d6d532d113a6824c179eee5d3724bcbc161c4820fb922bb4b2d9

See more details on using hashes here.

File details

Details for the file search_citation_mcp-1.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for search_citation_mcp-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 43ea44aedbde0333a826fcbb5728b3da9260f34815984762ca1cff3571304188
MD5 5fa27c70d628825c9181bca6302c94b5
BLAKE2b-256 a0daa970297a637db5e07967e667330af93bbf83c8705effcd25091217cc7988

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page