substack-mcp
substack-mcp
Сервер протокола контекста модели (MCP) для Substack. Позволяет Claude Code создавать черновики, загружать изображения, устанавливать обложки, планировать и публиковать посты в вашей публикации Substack.
Построено на базе
python-substack. Использует внутренний API Substack (публичного API для публикации не существует). Не является аффилированным лицом Substack Inc.
Инструменты
Обязательные
create_draft(title, content_markdown, subtitle?, audience?)— Создать новый черновик из Markdown.update_draft(post_id, title?, subtitle?, content_markdown?, audience?)— Редактировать существующий черновик.upload_image(image_path)— Загрузить локальный файл или удаленный URL в CDN Substack, возвращая URL.publish_draft(post_id, send_email?, share_automatically?)— Опубликовать немедленно.send_emailпереключает отправку по электронной почте.
Рекомендуемые
schedule_draft(post_id, iso_datetime)— Запланировать публикацию на будущую дату/время (ISO 8601).unschedule_draft(post_id)— Отменить запланированную публикацию.set_cover_image(post_id, image_url)— Установить обложку (из URLupload_image).
Вспомогательные
list_drafts(limit?)— Список недавних черновиков.get_draft(post_id)— Получить полное содержимое черновика.delete_draft(post_id)— Безвозвратное удаление.
Related MCP server: Substack MCP Server
Настройка
# 1. Install dependencies
uv pip install -e .
# 2. Make sure you're logged in to Substack in Chrome (or Brave/Edge) — that's it.
# 3. Save credentials — auto-detects your existing browser session
substack-mcp-setup
# 4. Register with Claude Code
claude mcp add substack-mcp --scope user -- /Users/$USER/substack/.venv/bin/substack-mcpПерезапустите Claude Code, после чего /mcp должен показать substack-mcp как connected.
Как работает аутентификация
По умолчанию substack-mcp-setup считывает cookie substack.sid напрямую из вашего существующего сеанса Chrome через pycookiecheat.
Substack не может определить, что что-то было автоматизировано, потому что ничего не было: это тот же сеанс, который вы уже используете.
macOS один раз запросит доступ к связке ключей ("Chrome Safe Storage"). Нажмите "Всегда разрешать" ("Always Allow"), чтобы он не спрашивал снова в следующий раз.
Поддерживаются: Chrome, Brave, Edge, Chromium, Vivaldi, Opera.
Резервные режимы
# Specific browser
substack-mcp-setup --from-browser brave
# Playwright-based (often blocked by Substack — use --chrome instead)
substack-mcp-setup --browser
# Manual paste from DevTools
substack-mcp-setup --manualТокены хранятся в ~/Library/Application Support/substack-mcp/config.json с правами доступа 0600.
Безопасность
Cookie substack.sid эквивалентен паролю — любой, у кого он есть, имеет полный доступ к учетной записи (публикация постов, редактирование биллинга и т. д.). Относитесь к нему соответствующим образом.
Где хранится токен
macOS:
~/Library/Application Support/substack-mcp/config.json(режим0600)Linux:
~/.config/substack-mcp/config.json(режим0600)Или через переменные окружения:
SUBSTACK_PUBLICATION_URL+SUBSTACK_SESSION_TOKEN(переменные окружения наследуются дочерними процессами — будьте осторожны при порождении подпроцессов)
.gitignore исключает config.json; никогда не добавляйте его в коммит. MCP также записывает временный файл cookie через tempfile.mkstemp (режим 0600) и удаляет его в блоке finally — см. auth.py:write_cookie_file.
Если токен скомпрометирован
Выйдите из всех сеансов: Substack → Настройки → Безопасность → "Выйти из всех сеансов". Это немедленно аннулирует каждый существующий
substack.sid.Снова войдите в Substack в своем браузере.
Запустите
substack-mcp-setupповторно, чтобы захватить новый cookie.
Безопасность загрузки изображений
upload_image принимает только:
HTTP(S) URL-адреса, или
Локальные файлы с расширениями изображений (
.png,.jpg,.jpeg,.gif,.webp,.heic,.heif), которые не находятся в чувствительных системных путях (/etc,/System,~/.ssh,~/.aws,~/Library/Keychainsи т. д.)
Это защищает от того, чтобы помощника обманом (через инъекцию промпта в полученном контенте) заставили загрузить, например, закрытый ключ SSH в CDN Substack.
Известное ограничение: Markdown-синтаксис изображений  внутри create_draft обрабатывается python-substack и обходит эту проверку. Если вы передаете ненадежный Markdown, сначала очистите пути к изображениям.
Зависимости
Версии закреплены с помощью ~= (совместимый релиз, без мажорных обновлений). Обновление python-substack, в частности, должно проверяться — он взаимодействует с приватным API Substack и находится вне официальной поверхности Substack.
Примечания
audienceпринимает:everyone(по умолчанию),only_paid,founding,only_free.Markdown-синтаксис изображений
автоматически загружает локальные файлы при вызовеcreate_draft.Обложка (устанавливаемая через
set_cover_image) — это то, что отображается на главной странице вашей публикации и в социальных сетях. Если вы не установите ее явно, Substack обычно использует первое изображение в теле поста.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceAn MCP server that enables AI assistants like Claude to interact with Substack newsletters, allowing for post retrieval, content searching, and author information access through a standardized interface.
- AlicenseAqualityAmaintenanceMCP server for Substack — read posts, manage drafts, and upload images. Safe by design: cannot publish or delete.1443918MIT
- AlicenseNot gradedqualityDmaintenanceEnables programmatic management of Substack content, including creating drafts, publishing posts, and uploading images. It supports specialized features like live blogging and posting to Substack Notes through MCP-compatible AI tools.MIT
- AlicenseNot gradedqualityDmaintenanceCreate, manage, and publish Substack posts with full rich text formatting directly from Claude Desktop or any MCP-compatible client.3920MIT
Related MCP Connectors
WordPress MCP server: generate SEO posts, AI images, autoblog & WooCommerce on your self-hosted site
WordPress MCP server: publish posts, AI images, SEO and full site management, self-hosted
MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nanameru/substack-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server