# hn-mcp-server

Даёт ИИ доступ к лентам, тредам и профилям Hacker News, включая полнотекстовый поиск. Пригодится для анализа публикаций и обсуждений из чата.

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

## Что делает

hn-mcp-server подключает Hacker News к агенту через MCP. Сервер умеет получать публикации из лент top, new, best, ask, show и jobs, раскрывать дерево комментариев, загружать профиль пользователя и искать истории, комментарии, опросы и вакансии. Поиск поддерживает ключевые слова и фильтры по типу, автору, родительской истории, дате и минимальному числу баллов.

В сервере четыре MCP-инструмента: `hn_get_stories`, `hn_get_thread`, `hn_get_user` и `hn_search_content`. Подключение доступно через STDIO или Streamable HTTP; для Claude Code можно использовать публичный адрес `https://hn.caseyjhand.com/mcp`. Локальный запуск зависит от `npx`, а параметры STDIO задаются переменными окружения вроде `HN_CONCURRENCY_LIMIT` и `MCP_HTTP_PORT`.

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

## Установка

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

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

2. **Командой платформы**
```bash
claude mcp add --env HN_CONCURRENCY_LIMIT=<HN_CONCURRENCY_LIMIT> --env MCP_LOG_LEVEL=<MCP_LOG_LEVEL> --env MCP_TRANSPORT_TYPE=<MCP_TRANSPORT_TYPE> --env MCP_HTTP_HOST=<MCP_HTTP_HOST> --env MCP_HTTP_PORT=<MCP_HTTP_PORT> --transport stdio hn-mcp-server -- npx -y @cyanheads/hn-mcp-server
```
Вместо <…> подставьте свои значения. Ещё 2 переменные окружения — в README сервера

### Codex

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

2. **Командой платформы**
```bash
codex mcp add hn-mcp-server --env HN_CONCURRENCY_LIMIT=<HN_CONCURRENCY_LIMIT> --env MCP_LOG_LEVEL=<MCP_LOG_LEVEL> --env MCP_TRANSPORT_TYPE=<MCP_TRANSPORT_TYPE> --env MCP_HTTP_HOST=<MCP_HTTP_HOST> --env MCP_HTTP_PORT=<MCP_HTTP_PORT> -- npx -y @cyanheads/hn-mcp-server
```
Вместо <…> подставьте свои значения. Ещё 2 переменные окружения — в README сервера

### Cursor

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

### GitHub Copilot

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

### Gemini CLI

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

2. **Командой платформы**
```bash
gemini mcp add -e HN_CONCURRENCY_LIMIT=<HN_CONCURRENCY_LIMIT> -e MCP_LOG_LEVEL=<MCP_LOG_LEVEL> -e MCP_TRANSPORT_TYPE=<MCP_TRANSPORT_TYPE> -e MCP_HTTP_HOST=<MCP_HTTP_HOST> -e MCP_HTTP_PORT=<MCP_HTTP_PORT> hn-mcp-server npx -y @cyanheads/hn-mcp-server
```
Вместо <…> подставьте свои значения. Ещё 2 переменные окружения — в README сервера

## Когда брать
- найти истории Hacker News по ключевым словам и фильтрам
- получить публикации из лент top или jobs
- прочитать ветку комментариев целиком
- загрузить профиль пользователя и его публикации
- сравнить обсуждения по автору, дате или баллам

## Примеры запросов агенту
- Найди в Hacker News истории про MCP за нужный период и отфильтруй их по минимальному числу баллов.
- Покажи публикацию с ID `<itemId>` вместе с деревом комментариев и продолжи чтение следующей страницей.
- Загрузи профиль Hacker News пользователя `<username>` и его последние публикации.

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

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