An MCP (Model Context Protocol) server for reading your Substack subscriptions from Claude Code.
# Clone the repo
git clone git@github.com:Kealu-Inc/substack-reader-mcp.git ~/.claude/mcp-servers/substack-reader
# Run setup
cd ~/.claude/mcp-servers/substack-reader
make setup- list_subscriptions - List all newsletters you subscribe to
- get_feed - Get recent posts from all your subscriptions
- get_recent_posts - Get posts from a specific newsletter
- read_post - Read full content of any post
- search_newsletter - Search within a newsletter
cd ~/.claude/mcp-servers/substack-reader
make setupThis will:
- Install Python dependencies
- Guide you through exporting browser cookies
- Configure your Substack username
- Add the MCP server to Claude Code settings
- Test the connection
make install- Install Cookie-Editor browser extension
- Log into substack.com
- Click Cookie-Editor → Export → Export as JSON
- Save to
~/.config/substack-reader/cookies.json
Create ~/.config/substack-reader/config.json:
{
"username": "your-substack-username"
}Your username is from your Substack profile URL (e.g., substack.com/@username).
Run:
make configureOr manually add to ~/.claude/settings.json:
{
"mcpServers": {
"substack-reader": {
"command": "python3",
"args": ["/path/to/substack-reader/server.py"],
"env": {
"SUBSTACK_USERNAME": "your-username",
"SUBSTACK_COOKIES_PATH": "/path/to/cookies.json"
}
}
}
}The MCP server will load on restart.
After setup, ask Claude:
- "List my Substack subscriptions"
- "Get my subscription feed"
- "Get recent posts from The Pragmatic Engineer"
- "Read the latest post about system design"
- "Search for 'microservices' in Engineering Leadership"
make test- Verify your username is correct
- Check cookies are exported properly (should include
substack.sid)
- Re-export cookies from browser (they may have expired)
- Ensure you're logged into Substack when exporting
- Check
~/.claude/settings.jsonsyntax is valid JSON - Verify the server path is correct
- Restart Claude Code completely
~/.claude/mcp-servers/substack-reader/
├── server.py # Main MCP server
├── setup.py # Interactive setup wizard
├── Makefile # Setup automation
├── scripts/
│ ├── configure_claude.py
│ └── test_server.py
└── README.md
~/.config/substack-reader/
├── config.json # Username configuration
└── cookies.json # Browser cookies (keep private!)
- Never commit cookies.json - it contains your session
- Cookies expire periodically - re-export when auth fails
- The server only reads content you have access to
MIT