fulltext-article-downloader is a Python package for programmatically downloading the full text of research articles from their DOIs. It chains together publisher APIs, open‑access aggregators, and polite web scraping in a fallback sequence so you can collect large corpora of PDFs or XML for text…
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add fulltext-article-downloader --env WILEY_API_KEY='<WILEY_API_KEY>' --env ELSEVIER_API_KEY='<ELSEVIER_API_KEY>' --env SPRINGER_API_KEY='<SPRINGER_API_KEY>' --env SEMANTIC_SCHOLAR_API_KEY='<SEMANTIC_SCHOLAR_API_KEY>' -- uvx fulltext-article-downloader~/.codex/config.toml
[mcp_servers.fulltext-article-downloader]
command = "uvx"
args = ["fulltext-article-downloader"]
env = { WILEY_API_KEY = "<WILEY_API_KEY>", ELSEVIER_API_KEY = "<ELSEVIER_API_KEY>", SPRINGER_API_KEY = "<SPRINGER_API_KEY>", SEMANTIC_SCHOLAR_API_KEY = "<SEMANTIC_SCHOLAR_API_KEY>" }
# codex mcp add fulltext-article-downloader --env WILEY_API_KEY='<WILEY_API_KEY>' --env ELSEVIER_API_KEY='<ELSEVIER_API_KEY>' --env SPRINGER_API_KEY='<SPRINGER_API_KEY>' --env SEMANTIC_SCHOLAR_API_KEY='<SEMANTIC_SCHOLAR_API_KEY>' -- uvx fulltext-article-downloader~/.cursor/mcp.json
{
"mcpServers": {
"fulltext-article-downloader": {
"command": "uvx",
"args": [
"fulltext-article-downloader"
],
"env": {
"WILEY_API_KEY": "<WILEY_API_KEY>",
"ELSEVIER_API_KEY": "<ELSEVIER_API_KEY>",
"SPRINGER_API_KEY": "<SPRINGER_API_KEY>",
"SEMANTIC_SCHOLAR_API_KEY": "<SEMANTIC_SCHOLAR_API_KEY>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"fulltext-article-downloader": {
"type": "stdio",
"command": "uvx",
"args": [
"fulltext-article-downloader"
],
"env": {
"WILEY_API_KEY": "<WILEY_API_KEY>",
"ELSEVIER_API_KEY": "<ELSEVIER_API_KEY>",
"SPRINGER_API_KEY": "<SPRINGER_API_KEY>",
"SEMANTIC_SCHOLAR_API_KEY": "<SEMANTIC_SCHOLAR_API_KEY>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"fulltext-article-downloader": {
"command": "uvx",
"args": [
"fulltext-article-downloader"
],
"env": {
"WILEY_API_KEY": "<WILEY_API_KEY>",
"ELSEVIER_API_KEY": "<ELSEVIER_API_KEY>",
"SPRINGER_API_KEY": "<SPRINGER_API_KEY>",
"SEMANTIC_SCHOLAR_API_KEY": "<SEMANTIC_SCHOLAR_API_KEY>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"fulltext-article-downloader": {
"command": "uvx",
"args": [
"fulltext-article-downloader"
],
"env": {
"WILEY_API_KEY": "<WILEY_API_KEY>",
"ELSEVIER_API_KEY": "<ELSEVIER_API_KEY>",
"SPRINGER_API_KEY": "<SPRINGER_API_KEY>",
"SEMANTIC_SCHOLAR_API_KEY": "<SEMANTIC_SCHOLAR_API_KEY>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"fulltext-article-downloader": {
"command": "uvx",
"args": [
"fulltext-article-downloader"
],
"env": {
"WILEY_API_KEY": "<WILEY_API_KEY>",
"ELSEVIER_API_KEY": "<ELSEVIER_API_KEY>",
"SPRINGER_API_KEY": "<SPRINGER_API_KEY>",
"SEMANTIC_SCHOLAR_API_KEY": "<SEMANTIC_SCHOLAR_API_KEY>"
}
}
}
}Environment variables
WILEY_API_KEYELSEVIER_API_KEYSPRINGER_API_KEYSEMANTIC_SCHOLAR_API_KEY
Replace the placeholders with your own credentials and keep them out of version control.