substack-mcp
substack-mcp
Ein Model Context Protocol (MCP) Server für Substack. Ermöglicht es Claude Code, Entwürfe zu erstellen, Bilder hochzuladen, Titelbilder festzulegen, Beiträge zu planen und auf Ihrer Substack-Publikation zu veröffentlichen.
Basiert auf
python-substack. Verwendet die interne API von Substack (es gibt keine öffentliche Posting-API). Nicht mit Substack Inc. verbunden.
Tools
Erforderlich
create_draft(title, content_markdown, subtitle?, audience?)— Erstellt einen neuen Entwurf aus Markdown.update_draft(post_id, title?, subtitle?, content_markdown?, audience?)— Bearbeitet einen bestehenden Entwurf.upload_image(image_path)— Lädt eine lokale Datei oder eine Remote-URL in das CDN von Substack hoch und gibt die URL zurück.publish_draft(post_id, send_email?, share_automatically?)— Sofortige Veröffentlichung.send_emailschaltet den E-Mail-Versand um.
Empfohlen
schedule_draft(post_id, iso_datetime)— Plant eine Veröffentlichung für ein zukünftiges Datum/eine zukünftige Uhrzeit (ISO 8601).unschedule_draft(post_id)— Storniert eine geplante Veröffentlichung.set_cover_image(post_id, image_url)— Legt das Titelbild fest (von derupload_imageURL).
Dienstprogramm
list_drafts(limit?)— Listet aktuelle Entwürfe auf.get_draft(post_id)— Ruft den vollständigen Inhalt eines Entwurfs ab.delete_draft(post_id)— Dauerhaftes Löschen.
Related MCP server: Substack MCP Server
Einrichtung
# 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-mcpStarten Sie Claude Code neu, dann sollte /mcp substack-mcp als connected anzeigen.
Funktionsweise der Authentifizierung
Standardmäßig liest substack-mcp-setup das substack.sid-Cookie direkt aus Ihrer bestehenden Chrome-Sitzung über pycookiecheat.
Substack kann nicht erkennen, dass etwas automatisiert wurde, da nichts automatisiert wurde: Es ist dieselbe Sitzung, die Sie bereits verwenden.
macOS wird einmalig nach dem Zugriff auf den Schlüsselbund fragen ("Chrome Safe Storage"). Klicken Sie auf "Immer erlauben", damit Sie beim nächsten Mal nicht erneut gefragt werden.
Unterstützt: Chrome, Brave, Edge, Chromium, Vivaldi, Opera.
Fallback-Modi
# 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 --manualToken werden unter ~/Library/Application Support/substack-mcp/config.json mit 0600-Berechtigungen gespeichert.
Sicherheit
Das substack.sid-Cookie ist gleichbedeutend mit einem Passwort — jeder, der es besitzt, hat vollen Kontozugriff (Beiträge veröffentlichen, Abrechnung bearbeiten usw.). Behandeln Sie es entsprechend.
Wo das Token gespeichert wird
macOS:
~/Library/Application Support/substack-mcp/config.json(Modus0600)Linux:
~/.config/substack-mcp/config.json(Modus0600)Oder über Umgebungsvariablen:
SUBSTACK_PUBLICATION_URL+SUBSTACK_SESSION_TOKEN(Umgebungsvariablen werden von untergeordneten Prozessen geerbt — seien Sie vorsichtig beim Starten von Unterprozessen)
Die .gitignore schließt config.json aus; committen Sie diese niemals. Das MCP schreibt außerdem eine temporäre Cookie-Datei über tempfile.mkstemp (Modus 0600) und löscht sie in einem finally-Block — siehe auth.py:write_cookie_file.
Wenn ein Token geleakt wurde
Von allen Sitzungen abmelden: Substack → Einstellungen → Sicherheit → "Von allen Sitzungen abmelden". Dies macht jedes existierende
substack.sidsofort ungültig.Melden Sie sich in Ihrem Browser wieder bei Substack an.
Führen Sie
substack-mcp-setuperneut aus, um das neue Cookie zu erfassen.
Sicherheit beim Hochladen von Bildern
upload_image akzeptiert nur:
HTTP(S)-URLs, oder
Lokale Dateien mit Bild-Endungen (
.png,.jpg,.jpeg,.gif,.webp,.heic,.heif), die sich nicht unter sensiblen Systempfaden befinden (/etc,/System,~/.ssh,~/.aws,~/Library/Keychainsusw.)
Dies schützt davor, dass ein Assistent (durch Prompt-Injection in abgerufenen Inhalten) dazu verleitet wird, z. B. einen privaten SSH-Schlüssel in das CDN von Substack hochzuladen.
Bekannte Einschränkung: Markdown-Bildsyntax  innerhalb von create_draft wird von python-substack verarbeitet und umgeht diese Validierung. Wenn Sie nicht vertrauenswürdiges Markdown übergeben, bereinigen Sie die Bildpfade zuerst.
Abhängigkeiten
Versionen sind mit ~= fixiert (kompatible Version, keine Major-Updates). Insbesondere das Update von python-substack sollte überprüft werden — es kommuniziert mit der privaten API von Substack und liegt außerhalb der offiziellen Oberfläche von Substack.
Hinweise
audienceakzeptiert:everyone(Standard),only_paid,founding,only_free.Markdown-Bildsyntax
lädt lokale Dateien automatisch hoch, wenn Siecreate_draftaufrufen.Das Titelbild (festgelegt über
set_cover_image) ist das Bild, das auf Ihrer Publikations-Startseite und bei Social-Media-Shares erscheint. Wenn Sie keines explizit festlegen, verwendet Substack normalerweise das erste Bild im Textkörper.
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