Substack MCP

by Greg-Swiftomatic
Verified
# 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](https://github.com/NHagar/substack_api) 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 ## Installation ### Prerequisites - Python 3.10 or higher - [Claude for Desktop](https://claude.ai/download) (for testing) ### Setup 1. Clone this repository: ```bash git clone https://github.com/Greg-Swiftomatic/substack-mcp.git cd substack-mcp ``` 2. Set up a virtual environment using `uv`: ```bash 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\activate ``` 3. Install dependencies: ```bash uv add "mcp[cli]" substack-api ``` ## Usage ### Running the Server Run the MCP server: ```bash python substack_mcp.py ``` ### Configuring Claude for Desktop 1. Open Claude for Desktop's configuration file: - **macOS/Linux**: `~/Library/Application Support/Claude/claude_desktop_config.json` - **Windows**: `%APPDATA%\Claude\claude_desktop_config.json` 2. Add your server configuration: ```json { "mcpServers": { "substack": { "command": "uv", "args": [ "--directory", "/ABSOLUTE/PATH/TO/substack-mcp", "run", "substack_mcp.py" ] } } } ``` 3. 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 | |------|-------------| | `get_newsletter_posts` | Retrieves recent posts from a Substack newsletter | | `get_post_content` | Gets the full content of a specific Substack post | | `search_newsletter` | Searches for posts within a newsletter | | `get_author_info` | Gets information about a Substack author | | `get_newsletter_recommendations` | Gets recommended newsletters for a Substack publication | | `get_newsletter_authors` | Gets authors of a Substack newsletter | ## Project Structure - `substack_mcp.py` - The main MCP server implementation - `examples/` - Example queries and responses - `docker/` - Docker configuration for containerized deployment ## Development To contribute to this project: 1. Fork the repository 2. Create a feature branch (`git checkout -b feature/amazing-feature`) 3. Commit your changes (`git commit -m 'Add some amazing feature'`) 4. Push to the branch (`git push origin feature/amazing-feature`) 5. Open a Pull Request ## Troubleshooting If you encounter issues: 1. Check Claude's logs for errors: ```bash # macOS/Linux tail -n 20 -f ~/Library/Logs/Claude/mcp*.log # Windows type %APPDATA%\Claude\Logs\mcp*.log ``` 2. Verify your server builds and runs without errors: ```bash python substack_mcp.py ``` 3. Make sure your `claude_desktop_config.json` file has the correct paths and syntax. 4. Try restarting Claude for Desktop completely. ## License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. ## Acknowledgments - [Substack API](https://github.com/NHagar/substack_api) - The underlying library for Substack interactions - [Model Context Protocol](https://modelcontextprotocol.io/) - Anthropic's protocol for standardized LLM integrations