
arthurcolle/substack-mcp
Developer toolsЭта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал
Model Context Protocol server for Substack integration with Claude Code
Обзор
A Model Context Protocol (MCP) server for Substack integration with Claude Code and other MCP-compatible AI tools. - - Create, update, and publish Substack posts programmatically - - Upload images to Substack's CDN with proper metadata - - Real-time post updates with timestamps - - Post short-form content to Substack Notes - - Proper document structure for Substack's editor 1. Go to your Substack dashboard in Chrome/Safari 2. Open DevTools (Cmd+Option+I or F12) 3. Go to Application tab → Cookies → your-substack.substack.com 4. Find substack.sid and copy its value The core client for interacting with Substack's API. Substack uses ProseMirror and requires specific attributes for images: The internalRedirect field is - without it, Substack's editor fails to render the document. - create_draft and update_draft automatically add missing internalRedirect values for any image nodes.
README
Показан фрагмент оригинального README. Открыть оригинал.
Substack MCP Server
A Model Context Protocol (MCP) server for Substack integration with Claude Code and other MCP-compatible AI tools.
Features
- Create and manage drafts - Create, update, and publish Substack posts programmatically
- Image upload - Upload images to Substack’s CDN with proper metadata
- Live blogging - Real-time post updates with timestamps
- Notes - Post short-form content to Substack Notes
- Full ProseMirror support - Proper document structure for Substack’s editor
Installation
# Clone the repo
git clone https://github.com/acolle/substack-mcp.git
cd substack-mcp
# Install dependencies
pip install -r requirements.txt
Testing
python -m unittest discover -s tests
Setup
1. Get your Substack credentials
- Go to your Substack dashboard in Chrome/Safari
- Open DevTools (Cmd+Option+I or F12)
- Go to Application tab → Cookies → your-substack.substack.com
- Find
substack.sidand copy its value
2. Create credentials file
# Create ~/.substackrc
cat > ~/.substackrc << 'EOF'
export SUBSTACK_PUBLICATION="your-publication.substack.com"
export SUBSTACK_SID="your-cookie-value-here"
EOF
3. Add to Claude Code
# Add the MCP server to Claude Code
claude mcp add substack \
--command "bash" \
--args "-c" "source ~/.substackrc && python3 $(pwd)/substack_mcp/server.py"
Or manually add to ~/.claude.json:
{
"mcpServers": {
"substack": {
"command": "bash",
"args": ["-c", "source ~/.substackrc && python3 /path/to/substack-mcp/substack_mcp/server.py"]
}
}
}
Available Tools
| Tool | Description |
|---|---|
substack_create_draft |
Create a new draft post |
substack_update_draft |
Update an existing draft |
substack_append_to_draft |
Append content (for live blogging) |
substack_add_code_block |
Add a code block to a draft |
substack_add_image |
Add an image to a draft |
substack_publish |
Publish a draft |
substack_post_note |
Post a short note |
substack_get_drafts |
List all drafts |
substack_get_posts |
List published posts |
substack_live_blog_start |
Start a live blogging session |
substack_live_blog_end |
End live blogging session |
Usage Examples
Create a post with Claude Code
You: Create a new Substack post about AI tools
Claude: I'll create a draft for you...
[Uses substack_create_draft tool]
Created draft 12345. Edit at: https://your-pub.substack.com/publish/post/12345
Upload and embed images
You: Add this diagram to my post [image path]
Claude: I'll upload the image and add it to your draft...
[Uses substack_add_image tool]
Image added successfully.
Live blogging
You: Start a live blog for the product launch
Claude: Starting live blog session...
[Uses substack_live_blog_start tool]
Live blog started. I'll append updates as they happen.
API Reference
SubstackClient
Установка
This server does not publish a one-line install command.
Open the repository installation guide Новичок в MCP? Начните с руководства на mcpskill.org →Конфигурация
{
"mcpServers": {
"substack": {
"command": "bash",
"args": ["-c", "source ~/.substackrc && python3 /path/to/substack-mcp/substack_mcp/server.py"]
}
}
}