Content
# OpenAlex MCP Server
A Model Context Protocol (MCP) server that provides access to the OpenAlex API - a fully open catalog of the global research system covering over 240 million scholarly works.
## Features
This MCP server provides tools to search and retrieve:
- **Works** - Scholarly articles, preprints, datasets, books (240M+ items)
- **Authors** - Researchers and creators with ORCID integration
- **Sources** - Journals, conferences, repositories (~250K venues)
- **Institutions** - Universities, hospitals, labs with ROR matching
- **Concepts** - Hierarchical research topics (levels 0-5)
- **Publishers** - Publishing organizations
- **Funders** - Grant-making bodies
- **Autocomplete** - Type-ahead search across all entity types
- **Text Classification** - Concept prediction for arbitrary text
## Installation
### From npm (Recommended)
```bash
npm install -g openalex-mcp
```
### From Source
```bash
git clone https://github.com/reetp14/openalex-mcp.git
cd openalex-mcp
npm install
npm run build
```
## Usage
### As an MCP Server
Add to your MCP client configuration:
```json
{
"mcpServers": {
"openalex": {
"command": "npx",
"args": ["openalex-mcp"]
}
}
}
json
```
Or if installed locally:
```json
{
"mcpServers": {
"openalex": {
"command": "node",
"args": ["./node_modules/openalex-mcp/build/index.js"]
}
}
}
```
### Available Tools
#### Entity Search Tools
All search tools support the full OpenAlex query grammar:
- `search_works` - Search scholarly works
- `search_authors` - Search researchers and creators
- `search_sources` - Search journals, conferences, repositories
- `search_institutions` - Search universities, hospitals, labs
- `search_concepts` - Search research topics
- `search_publishers` - Search publishing organizations
- `search_funders` - Search grant-making bodies
**Common Parameters:**
- `search` - Full-text search query
- `filter` - Boolean filters (e.g., `concept.id:C12345,from_publication_date:2022-01-01`)
- `sort` - Sort field with optional `:desc` (e.g., `cited_by_count:desc`)
- `page`/`per_page` - Standard pagination (max 10,000 results total)
- `cursor` - Deep pagination (use `*` for first call)
- `group_by` - Faceting/aggregation by field
- `select` - Comma-separated fields to return
- `sample` - Random sample size with optional `seed`
- `mailto` - Your email for higher rate limits
#### Single Entity Retrieval
- `get_entity` - Get a single entity by OpenAlex ID
- `entity_type` - One of: works, authors, sources, institutions, concepts, publishers, funders
- `openalex_id` - OpenAlex ID (e.g., W2741809807, A1969205038)
#### Utility Tools
- `autocomplete` - Type-ahead search across entity types
- `search` - Search query (required)
- `type` - Entity type to search within (optional)
- `per_page` - Number of suggestions (max 50)
- `classify_text` - Predict research concepts from text
- `title` - Title text to classify
- `abstract` - Abstract text to classify
## Examples
### Search for AI papers from 2023
```json
{
"tool": "search_works",
"arguments": {
"search": "artificial intelligence",
"filter": "from_publication_date:2023-01-01,to_publication_date:2023-12-31",
"sort": "cited_by_count:desc",
"per_page": 10,
"mailto": "researcher@university.edu"
}
}
```
### Find authors by institution
```json
{
"tool": "search_authors",
"arguments": {
"filter": "last_known_institution.id:I27837315",
"sort": "works_count:desc",
"select": "id,display_name,works_count,cited_by_count"
}
}
```
### Get publication trends by year
```json
{
"tool": "search_works",
"arguments": {
"filter": "concepts.id:C154945302",
"group_by": "publication_year"
}
}
```
### Autocomplete journal names
```json
{
"tool": "autocomplete",
"arguments": {
"search": "nature",
"type": "sources",
"per_page": 5
}
}
```
### Classify research text
```json
{
"tool": "classify_text",
"arguments": {
"title": "Deep Learning for Medical Image Analysis",
"abstract": "We present a novel approach using convolutional neural networks..."
}
}
```
## Query Grammar Quick Reference
### Filters
- Chain with `,` for AND: `concept.id:C12345,publication_year:2023`
- Chain with `|` for OR: `type:journal|type:repository`
- Negate with `!`: `authors.id!A12345` (exclude author)
- Date ranges: `from_publication_date:2020-01-01,to_publication_date:2023-12-31`
### Sorting
- Ascending: `sort=publication_year`
- Descending: `sort=cited_by_count:desc`
- Multiple: `sort=publication_year:desc,cited_by_count:desc`
### Pagination
- Standard: `page=2&per_page=100` (max 10,000 results)
- Deep: `cursor=*` (first call), then use returned `next_cursor`
### Rate Limits
- Anonymous: 10 requests/second, 100,000/day
- With `mailto`: 100 requests/second, 1,000,000/day
## API Response Format
All tools return the standard OpenAlex JSON envelope:
```json
{
"meta": {
"count": 249256387,
"db_response_time_ms": 12,
"page": 1,
"per_page": 25,
"next_cursor": "ZjEwMD..."
},
"results": [
{
/* entity object */
}
]
}
```
## Development
```bash
# Watch mode during development
npm run watch
# Test with MCP inspector
npm run inspector
# Run basic functionality test
node test-simple.js
```
## Environment Configuration
The server supports environment variables for configuration. Copy `.env.example` to `.env` and configure:
```bash
cp .env.example .env
# Edit .env with your settings
```
### Environment Variables
- `OPENALEX_BEARER_TOKEN`: Bearer token for authenticated API access (optional)
- `OPENALEX_DEFAULT_EMAIL`: Default email for rate limiting when no `mailto` parameter provided
## API Access Notes
- **Free Access**: OpenAlex API is free and open
- **Rate Limits**: 10 req/sec (anonymous) or 100 req/sec (with Bearer token or `mailto`)
- **Authentication**: Bearer token automatically loaded from environment
- **Response Size**: Use `select` parameter to limit response size for large datasets
Example with optimized response:
```json
{
"tool": "search_works",
"arguments": {
"search": "machine learning",
"select": "id,display_name,publication_year,cited_by_count",
"per_page": 10
}
}
```
## About OpenAlex
OpenAlex is a fully open catalog of the global research system, named after the ancient Library of Alexandria and created by the nonprofit [OurResearch](https://ourresearch.org/). It provides free, comprehensive metadata about scholarly works, authors, institutions, and more.
- Website: https://openalex.org/
- API Documentation: https://docs.openalex.org/
- Data sources: Crossref, ORCID, ROR, Microsoft Academic Graph, and more
Connection Info
You Might Also Like
markitdown
MarkItDown-MCP is a lightweight server for converting URIs to Markdown.
markitdown
Python tool for converting files and office documents to Markdown.
Filesystem
Node.js MCP Server for filesystem operations with dynamic access control.
TrendRadar
TrendRadar: Your hotspot assistant for real news in just 30 seconds.
mempalace
The highest-scoring AI memory system ever benchmarked. And it's free.
mempalace
The highest-scoring AI memory system ever benchmarked. And it's free.