# Substack MCP Server

Подключает Substack к ИИ-ассистенту: готовит черновики постов, ищет по архиву, показывает аналитику и публикует Notes.

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

## Что делает

Сервер даёт ассистенту доступ к вашей публикации в Substack. Через него можно собрать черновик длинного поста, найти старую запись в архиве, выгрузить текст, проверить метрики и посмотреть список подписчиков, которые явно дали согласие на рассылку.

Длинные посты сервер только создаёт и правит как черновики — публикуете вы сами в редакторе Substack. А вот `create_note` и `create_note_with_link` выкладывают короткие Notes сразу, потому что черновиков у Notes нет. Откатить публикацию из сервера нельзя, так что инструменты Notes стоит держать под рукой осознанно.

Нужен Node.js 22 или новее. Для входа через браузер дополнительно ставятся Playwright и Chromium: `npm install @conorbronsdon/substack-mcp playwright`, затем `npx playwright install chromium` и `npx substack-mcp login https://yourblog.substack.com --user-id 12345`. Без `--profile` сессия ложится в `~/.substack-mcp/session.json`. Вместо браузерного входа можно передать `SUBSTACK_PUBLICATION_URL`, `SUBSTACK_SESSION_TOKEN` и `SUBSTACK_USER_ID` переменными окружения. Проверить доступ к чтению заранее помогает `npx substack-mcp doctor --json --check-auth` — он делает по одному чтению на публикацию и подтверждает только чтение, не право на запись.

## Требования
- Нужно: Node.js (команды через npx)
- Переменные окружения: `SUBSTACK_PUBLICATION_URL`, `SUBSTACK_SESSION_TOKEN`, `SUBSTACK_USER_ID` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.
- Работает с: Playwright

## Установка

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

**Командой платформы**
```bash
claude mcp add substack-mcp -e SUBSTACK_PUBLICATION_URL=<SUBSTACK_PUBLICATION_URL> -e SUBSTACK_SESSION_TOKEN=<SUBSTACK_SESSION_TOKEN> -e SUBSTACK_USER_ID=<SUBSTACK_USER_ID> -- npx -y @conorbronsdon/substack-mcp
```
Вместо <…> подставьте свои значения

### Codex

**Командой платформы**
```bash
codex mcp add conorbronsdon-substack-mcp-server --env SUBSTACK_PUBLICATION_URL=<SUBSTACK_PUBLICATION_URL> --env SUBSTACK_SESSION_TOKEN=<SUBSTACK_SESSION_TOKEN> --env SUBSTACK_USER_ID=<SUBSTACK_USER_ID> -- npx -y @conorbronsdon/substack-mcp
```
Вместо <…> подставьте свои значения

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "conorbronsdon-substack-mcp-server": {
            "command": "npx",
            "args": [
                "-y",
                "@conorbronsdon/substack-mcp"
            ],
            "env": {
                "SUBSTACK_PUBLICATION_URL": "<SUBSTACK_PUBLICATION_URL>",
                "SUBSTACK_SESSION_TOKEN": "<SUBSTACK_SESSION_TOKEN>",
                "SUBSTACK_USER_ID": "<SUBSTACK_USER_ID>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "conorbronsdon-substack-mcp-server": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@conorbronsdon/substack-mcp"
            ],
            "env": {
                "SUBSTACK_PUBLICATION_URL": "<SUBSTACK_PUBLICATION_URL>",
                "SUBSTACK_SESSION_TOKEN": "<SUBSTACK_SESSION_TOKEN>",
                "SUBSTACK_USER_ID": "<SUBSTACK_USER_ID>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e SUBSTACK_PUBLICATION_URL=<SUBSTACK_PUBLICATION_URL> -e SUBSTACK_SESSION_TOKEN=<SUBSTACK_SESSION_TOKEN> -e SUBSTACK_USER_ID=<SUBSTACK_USER_ID> conorbronsdon-substack-mcp-server npx -y @conorbronsdon/substack-mcp
```
Вместо <…> подставьте свои значения

## Когда брать
- собрать черновик длинного поста из заметок и ссылок
- найти старую публикацию в архиве по ключевым словам
- выгрузить черновик в файл перед правкой
- посмотреть статистику публикации и число подписчиков
- опубликовать короткий Note со ссылкой

## Примеры запросов агенту
- Сколько у меня подписчиков в Substack?
- Найди в архиве посты про MCP и покажи черновик одного из них
- Сделай Note со ссылкой на свежий пост

## Похожие
- [labelhead-artist-momentum](https://affpapa.org/nevibecode/mcp/labelhead-artist-momentum.md) — MCP-сервер · ★ 107423
- [openshorts](https://affpapa.org/nevibecode/mcp/openshorts.md) — MCP-сервер · ★ 7049
- [OpenScreen](https://affpapa.org/nevibecode/mcp/openscreen.md) — MCP-сервер · ★ 4863
- [Usertour MCP Server](https://affpapa.org/nevibecode/mcp/usertour-mcp-server.md) — MCP-сервер · ★ 2326
- [Appllama](https://affpapa.org/nevibecode/mcp/appllama.md) — MCP-сервер · ★ 3046
- [obsei](https://affpapa.org/nevibecode/mcp/obsei.md) — MCP-сервер · ★ 1441

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