# openalex-mcp-server

Открывает агенту каталог OpenAlex: более 270 млн публикаций, авторы, источники, организации и темы. Пригодится, когда нужно искать литературу или строить граф цитирований прямо в чате.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 16
- Автор: cyanheads
- Лицензия: Apache-2.0 · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/cyanheads/openalex-mcp-server
- Обновлён: 2026-10-23
- HTML: https://affpapa.org/nevibecode/mcp/openalex-mcp-server

## Что делает

Сервер даёт пять инструментов. `openalex_search_entities` ищет и фильтрует объекты восьми типов, `openalex_analyze_trends` считает группировки для распределений, `openalex_resolve_name` сводит имя или идентификатор к каноническому OpenAlex ID, `openalex_get_citation_graph` проходит по цитированиям на один шаг, а `openalex_describe_fields` подсказывает допустимые поля фильтров. Ещё два промпта задают сценарии: обзор литературы и разбор ландшафта исследований по теме.

Работает по STDIO через `npx -y @cyanheads/openalex-mcp-server` либо по Streamable HTTP. Публичный хост — `https://openalex.caseyjhand.com/mcp`, его можно прописать без локального запуска. Для STDIO-варианта есть переменные окружения: `OPENALEX_API_KEY`, `OPENALEX_MAILTO`, `OPENALEX_BASE_URL`, `OPENALEX_CLAMP_PER_PAGE` и `OPENALEX_FILTER_STRING_INPUT`.

Фильтры принимают объект или нативную строку вроде `issn:0920-8542`. Ловушка в смешении `|` и `+` в одном значении: такая конструкция отклоняется с ошибкой `mixed_and_or_in_filter_value`, и AND нужно переносить в отдельный ключ. Значение без парных двойных кавычек тоже не пройдёт.

## Требования
- Нужно: Node.js (команды через npx)
- Удалённый сервер: `https://openalex.caseyjhand.com/mcp`
- Переменные окружения: `OPENALEX_CLAMP_PER_PAGE`, `OPENALEX_FILTER_STRING_INPUT`, `OPENALEX_API_KEY`, `OPENALEX_MAILTO`, `OPENALEX_BASE_URL`, `MCP_LOG_LEVEL`, `MCP_TRANSPORT_TYPE`, `MCP_HTTP_HOST`, `MCP_HTTP_PORT`, `MCP_HTTP_ENDPOINT_PATH` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

1. **Командой платформы: удалённый сервер**
```bash
claude mcp add --transport http openalex-mcp-server https://openalex.caseyjhand.com/mcp
```

2. **Командой платформы**
```bash
claude mcp add --env OPENALEX_CLAMP_PER_PAGE=<OPENALEX_CLAMP_PER_PAGE> --env OPENALEX_FILTER_STRING_INPUT=<OPENALEX_FILTER_STRING_INPUT> --env OPENALEX_API_KEY=<OPENALEX_API_KEY> --env OPENALEX_MAILTO=<OPENALEX_MAILTO> --env OPENALEX_BASE_URL=<OPENALEX_BASE_URL> --transport stdio openalex-mcp-server -- npx -y @cyanheads/openalex-mcp-server
```
Вместо <…> подставьте свои значения. Ещё 6 переменных окружения — в README сервера

### Codex

1. **Командой платформы: удалённый сервер**
```bash
codex mcp add openalex-mcp-server --url https://openalex.caseyjhand.com/mcp
```

2. **Командой платформы**
```bash
codex mcp add openalex-mcp-server --env OPENALEX_CLAMP_PER_PAGE=<OPENALEX_CLAMP_PER_PAGE> --env OPENALEX_FILTER_STRING_INPUT=<OPENALEX_FILTER_STRING_INPUT> --env OPENALEX_API_KEY=<OPENALEX_API_KEY> --env OPENALEX_MAILTO=<OPENALEX_MAILTO> --env OPENALEX_BASE_URL=<OPENALEX_BASE_URL> -- npx -y @cyanheads/openalex-mcp-server
```
Вместо <…> подставьте свои значения. Ещё 6 переменных окружения — в README сервера

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "openalex-mcp-server": {
            "url": "https://openalex.caseyjhand.com/mcp"
        }
    }
}
```
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "openalex-mcp-server": {
            "command": "npx",
            "args": [
                "-y",
                "@cyanheads/openalex-mcp-server"
            ],
            "env": {
                "OPENALEX_CLAMP_PER_PAGE": "<OPENALEX_CLAMP_PER_PAGE>",
                "OPENALEX_FILTER_STRING_INPUT": "<OPENALEX_FILTER_STRING_INPUT>",
                "OPENALEX_API_KEY": "<OPENALEX_API_KEY>",
                "OPENALEX_MAILTO": "<OPENALEX_MAILTO>",
                "OPENALEX_BASE_URL": "<OPENALEX_BASE_URL>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 6 переменных окружения — в README сервера

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "openalex-mcp-server": {
            "type": "http",
            "url": "https://openalex.caseyjhand.com/mcp"
        }
    }
}
```
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "openalex-mcp-server": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@cyanheads/openalex-mcp-server"
            ],
            "env": {
                "OPENALEX_CLAMP_PER_PAGE": "<OPENALEX_CLAMP_PER_PAGE>",
                "OPENALEX_FILTER_STRING_INPUT": "<OPENALEX_FILTER_STRING_INPUT>",
                "OPENALEX_API_KEY": "<OPENALEX_API_KEY>",
                "OPENALEX_MAILTO": "<OPENALEX_MAILTO>",
                "OPENALEX_BASE_URL": "<OPENALEX_BASE_URL>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 6 переменных окружения — в README сервера

### Gemini CLI

1. **Командой платформы: удалённый сервер**
```bash
gemini mcp add -t http openalex-mcp-server https://openalex.caseyjhand.com/mcp
```

2. **Командой платформы**
```bash
gemini mcp add -e OPENALEX_CLAMP_PER_PAGE=<OPENALEX_CLAMP_PER_PAGE> -e OPENALEX_FILTER_STRING_INPUT=<OPENALEX_FILTER_STRING_INPUT> -e OPENALEX_API_KEY=<OPENALEX_API_KEY> -e OPENALEX_MAILTO=<OPENALEX_MAILTO> -e OPENALEX_BASE_URL=<OPENALEX_BASE_URL> openalex-mcp-server npx -y @cyanheads/openalex-mcp-server
```
Вместо <…> подставьте свои значения. Ещё 6 переменных окружения — в README сервера

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
