Substack Ops vs Substack MCP — MCP Server Comparison | AllMCPs
Side-by-Side Model Context Protocol Comparison
Substack Ops vs Substack MCP
In-depth architectural comparison of the Substack Ops and Substack MCP MCP servers. Compare execution transports, security boundaries, tool capabilities, quality scores, and ready-to-paste client installation snippets for Claude, Cursor, Windsurf, and VS Code.
At a Glance & Executive Verdict
Substack Ops
Social Media · Local stdio
Quality: 48/100 (Fair) | Auth: other
Substack MCP
Social Media · Local stdio
Quality: 68/100 (Great) | Auth: other
Verdict Summary: Choose Substack Ops if you need specialized Social Media tools running via a local process. Choose Substack MCP if your workspace requires Social Media integration with local subprocess execution. Both servers can be configured concurrently in your client's mcpServers manifest.
Which MCP Server Should You Choose?
Choose Substack Ops when:
You need dedicated capabilities in the Social Media domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: other (Free / Open Source).
Primary tools included: 26-tool Substack MCP interface, Host-LLM reply drafting without AI API keys, Dry-run defaults for write actions.
Substack with zero AI API keys. 26 tools (posts, notes, comments, replies, reactions, restacks). Host LLM drafts via proposereply → confirmreply tokens. SQLite dedup, JSONL audit, dry-run default. Install: uvx substack-ops mcp install cursor.
MCP server for Substack — read posts, manage drafts, publish Notes, get comments, and upload images. Safe by design: cannot publish or delete posts.
Category & Scope
Tools & Capabilities Breakdown
Substack Ops Tools (6)
26-tool Substack MCP interface
Host-LLM reply drafting without AI API keys
Dry-run defaults for write actions
SQLite action deduplication
JSONL audit logging
Cookie and magic-link authentication flows
Substack MCP Tools (14)
get_subscriber_count
Get the current subscriber count for your Substack publication. Returns `precision`: 'exact' when the API reports a true count, 'approximate' when only Substack's rounded value is available (the real number is that or higher — render it hedged, e.g. '1,000+'), or 'unavailable' with count -1. Never treat an approximate value as exact.
Ready-to-Paste Client Configurations
Paste either (or both) of these JSON server blocks into your client config file (e.g. claude_desktop_config.json or ~/.cursor/mcp.json).
Substack Ops is categorized under Social Media and uses a local stdio subprocess. In contrast, Substack MCP belongs to Social Media using local stdio subprocess. Select Substack Ops when you need capabilities focused on social media and Substack MCP when you require tools for social media.
List published posts with pagination. Returns title, date, slug, and URL for each post.
list_drafts
List draft posts. Returns title, creation date, and audience for each draft.
get_post
Get the full content of a published post by ID. Returns title, body HTML, metadata.
get_draft
Get the full content of a draft post by ID. Returns title, body, metadata.
get_post_comments
Get comments on a published post. Returns commenter name, comment body, date, and reaction counts.
get_sections
List your publication's sections (categories). Returns each section's id and name. Use a section id as `section_id` when creating or updating a draft to file it under that section.
get_post_analytics
Get performance stats (views, emails sent/delivered/opened, signups, subscribes, estimated value, comments, reactions) for a published post by ID. Substack has no per-post stats endpoint, so this searches your 500 most recent published posts for the ID; returns a not-found note if it isn't among them.
list_scheduled_posts
List posts scheduled for future publication, soonest first. Read-only visibility into what's queued — scheduling itself is done in Substack's editor (this server does not schedule, publish, or delete long-form posts). Returns id, title, audience, and scheduled time (`trigger_at`).
create_draft
Create a new draft post. Accepts markdown body which is converted to Substack's format. Does NOT publish — creates a draft only.
update_draft
Update an existing draft post. Only works on unpublished drafts. Accepts markdown body.
upload_image
Upload an image to Substack's CDN. Provide exactly one of `image_base64` (a base64 data URI) or `image_path` (a local file path). Returns a hosted image URL that is publicly fetchable by anyone with the link (an unlisted asset — not attributed to you or added to your feed).