UniArticles MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SCOPUS_API_KEY | No | Your Elsevier API key for Scopus. Required for Scopus-related features, but other sources (ArXiv, PubMed, Google Scholar) work without it. | |
| ARXIV_DOWNLOAD_DIR | No | Directory to save ArXiv PDF downloads. Defaults to ./arxiv_downloads if not set. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| scopus_document_search_by_queryA | Search for documents in Scopus using a query string.
|
| scopus_abstract_detail_by_eidA | Get detailed abstract information for a Scopus document (by EID). Returns a normalized record (title, authors, affiliations, journal, identifiers, etc.). Default view is META (unrestricted); the abstract body is only populated under richer views such as FULL/META_ABS if your subscription supports them. |
| scopus_serial_title_by_issnC | Get journal/serial metadata (title, publisher, Open Access status, coverage years, subject areas, homepage) by ISSN. Default view is STANDARD (verified working with a basic subscription tier). |
| scopus_api_usage_statusA | Check current Elsevier API usage/rate-limit status (via Scopus endpoint). |
| scopus_serial_title_search_by_criteriaA | Search journals/serials by multiple optional criteria (no ISSN required). Sibling of scopus_serial_title_by_issn, which looks up ONE journal by exact ISSN; this tool searches across journals and returns a list, including SNIP/SJR metrics. Optional filters: title (substring match), issn, pub (publisher), subj (subject ABBREVIATION such as COMP/CHEM, NOT the numeric code), content (journal/tradejournal/conferenceproceeding/bookseries), date (year), oa (all/full/partial/none), start (page offset), count (page size, max 200). view defaults to STANDARD (ENHANCED/CITESCORE may require a higher subscription). Passing no filter is allowed but browses ALL serials (large) — supply at least one. |
| scopus_subject_classification_lookup_by_sourceA | Look up Scopus/ScienceDirect subject classification codes (to help build
more precise search queries). |
| sciencedirect_article_retrieve_by_identifierA | Retrieve an article record by identifier type (pii, doi, pubmed_id, eid) and value. Returns a normalized record (title, authors, journal, identifiers, subjects, etc.). Default view is META (unrestricted); the full-text body is only populated under richer, entitlement-gated views. |
| sciencedirect_article_object_by_identifierA | Get metadata (filename, mimetype, type, download link) for figures/tables/ supplementary materials attached to an article. Does NOT download the binary content itself -- only returns the metadata list and download links. identifier_type: doi or pii (both verified working); scopus_id/pubmed_id may also work. |
| arxiv_paper_search_by_queryA | Search for papers in ArXiv using a query string.
|
| arxiv_latest_paper_list_by_categoryA | List the most recently submitted arXiv papers in a given category
(e.g. 'cs.AI'). Multiple categories may be comma-separated (e.g.
'cs.AI,cs.LG'). Uses arXiv's official |
| arxiv_paper_detail_by_idC | Get detailed information (abstract/metadata) for a specific ArXiv paper. |
| pubmed_paper_search_by_queryA | Search PubMed by keyword via NCBI Entrez (ESearch to get PMIDs, then EFetch to retrieve and parse the article XML). Returns normalized records (title, abstract, authors, journal, doi, pmid, pmcid, keywords, date).
|
| pubmed_paper_summary_lookup_by_pmidsA | Look up lightweight PubMed metadata for a batch of PMIDs via ESummary.
Faster than a full fetch and carries fields the search tool lacks (pmcid,
pubstatus, pmcrefcount, elocationid). Invalid PMIDs are returned as items
with a per-item |
| pubmed_related_article_search_by_pmidB | Find PubMed articles topically related to a given PMID (NCBI ELink 'Similar articles' / pubmed_pubmed neighbor set, ranked by relevance). Returns a list of related PMIDs (the source PMID itself is excluded). Call pubmed_paper_summary_lookup_by_pmids on the results for their metadata. |
| pubmed_pmc_linkage_lookup_by_pmidA | Look up a PMID's PubMed Central (PMC) linkages. Returns TWO distinct groups, kept separate on purpose: 'own_pmc_fulltext' (this article's own open-access PMC full-text record, if any — check 'has_pmc_fulltext') and 'cited_by_pmc_articles' (other PMC articles that cite it). Both empty is a normal result, not an error. |
| crossref_work_search_by_queryB | Search Crossref (DOI registration agency metadata) for works by keyword. No API key needed. |
| crossref_work_detail_by_doiA | Look up a single work on Crossref by DOI. No API key needed. |
| europepmc_paper_search_by_queryA | Search Europe PMC (EBI's life-sciences literature aggregator, distinct from NCBI PubMed) for papers by keyword. Returns the first page of results only (result ordering is Europe PMC's relevance ranking). No API key needed. |
| doaj_article_search_by_queryA | Search DOAJ (Directory of Open Access Journals) for open-access articles by keyword. No API key needed. |
| openaire_research_product_search_by_queryB | Search OpenAIRE (European open science aggregator) for research products by keyword. No API key needed. NOTE: reference projects reported occasional HTTP 403 from this service; it was not reproduced during this project's probing. A network error here may reflect that known intermittency, not a tool bug. |
| core_work_search_by_queryA | Search CORE (global open-access aggregator) by keyword, with paging.
Returns metadata and download links only — the upstream |
| core_work_detail_by_identifierA | Fetch the full CORE record of one work by bare DOI or numeric CORE ID. Use the bare DOI form (e.g. The detail record carries |
| core_work_outputs_by_idA | List the per-repository copies (
Each item is a de-duplication source record, not the paper text: it carries
|
| core_work_stats_by_idA | Fetch the lifecycle timestamps of one CORE work (deposited / published / updated / accepted).
|
| core_work_aggregate_by_queryA | Summarise the distribution of CORE works matching a keyword query. This is a facet/distribution view, NOT a result list: each item is one
dimension (
Aggregation queries cost more tokens than a plain search upstream; call it when you actually need a distribution, not after every search. |
| core_data_provider_search_by_queryA | Search CORE's data providers — institutional repositories and journal sources. Each item is a repository/journal source (
|
| core_data_provider_detail_by_idA | Fetch one CORE data provider (repository / journal source) by numeric id.
The two sub-resources are best-effort: if the main detail call succeeds but a
sub-resource fails, the response stays |
| core_output_detail_by_idA | Fetch one raw CORE harvesting record ( An
|
| core_output_search_by_queryA | Search CORE's raw harvesting records ( Difference from
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 29 tools
The tools are largely distinct by their target source (Scopus, PubMed, arXiv, etc.). However, there is some potential confusion between tools like 'core_work_search_by_query' and 'core_output_search_by_query' or 'pubmed_paper_search_by_query' vs 'europepmc_paper_search_by_query' if an agent doesn't read carefully, but descriptions clarify the differences.
Most tool names follow a clear pattern of '<source>_<action>_<object>_by_<identifier>' (e.g., scopus_document_search_by_query, arxiv_paper_detail_by_id). Deviations exist like 'arxiv_latest_paper_list_by_category' and 'scopus_api_usage_status' which break the pattern slightly, but overall it is consistent and readable.
With 29 tools, the count is on the high side but not extreme. The server aggregates multiple scholarly APIs (Scopus, arXiv, PubMed, Crossref, CORE, etc.), so many tools are needed. However, it feels slightly heavy and could be streamlined (e.g., combining some CORE output tools).
The domain is scholarly literature search and retrieval across multiple sources. Each source has at least a search and detail tool, covering core workflows. Minor gaps: no update or delete operations (not applicable for read-only APIs), but missing citation or full-text retrieval for some sources (e.g., no direct arXiv full-text download, no PubMed Central full-text retrieval beyond linkage).