GnistAI GnistAI
Log in

OpenAlex

Open scholarly metadata — works, authors, institutions, and citation networks.

Overview   |   MCP   |   REST API   |   OpenAPI   |   CLI   |   Tutorial   |   Toolkits   |   Home
status: healthy status status healthy healthy tools: 6 tools tools 6 6 type: api wrapper type type api wrapper api wrapper lifecycle: maintained lifecycle lifecycle maintained maintained Science

Data source: OpenAlex

MCP Endpoint (Streamable HTTP) https://context.gnist.ai/mcp/openalex/
Authentication

All requests require a Gnist-API-Key header (or api_key query parameter).

Free tier: 100 calls/day. Get your API key.

Tools (6)

search_papers

Search scholarly papers by keyword across 250M+ works from OpenAlex.

Args:
query: Search terms (e.g. "transformer attention mechanisms", "CRISPR gene editing").
year_from: Filter to papers published from this year onward (e.g. 2020). Optional.
year_to: Filter to papers published up to this year (e.g. 2024). Optional.
field_of_study: Filter by research field (e.g. "machine learning", "biology"). Optional.
max_results: Number of results to return (1–25, default 10).

Returns:
Dictionary with count and papers list (id, doi, title, year, venue, cited_by_count,
open_access flag, authors up to 5, top 5 concepts).

ParameterTypeRequiredDescription
querystringrequiredSearch terms (e.g. "transformer attention mechanisms", "CRISPR gene editing").
year_fromanyoptionalFilter to papers published from this year onward (e.g. 2020). Optional.
year_toanyoptionalFilter to papers published up to this year (e.g. 2024). Optional.
field_of_studyanyoptionalFilter by research field (e.g. "machine learning", "biology"). Optional.
max_resultsintegeroptionalNumber of results to return (1–25, default 10). (default: 10)
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "search_papers",
    "arguments": {
      "query": "example"
    }
  }
}
get_paper

Get full details for a specific paper including abstract and citation count.

Args:
paper_id: OpenAlex ID (e.g. "W2741809807"), DOI (e.g. "10.1038/s41586-021-03819-2"),
or full URL (e.g. "https://openalex.org/W2741809807").

Returns:
Full paper record: id, doi, title, publication_year, venue, abstract,
authors, concepts, cited_by_count, references_count, open_access.

ParameterTypeRequiredDescription
paper_idstringrequiredOpenAlex ID (e.g. "W2741809807"), DOI (e.g. "10.1038/s41586-021-03819-2"), or full URL (e.g. "https://openalex.org/W2741809807").
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "get_paper",
    "arguments": {
      "paper_id": "123456789"
    }
  }
}
get_author_profile

Get a researcher's profile — works, citations, h-index, and affiliations.

Args:
author_id: OpenAlex author ID (e.g. "A5023888391"), ORCID (e.g. "0000-0001-6187-6610"),
or full ORCID URL.

Returns:
Author profile: id, display_name, orcid, works_count, cited_by_count,
h_index, and affiliations (up to 3 recent institutions).

ParameterTypeRequiredDescription
author_idstringrequiredOpenAlex author ID (e.g. "A5023888391"), ORCID (e.g. "0000-0001-6187-6610"), or full ORCID URL.
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "get_author_profile",
    "arguments": {
      "author_id": "example"
    }
  }
}
list_citations

List papers that cite or are referenced by a given paper.

Args:
paper_id: OpenAlex ID, DOI, or full URL of the paper.
direction: "cited_by" for papers that cite this one (default),
or "references" for papers this paper cites.
max_results: Number of results to return (1–25, default 20).

Returns:
Dictionary with count and papers list (id, doi, title, year, cited_by_count, authors).

ParameterTypeRequiredDescription
paper_idstringrequiredOpenAlex ID, DOI, or full URL of the paper.
directionstringoptional"cited_by" for papers that cite this one (default), or "references" for papers this paper cites. (default: "cited_by")
max_resultsintegeroptionalNumber of results to return (1–25, default 20). (default: 20)
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "list_citations",
    "arguments": {
      "paper_id": "example"
    }
  }
}
report_feedback

Report a bug, feature request, or general feedback for this data source.

Use this when something doesn't work as expected, when you'd like
a new feature, or when you have suggestions for improvement.

Args:
feedback: Describe the issue or suggestion.
feedback_type: One of 'bug', 'feature_request', or 'general'.

ParameterTypeRequiredDescription
feedbackstringrequired
feedback_typestringoptional (default: "general")
JSON-RPC Request
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "report_feedback",
    "arguments": {
      "feedback": "example"
    }
  }
}

Quick Start

Shell
curl -X POST "https://context.gnist.ai/mcp/openalex/" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "Gnist-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "search_papers", "arguments": {"query": "example"}}}'
Python
import httpx

resp = httpx.post(
    "https://context.gnist.ai/mcp/openalex/",
    headers={"Gnist-API-Key": "YOUR_API_KEY", "Content-Type": "application/json"},
    json={
  "jsonrpc": "2.0",
  "method": "tools/call",
  "id": 1,
  "params": {
    "name": "search_papers",
    "arguments": {
      "query": "example"
    }
  }
},
)
print(resp.json())

Related Toolkits (Science)

Resources