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.5.tar.gz (41.2 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.5-py3-none-any.whl (43.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: search_citation_mcp-1.1.5.tar.gz
  • Upload date:
  • Size: 41.2 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.5.tar.gz
Algorithm Hash digest
SHA256 fb0e2552198b8b8776db247bcddf40dbd94f2a41c972566e2a98a0eda743e806
MD5 cf0500fd424884bfb757339439428964
BLAKE2b-256 bc2a685188b486c4cfa709e8bc5dc06e23be2af9c09e6abc1da25d7959f7a578

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for search_citation_mcp-1.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 baac595a78d3f26f36e93a0558b4abc700de84424a31ae0f7d49bb5e3fd34577
MD5 6bd1ada4cb8b800b7dadb6b04360abe5
BLAKE2b-256 1ac893c862ba42a439f9c3b7add02670a01ff2cc078d444b71a16678e6d3b7fd

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