What is the substack-ops MCP server?
Substack CLI + 26-tool MCP server. Your IDE drafts replies via propose_reply. No API keys.
How to install substack-ops
Copy-paste configuration for popular MCP clients.
SUBSTACK_PUBLICATION_URLYour Substack publication URL (e.g. https://you.substack.com/). Optional if set in ~/.cursor/mcp.json's mcpServers.substack-api.env.
SUBSTACK_USER_IDYour Substack numeric user id. Optional if set in ~/.cursor/mcp.json.
SUBSTACK_SESSION_TOKENsecretYour 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_PATHOverride path to the mcp.json file the auth layer reads. Defaults to ~/.cursor/mcp.json.
SUBSTACK_OPS_LLM_CMDOptional: 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.
{
"mcpServers": {
"substack-ops": {
"command": "uvx",
"args": [
"substack-ops",
"mcp",
"serve"
],
"env": {
"SUBSTACK_PUBLICATION_URL": "<YOUR_SUBSTACK_PUBLICATION_URL>",
"SUBSTACK_USER_ID": "<YOUR_SUBSTACK_USER_ID>",
"SUBSTACK_SESSION_TOKEN": "<YOUR_SUBSTACK_SESSION_TOKEN>",
"SUBSTACK_OPS_MCP_PATH": "<YOUR_SUBSTACK_OPS_MCP_PATH>",
"SUBSTACK_OPS_LLM_CMD": "<YOUR_SUBSTACK_OPS_LLM_CMD>"
}
}
}
}{
"mcpServers": {
"substack-ops": {
"command": "uvx",
"args": [
"substack-ops",
"mcp",
"serve"
],
"env": {
"SUBSTACK_PUBLICATION_URL": "<YOUR_SUBSTACK_PUBLICATION_URL>",
"SUBSTACK_USER_ID": "<YOUR_SUBSTACK_USER_ID>",
"SUBSTACK_SESSION_TOKEN": "<YOUR_SUBSTACK_SESSION_TOKEN>",
"SUBSTACK_OPS_MCP_PATH": "<YOUR_SUBSTACK_OPS_MCP_PATH>",
"SUBSTACK_OPS_LLM_CMD": "<YOUR_SUBSTACK_OPS_LLM_CMD>"
}
}
}
}{
"mcpServers": {
"substack-ops": {
"command": "uvx",
"args": [
"substack-ops",
"mcp",
"serve"
],
"env": {
"SUBSTACK_PUBLICATION_URL": "<YOUR_SUBSTACK_PUBLICATION_URL>",
"SUBSTACK_USER_ID": "<YOUR_SUBSTACK_USER_ID>",
"SUBSTACK_SESSION_TOKEN": "<YOUR_SUBSTACK_SESSION_TOKEN>",
"SUBSTACK_OPS_MCP_PATH": "<YOUR_SUBSTACK_OPS_MCP_PATH>",
"SUBSTACK_OPS_LLM_CMD": "<YOUR_SUBSTACK_OPS_LLM_CMD>"
}
}
}
}{
"servers": {
"substack-ops": {
"type": "stdio",
"command": "uvx",
"args": [
"substack-ops",
"mcp",
"serve"
],
"env": {
"SUBSTACK_PUBLICATION_URL": "<YOUR_SUBSTACK_PUBLICATION_URL>",
"SUBSTACK_USER_ID": "<YOUR_SUBSTACK_USER_ID>",
"SUBSTACK_SESSION_TOKEN": "<YOUR_SUBSTACK_SESSION_TOKEN>",
"SUBSTACK_OPS_MCP_PATH": "<YOUR_SUBSTACK_OPS_MCP_PATH>",
"SUBSTACK_OPS_LLM_CMD": "<YOUR_SUBSTACK_OPS_LLM_CMD>"
}
}
}
}claude mcp add substack-ops --env SUBSTACK_PUBLICATION_URL=<YOUR_SUBSTACK_PUBLICATION_URL> --env SUBSTACK_USER_ID=<YOUR_SUBSTACK_USER_ID> --env SUBSTACK_SESSION_TOKEN=<YOUR_SUBSTACK_SESSION_TOKEN> --env SUBSTACK_OPS_MCP_PATH=<YOUR_SUBSTACK_OPS_MCP_PATH> --env SUBSTACK_OPS_LLM_CMD=<YOUR_SUBSTACK_OPS_LLM_CMD> -- uvx substack-ops mcp serveRelated MCP servers
io.github.06ketan/slideshot
Convert HTML to PDF/PNG/WebP/PPTX slide carousels with 11 themes — for LinkedIn, decks, posts.
medium-ops
Medium CLI + 23-tool MCP server. Your IDE drafts replies. No API keys.