io.github.cyanheads/openalex-mcp-server

io.github.cyanheads/openalex-mcp-server · v0.8.0 · marketing-and-seo

io.github.cyanheads/openalex-mcp-server is healthy: it completed an MCP handshake in 2381 ms and exposes 5 tools.

Access the OpenAlex academic research catalog — 270M+ publications.

Endpoint: https://openalex.caseyjhand.com/mcp (streamable-http)

Repository · JSON · Add to my inventory

Facts

Users (last 30 days)0
HandshakeHealthy
Auth neededNone
Tool count5
Latency2381 ms
Last checked (UTC)2026-10-15T03:25:43.391Z

Health history

Checked (UTC)StatusLatencyError
2026-10-15T03:25:43.391ZHealthy2381

Tools (5)

openalex_resolve_nameResolve a name or an identifier to an OpenAlex ID. ALWAYS use this before filtering by entity — names are ambiguous, IDs are not. A name returns up to 10 autocomplete matches with disambiguation hints. An identifier — OpenAlex ID, DOI, ORCID, ROR, PMID, or ISSN, bare or in URL form — resolves direct
openalex_search_entitiesSearch, filter, sort, or retrieve by ID. Covers all OpenAlex entity types (works, authors, sources, institutions, topics, keywords, publishers, funders). Pass `id` to retrieve a single entity. Otherwise, use `query` and/or `filters` for discovery. Supports keyword search with boolean operators, exac
openalex_analyze_trendsAggregate OpenAlex entities into groups and count them. Use for trend analysis (group works by publication_year), distribution analysis (group by oa_status, type, country), and comparative analysis (group by institution or topic). Combine with filters to scope the analysis. Returns up to 200 groups
openalex_get_citation_graphWalk the citation graph one hop from a seed work. Direction picks the edge: incoming citations (`cites`), the seed's own references (`cited_by`), or OpenAlex's algorithmically-related works (`related_to`). Note: `direction` follows OpenAlex's filter convention, which inverts the common English readi
openalex_describe_fieldsList valid field names for an OpenAlex entity type and context (filter, group_by, or select). Use proactively before constructing a filter or group_by to avoid invalid-field 400 errors. Pass `query` to rank the list by name similarity — useful when you have a partial or guessed field name. Ranking n