substack-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| substack_sync_statusA | Check the dedicated Substack browser profile path and current login status. |
| substack_loginB | Open a dedicated local browser profile and wait for the user to log into Substack. |
| substack_config_showB | Show local mcp-substack configuration. |
| substack_config_set_priority_publicationsB | Set publication URLs that should be synced first or exclusively for daily summaries. |
| substack_config_set_defaultsC | Set default sync window and per-publication post limit. |
| substack_discover_subscriptionsB | Use the authenticated dedicated browser profile to discover subscribed publications. |
| substack_list_recent_postsB | List recent posts for a publication URL. This is the spike path before cache-backed sync. |
| substack_sync_recentC | Discover subscriptions, sync recent posts, fetch bodies, and save them in the local cache. |
| substack_list_postsB | List cached posts, optionally filtered to unsummarized posts and a date range. |
| substack_get_cached_postC | Return one cached post with markdown content. |
| substack_get_post_chunksC | Return bounded markdown chunks for one cached post. |
| substack_mark_summarizedC | Mark cached posts as included in a daily summary. |
| substack_get_postB | Fetch one Substack post through the authenticated browser profile and return markdown. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 13 tools
All tools have clearly distinct purposes. Even the post retrieval tools (get_cached_post, get_post, get_post_chunks) are well-separated by cache vs live vs chunked output. No overlapping functionality.
All tools follow a consistent verb_noun pattern with the 'substack_' prefix. Verbs are imperative and clear (set, show, discover, get, list, login, mark, sync), and nouns are specific and descriptive.
13 tools cover the core domain of Substack configuration, authentication, subscription discovery, post retrieval, listing, syncing, and summarization. The count is well-scoped without being overwhelming or sparse.
The tool set covers the primary workflows for syncing and summarizing Substack content. Minor gaps exist, such as no tools for individual subscription management (unsubscribe) or content deletion, but the core operations are fully supported.