Scholarly research MCP (Crossref, Europe PMC, arXiv)
Pricing
from $2.00 / 1,000 tool calls
Scholarly research MCP (Crossref, Europe PMC, arXiv)
Search scholarly metadata and arXiv preprints through MCP, or look up a DOI. Uses Crossref, Europe PMC and arXiv without source API keys.
Pricing
from $2.00 / 1,000 tool calls
Rating
0.0
(0)
Developer
Chee Chiaw Lim
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
Scholarly research MCP
An Apify Standby MCP server for scholarly metadata from Crossref, Europe PMC, and arXiv. It uses public metadata APIs without source API keys. It also runs one tool as a batch Actor.
Connect
Use this Streamable HTTP endpoint in your MCP client.
https://<username>--scholarly-research-mcp.apify.actor/mcpAuthorization: Bearer <APIFY_TOKEN>
Apify authenticates requests to the hosted endpoint. The local Express server relies on that platform authentication when deployed. The Apify MCP server at mcp.apify.com also lists the Actor.
For a local server with no INPUT, run npm start and connect to http://localhost:3000/mcp. Node 20 or later is required. There is no build step. GET / responds to Apify readiness probes. GET and DELETE /mcp return 405 because the MCP transport is stateless.
Tools
All search queries accept 1 to 300 characters. Limits are integers from 1 to 20, default 5. Dates use YYYY-MM-DD. Crossref and Europe PMC abstracts default to hidden.
| Tool | Arguments |
|---|---|
search_works | Required query. source is crossref by default or europepmc. Optional fromDate, untilDate, type for Crossref, openAccessOnly for Europe PMC, limit, includeAbstract. |
get_work_by_doi | Required doi, accepting a bare DOI, doi: prefix, or doi.org URL. Optional includeAbstract. |
search_preprints | Required query, using arXiv syntax such as all:transformer. Optional category such as cs.LG, sortBy of relevance, submittedDate, or lastUpdatedDate, and limit. Abstracts are always included. |
search_biomedical | Required query. Optional openAccessOnly, fromDate, untilDate, limit, includeAbstract. Uses Europe PMC. |
Each result has tool, query or doi, source, total when supplied by the source, count, and works. A DOI lookup returns a result such as this abbreviated example.
{"tool": "get_work_by_doi","doi": "10.1038/nature12373","source": "crossref","count": 1,"works": [{"source": "crossref","id": "10.1038/nature12373","doi": "10.1038/nature12373","title": "Nanometre-scale thermometry in a living cell","url": "https://doi.org/10.1038/nature12373","abstract": null}]}
Work records also contain up to 20 authors, authorsTruncated, publication date, venue, type, citation count, open access status, licence, and source attribution. Missing values are null. arXiv adds categories and a PDF link. Abstract text has tags removed and is capped at 1500 characters. DOI values are trimmed and lowercased. Crossref open access status is null because a licence URL alone does not establish open access.
Batch mode
Outside Standby, an INPUT runs one tool and exits. Use the Actor input form or save this as storage/key_value_stores/default/INPUT.json before npm start.
{"tool":"search_works","query":"crispr malaria","source":"crossref","limit":5,"includeAbstract":false}
The program also accepts {"tool":"search_works","arguments":{"query":"crispr malaria"}}. Only arguments belonging to the selected tool are mapped from the flat form. Tool validation rejects unsupported source filters and reversed date ranges.
The batch writes works to the default dataset and the result to the OUTPUT key. Successful calls also append a small log item with tool, args, source, count, and calledAt. Dataset rows therefore include call logs as well as works. Logging failures do not fail a successful call. A tool error writes an error to OUTPUT and exits with code 1.
Pricing
Each successful tool call costs $0.002 through the tool-call event. Failed calls, including missing Crossref DOIs, are not charged. An empty successful search counts as a call. A spending limit that prevents charging returns Spending limit reached. Dataset writes carry no event charge. Apify also bills Standby platform usage.
Sources and terms
- Crossref metadata comes from
api.crossref.org. Attribution isMetadata from Crossref (api.crossref.org). Crossref metadata is generally open; abstracts and linked content may have separate copyright. The record preserves the first supplied licence URL without treating it as an open access guarantee. SetCROSSREF_MAILTOto add a contact address to requests. - Europe PMC data comes from EMBL-EBI. Attribution is
Data from Europe PMC (europepmc.org), EMBL-EBI. The source licence field is preserved when supplied. Open access filtering does not grant reuse rights beyond the work's own licence. - arXiv metadata is CC0 1.0, including the returned metadata abstracts. Attribution is
Metadata from arXiv.org (CC0). Not affiliated with or endorsed by arXiv.E-print licences are shown on their abstract pages.
Crossref and Europe PMC abstract requests include the notice Abstract may be copyrighted by the publisher or authors; shown for research and discovery only.
The server spaces requests per host by at least 1000 ms for Crossref and Europe PMC, and 3100 ms for arXiv. Requests to a host run serially, including body consumption. Rate limits apply per server process. HTTP 429 and server errors receive bounded retries with backoff and Retry-After support.
The Actor fetches no full text or PDFs and hosts no PDFs. Crossref and Europe PMC abstracts are opt-in. It is not affiliated with Crossref, EMBL-EBI, or arXiv.
Offline verification
Run npm test. Run npm run verify:local to execute all four tools through npm start and inspect their stored outputs. Tests use the captured responses in test/fixtures and never need source network access. With a batch INPUT present, npm run start:offline runs the real Actor entry point with fixture responses. This preload replaces only upstream fetch calls.