Enables retrieval and search of newsletter posts, podcasts, and recommendations, as well as accessing post content, metadata, user profiles, and subscription information from Substack publications.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Substack MCPshow me recent posts from https://stratechery.com/"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Substack MCP
An MCP (Model Context Protocol) server for Substack API integration with Claude and other AI assistants.
Overview
This project implements a Model Context Protocol (MCP) server that enables AI assistants like Claude to interact with Substack newsletters, posts, and authors through a standardized interface. It leverages the Substack API library and makes its functionality available through MCP.
With this MCP server, Claude can:
Retrieve newsletter posts, podcasts, and recommendations
Get post content and metadata
Search for posts within newsletters
Get user profile information and subscriptions
Related MCP server: systemprompt-mcp-reddit
Installation
Prerequisites
Python 3.10 or higher
Claude for Desktop (for testing)
Setup
Clone this repository:
git clone https://github.com/Greg-Swiftomatic/substack-mcp.git cd substack-mcpSet up a virtual environment using
uv:curl -LsSf https://astral.sh/uv/install.sh | sh # Install uv if not already installed uv init . uv venv source .venv/bin/activate # On Windows: .venv\Scripts\activateInstall dependencies:
uv add "mcp[cli]" substack-api
Usage
Running the Server
Run the MCP server:
Configuring Claude for Desktop
Open Claude for Desktop's configuration file:
macOS/Linux:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Add your server configuration:
{ "mcpServers": { "substack": { "command": "uv", "args": [ "--directory", "/ABSOLUTE/PATH/TO/substack-mcp", "run", "substack_mcp.py" ] } } }Restart Claude for Desktop.
Example Queries
Once configured, you can ask Claude questions like:
"Show me recent posts from https://stratechery.com/"
"What's the content of this post: https://stratechery.com/2023/the-ai-unbundling/"
"Search for 'AI' on https://stratechery.com/"
"Who are the authors of https://stratechery.com/?"
Available Tools
The server provides the following MCP tools:
Tool | Description |
| Retrieves recent posts from a Substack newsletter |
| Gets the full content of a specific Substack post |
| Searches for posts within a newsletter |
| Gets information about a Substack author |
| Gets recommended newsletters for a Substack publication |
| Gets authors of a Substack newsletter |
Project Structure
substack_mcp.py- The main MCP server implementationexamples/- Example queries and responsesdocker/- Docker configuration for containerized deployment
Development
To contribute to this project:
Fork the repository
Create a feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add some amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
Troubleshooting
If you encounter issues:
Check Claude's logs for errors:
# macOS/Linux tail -n 20 -f ~/Library/Logs/Claude/mcp*.log # Windows type %APPDATA%\Claude\Logs\mcp*.logVerify your server builds and runs without errors:
python substack_mcp.pyMake sure your
claude_desktop_config.jsonfile has the correct paths and syntax.Try restarting Claude for Desktop completely.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
Substack API - The underlying library for Substack interactions
Model Context Protocol - Anthropic's protocol for standardized LLM integrations