06ketan avatar

substack-ops

06ketan/substack-ops

Ketan Chavan's server wraps Substack's platform with 26 tools that work through your IDE's LLM, no additional API keys required. The `propose_reply` flow lets Claude or Cursor draft comment responses inline while you manage posts, notes, reactions, restacks, and search. Auth runs on a Substack session cookie, writes default to dry-run and log to a local audit file, and every command doubles as a standalone CLI. The repo includes a Textual TUI and Chrome cookie auto-grab for macOS Keychain. Install with `uvx substack-ops mcp install cursor` and the MCP host calls Python tools over stdio. Ships with deduplication checks, Markdown conversion for paywalled content, and a 20-step quickstart tour.

tools
7
auth
Secret needed
transport
STDIO
env vars
5
last updated
May 3, 2026

Tools

7 tools

Public tool metadata for what this MCP can expose to an agent.

get_unanswered_commentsReturns the worklist: comments where you have not yet replied (any depth).

Returns the worklist: comments where you have not yet replied (any depth).

No parameter schema in public metadata yet.

propose_replyDry-run only. Returns a token + payload preview. No write.

Dry-run only. Returns a token + payload preview. No write.

No parameter schema in public metadata yet.

confirm_replyPosts a previously-proposed reply by token. Idempotent via dedup DB. Token TTL 5 min.

Posts a previously-proposed reply by token. Idempotent via dedup DB. Token TTL 5 min.

No parameter schema in public metadata yet.

bulk_draft_replies

No parameter schema in public metadata yet.

send_approved_drafts

No parameter schema in public metadata yet.

audit_search

No parameter schema in public metadata yet.

dedup_status

No parameter schema in public metadata yet.

Sponsors

Configuration

SUBSTACK_PUBLICATION_URL

Your Substack publication URL (e.g. https://you.substack.com/). Optional if set in ~/.cursor/mcp.json's mcpServers.substack-api.env.

SUBSTACK_USER_ID

Your Substack numeric user id. Optional if set in ~/.cursor/mcp.json.

SUBSTACK_SESSION_TOKENsecret

Your Substack session cookie value (the s%3A... string). Required for authenticated calls. Easier path: run `substack-ops auth login --browser chrome` and the cookie is auto-grabbed.

SUBSTACK_OPS_MCP_PATH

Override path to the mcp.json file the auth layer reads. Defaults to ~/.cursor/mcp.json.

SUBSTACK_OPS_LLM_CMD

Optional: override the host CLI used by the unattended daemon path (default: auto-detect claude / cursor-agent / codex on PATH). Use {prompt} placeholder if your CLI takes the prompt as an arg.

Readme

Details

Repository
github.com/06ketan/substack-ops
Website
substack-ops.chavan.in
Package
substack-ops
Transport
STDIO
Auth
Required
Registry
MCP registry, active

More from 06ketan