OpenAlex MCP Server – Research Papers, Authors & Citations
Pricing
from $15.00 / 1,000 tool calls
OpenAlex MCP Server – Research Papers, Authors & Citations
MCP server for Claude, Cursor and AI agents: search scholarly works, authors and institutions in OpenAlex, and follow citations and references. Compact JSON with abstracts. $0.015 per successful call. Not affiliated with or endorsed by OpenAlex or OurResearch.
Pricing
from $15.00 / 1,000 tool calls
Rating
0.0
(0)
Developer
Agentic Solutions
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
3 hours ago
Last modified
Categories
Share
OpenAlex MCP Server: Scholarly Papers, Authors & Citations
An MCP (Model Context Protocol) server that gives AI agents and assistants such as Claude, Cursor and custom agents fast, low-cost access to OpenAlex: 250M+ scholarly works, plus authors, institutions and the citation graph. Results are compact JSON, with abstracts reconstructed from OpenAlex's inverted index and trimmed to about 1,200 characters, so they fit comfortably in an LLM context.
🔑 Bring your own OpenAlex API key (recommended)
OpenAlex gives every account a free API key with a daily usage budget and up to 30 requests/second. Create one at openalex.org, then set it as OpenAlex API key in this Actor's settings, or send it per request in the
x-openalex-api-keyheader. Your key is stored as a secret.Without a key the server falls back to keyless access: at most 10 requests/second and a small daily budget shared with everyone calling OpenAlex keylessly from the same infrastructure. Under load you may get rate-limit (429) errors. The server logs a warning when no key is set.
Price: $0.015 per successful MCP tool call. Failed calls are free, and so are normal (non-Standby) health-check runs.
Quick start (copy-paste)
Add this to Claude Desktop or Cursor's mcp.json, replacing YOUR_APIFY_TOKEN with your Apify API token:
{"mcpServers": {"openalex": {"url": "https://agentic-solutions--openalex-mcp.apify.actor/mcp","headers": {"Authorization": "Bearer YOUR_APIFY_TOKEN"}}}}
Tools
| Tool | What it does |
|---|---|
search_works | Full-text search with filters: year_from/year_to, open_access, type (article, review, preprint…), topic (OpenAlex topic T… or concept C… ID), sort (relevance, cited, newest, oldest), per_page ≤ 50, page, include_abstract |
get_work | One work by OpenAlex ID (W…) or DOI, with abstract |
get_citations | Works that cite a work (OpenAlex cites: filter) |
get_references | Works a work references (cited_by: filter) |
search_authors / get_author | Authors by name, or by OpenAlex ID / ORCID: works and citation counts, h-index, institutions, top topics |
search_institutions | Universities, companies and hospitals, optionally filtered by country (ISO-2) |
Journal covers and front matter (OpenAlex "paratext") are filtered out of work searches.
Connect an MCP client
The server speaks streamable HTTP at the Actor's Standby URL plus /mcp:
https://<username>--openalex-mcp.apify.actor/mcp
Every request needs your Apify API token: Authorization: Bearer <APIFY_TOKEN>.
Claude Desktop / Cursor (mcp.json):
{"mcpServers": {"openalex": {"url": "https://<username>--openalex-mcp.apify.actor/mcp","headers": {"Authorization": "Bearer <APIFY_TOKEN>"}}}}
For clients that only support stdio: npx mcp-remote https://<username>--openalex-mcp.apify.actor/mcp --header "Authorization: Bearer <APIFY_TOKEN>".
Python (FastMCP):
from fastmcp import Clientasync with Client("https://<username>--openalex-mcp.apify.actor/mcp", auth="<APIFY_TOKEN>") as c:print(await c.call_tool("search_works", {"query": "CRISPR delivery", "year_from": 2022, "per_page": 5}))
Settings (all optional)
- OpenAlex API key (secret): your own free key gives a bigger daily budget and up to 30 requests per second. You can also send it per request in the
x-openalex-api-keyheader. - Contact email (
mailto): always sent to OpenAlex. If you don't set one, the operator's contact address is used. You can also send it in thex-openalex-mailtoheader.
The server paces itself at 9 requests/second without a key (OpenAlex's limit is 10) and 25 with one. It retries 429s and 5xx errors, honouring Retry-After, before returning a clear error message.
A normal (non-Standby) run is a free health check: one sample search_works call, results saved to the dataset, no charge. Only MCP tool calls made in Standby mode are charged.
Example output (get_work)
{"id": "W2741809807", "doi": "https://doi.org/10.7717/peerj.4375","title": "The state of OA: a large-scale analysis of the prevalence and impact of Open Access articles","year": 2018, "type": "article", "authors": ["Heather Piwowar", "Jason R Priem", "..."], "authorCount": 9,"venue": "PeerJ", "openAccess": {"isOa": true, "status": "gold", "url": "https://doi.org/10.7717/peerj.4375"},"citedByCount": 1210, "topic": "Academic Publishing and Open Access", "abstract": "Despite growing interest in Open Access (OA) ... …"}
How it compares (prices checked on the Apify Store, 17 Oct 2026)
| Actor | Price per search / tool call | Per-run start fee |
|---|---|---|
| This Actor | $0.015 per successful call (failed calls free) | none |
| themineworks/academic-research-mcp | $0.0625 per paper search; $0.05 citation graph | $0.005 |
| nexgendata/academic-research-mcp-server | $0.02 per tool call | $0.00005 |
| johnvc/google-scholar-api (Google Scholar, not MCP) | $0.015 per query (FREE tier) | $0.005 |
Prices are taken from each Actor's public Store pricing and can change; check the Actor page before relying on them.
FAQ
Do I need an OpenAlex API key? No, but it's recommended. Keyless access is capped at 10 requests/second with a small shared daily budget, so you may see 429s. A free key gives your own budget and up to 30 requests/second.
What counts as a tool call? One successful call to any tool above. These aren't charged: errors (bad ID, rejected key, upstream failure after retries), MCP handshakes and tool listings, and normal health-check runs.
What else does Apify bill? In Standby mode, Apify also charges its normal platform usage (compute) on top of the per-call price.
Can I use a scoped Apify token? Yes, but set its Actor run access mode to Full access. Scoped tokens in restricted mode are rejected by Standby with HTTP 400 (actor-restricted-access-permission-mode-not-supported).
Which clients work? Any MCP client with streamable HTTP and custom headers (Claude Desktop, Cursor, VS Code, FastMCP). Stdio-only clients can use npx mcp-remote.
What do errors look like? The tool returns a plain error message, such as "Not found in OpenAlex", a rejected-key message, or a rate-limit message, instead of JSON.
Can I reuse the data? Yes. OpenAlex data is CC0; please cite OpenAlex (see below).
Credit and licence
Data from OpenAlex, built by OurResearch. OpenAlex data is released under CC0 (public domain). Please cite OpenAlex in your work: Priem, J., Piwowar, H., & Orr, R. (2022). OpenAlex: A fully-open index of scholarly works, authors, venues, institutions, and concepts. arXiv:2205.01833.
This Actor is independent and is not affiliated with, endorsed by or sponsored by OpenAlex or OurResearch.
