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.1.tar.gz (40.6 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.1-py3-none-any.whl (42.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: search_citation_mcp-1.1.1.tar.gz
  • Upload date:
  • Size: 40.6 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.1.tar.gz
Algorithm Hash digest
SHA256 f1878af8e450a30e783305104c0c7c55dddfde9b6446b9ff0345e125a2b22ec9
MD5 cc1a06e3579f48f7793c0b8fcb713b34
BLAKE2b-256 0a52a10ec5fde367782eba2287ab8bbccb9b89816152f17fb043bbe7a29caa90

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for search_citation_mcp-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 94a06ca3f0f7d3e5dc6f8602e9404f0dfaca8692ceab59f14aeaa58e37c05ffa
MD5 4692dfaff5373e3ea0dd13a56036a090
BLAKE2b-256 6daac98e7901ad029f90b9574e9476cb82dd08e160836ba1a6113cf5e5f08373

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