Access the OpenAlex academic research catalog - 270M+ publications via MCP. STDIO & HTTP.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Access the OpenAlex academic research catalog - 270M+ publications through MCP. STDIO & Streamable HTTP.
Public Hosted Server: https://openalex.caseyjhand.com/mcp
Five tools for querying the OpenAlex academic research catalog:
| Tool Name | Description |
|---|---|
openalex_search_entities | Search, filter, sort, or retrieve by ID across all 8 entity types. |
openalex_analyze_trends | Group-by aggregation for trend and distribution analysis. |
openalex_resolve_name | Resolve a name or an identifier (DOI, ORCID, ROR, PMID, PMCID, ISSN, OpenAlex ID) to an OpenAlex ID. |
openalex_get_citation_graph | Walk the citation graph one hop from a seed work: cites, cited_by, or related_to. |
openalex_describe_fields | List valid filter, group_by, and select field names for an entity type β call before building a query to avoid invalid-field errors. |
openalex_search_entitiesPrimary discovery and lookup tool. Covers all OpenAlex entity types (works, authors, sources, institutions, topics, keywords, publishers, funders).
id takes precedence: search criteria passed alongside it are not applied, and the response says which ones were dropped rather than echoing them back as though they ran. The search-only validations (semantic page cap, sample with cursor, seed without sample) are skipped too β a lookup is never rejected over parameters it ignoresus|gb), NOT (!us), ranges (2020-2024), comparisons (>100)select to choose fields, or ["*"] for the full recordselect field names produce an error listing the valid fields for that entity typesort takes a single key or a comma-separated list, with the - descending prefix applied per keydisplay_name is nullable β OpenAlex holds no title for paratext and other untitled records, which pass through instead of failing the whole pageopenalex_analyze_trendsAggregate entities into groups and count them for trend, distribution, and comparative analysis.
include_unknown to show entities with no value for the grouped fieldopenalex_resolve_nameThe front door for turning anything you have into an OpenAlex ID. Always use this before filtering by entity β names are ambiguous, IDs are not.
entity_type needed: the identifier determines its ownopenalex_get_citation_graphOne-hop citation graph traversal from a seed work. Wraps the OpenAlex cites/cited_by/related_to filters behind an explicit direction argument so callers do not have to know the filter names.
cites: works that cite the seed (incoming citations)cited_by: works the seed cites (its reference list)related_to: OpenAlex algorithmic "related works" (~8-30 typical, may be empty for less-cited seeds)seed_id; validates the seed via a singleton /works/{id} lookup before walking, so non-existent seeds surface as NotFoundfilters/sort/select to narrow the graph (e.g., publication_year=">2020", is_oa="true")openalex_describe_fieldsDiscover valid field names before constructing a query β avoids invalid-field 400 errors. Backed by a catalog generated from OpenAlex's own field validation.
filter, group_by, or select)group_by returns the subset of the filter set OpenAlex can aggregate β raw date fields, *.search operators, and from_*/to_* range modifiers are excludedquery (a partial or guessed name) to rank results by name similarity β surfaces the right field when you only know roughly what you want| Prompt | Description |
|---|---|
openalex_literature_review | Guides a systematic literature search: formulate query, search, filter, analyze citation network, synthesize findings. |
openalex_research_landscape | Analyzes the research landscape for a topic: volume trends, top authors/institutions, open access rates, funding sources. |
Built on @cyanheads/mcp-ts-core:
none, jwt, oauth)OpenAlex-specific:
AbortSignalA public instance is available at https://openalex.caseyjhand.com/mcp β no installation required. Point any MCP client at it via Streamable HTTP:
Add to your MCP client config (e.g., claude_desktop_config.json):
OPENALEX_API_KEY is optional β set it to a free OpenAlex account key for keyed rate limits and budget under OpenAlex's usage-based pricing, or omit it for anonymous access. Set OPENALEX_MAILTO to an email if you want to identify yourself to OpenAlex (the polite pool).
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/openalex-mcp-server)<a href="https://allmcps.com/mcp/openalex-mcp-server"><img src="https://allmcps.com/api/badge/openalex-mcp-server?style=directory" alt="Openalex MCP Server on AllMCPs" /></a>