MCP server for scholarly literature discovery via arXiv and Semantic Scholar
Project description
literature-discovery-mcp
Private MCP server for scholarly literature discovery. It covers the discovery/metadata side of the LIST literature-search workflow and intentionally delegates web-page/PDF crawling to an external fetch_url MCP.
Capabilities
- arXiv discovery:
search_arxiv_papersget_arxiv_papersearch_arxiv_by_authorsearch_arxiv_by_categoryget_arxiv_urls
- Semantic Scholar discovery:
search_semantic_scholar_papersget_paper_metadataget_paper_citationsget_paper_referencesget_related_paperssearch_authorsget_author
- Citation export:
get_bibtex
Returned arXiv and Semantic Scholar search records use a normalized schema with fields such as:
{
"id": "arXiv:2402.03300",
"source": "arxiv",
"title": "...",
"authors": ["..."],
"year": 2024,
"abstract": "...",
"url": "https://arxiv.org/abs/...",
"html_url": "https://arxiv.org/html/...",
"pdf_url": "https://arxiv.org/pdf/...",
"doi": "...",
"citation_count": 42,
"access": "abstract_only",
"caveats": []
}
Use your external fetch_url MCP with url, html_url, or pdf_url to retrieve full pages or PDFs.
Install and run
uv sync
uv run literature-discovery-mcp
MCP client configuration example:
mcp_servers:
literature_discovery:
command: "uvx"
args: ["--from", "git+https://github.com/pidgeos/literature-discovery-mcp.git", "literature-discovery-mcp"]
env:
SEMANTIC_SCHOLAR_API_KEY: "optional-key"
For local development:
mcp_servers:
literature_discovery:
command: "uv"
args: ["--directory", "/path/to/literature-discovery-mcp", "run", "literature-discovery-mcp"]
Configuration
SEMANTIC_SCHOLAR_API_KEY/S2_API_KEY: optional Semantic Scholar API key.ARXIV_RATE_LIMIT_RPS: default0.33to respect arXiv's courtesy limit.SEMANTIC_SCHOLAR_RATE_LIMIT_RPS/S2_RATE_LIMIT_RPS: default1.0.ARXIV_PAGE_SIZE: default100.SEMANTIC_SCHOLAR_TIMEOUT/S2_TIMEOUT: default30seconds.LITERATURE_MAX_ATTEMPTS: default3.LITERATURE_RETRY_BACKOFF_SECONDS: default1.0.
Rate limits are process-local, not distributed across multiple MCP processes.
Local quality gates
uv lock --check
uv sync --locked --dev
uv run ruff format --check .
uv run ruff check .
uv run coverage run -m pytest -q
uv run coverage report --fail-under=95
uv build
Project details
Release history Release notifications | RSS feed
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 literature_discovery_mcp-0.1.0.tar.gz.
File metadata
- Download URL: literature_discovery_mcp-0.1.0.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39fdd7837336339405001e7e2dfcfe0e5d78abc4be91a5839652faa8f990b621
|
|
| MD5 |
d454705d00cc0803d35198859b859c51
|
|
| BLAKE2b-256 |
e3fd1a3d210515bc669cb17a91dc38104850155fb0ec0e89706d3d237ba5dc5f
|
File details
Details for the file literature_discovery_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: literature_discovery_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 14.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4d6e7a3901b026fd2caf44f85977817f7390e63557dd5ea52580837402b3267
|
|
| MD5 |
999652ab7c241efb41f1ade1c87a0deb
|
|
| BLAKE2b-256 |
b282338b1edd09117c0286cbcbbd97c3001a1bf4d5dbc677b6f112f70a634f1c
|