Academic paper search and IEEE citation engine — MCP server with 9 tools
Project description
Search & Citation MCP
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1878af8e450a30e783305104c0c7c55dddfde9b6446b9ff0345e125a2b22ec9
|
|
| MD5 |
cc1a06e3579f48f7793c0b8fcb713b34
|
|
| BLAKE2b-256 |
0a52a10ec5fde367782eba2287ab8bbccb9b89816152f17fb043bbe7a29caa90
|
File details
Details for the file search_citation_mcp-1.1.1-py3-none-any.whl.
File metadata
- Download URL: search_citation_mcp-1.1.1-py3-none-any.whl
- Upload date:
- Size: 42.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94a06ca3f0f7d3e5dc6f8602e9404f0dfaca8692ceab59f14aeaa58e37c05ffa
|
|
| MD5 |
4692dfaff5373e3ea0dd13a56036a090
|
|
| BLAKE2b-256 |
6daac98e7901ad029f90b9574e9476cb82dd08e160836ba1a6113cf5e5f08373
|