Substack MCP Server

by marcomoauroio.github.marcomoauro/substack-mcpv1.3.2

Manage Substack publishing, subscribers, analytics, reader feeds, comments, and images through MCP.

  • Runs on your machine
  • No known advisories
  • MIT

Version checks

  • Available on npm, latest 1.3.2 · checked

Not run yet – package checks are being switched on. It runs from a package on your machine, so instead of uptime we will start each new version in our sandbox.

How we check

Run it on your machine

Add to ~/.config/agenvoy/mcp.json:

{
  "servers": {
    "substack-mcp": {
      "command": "npx",
      "args": ["-y", "[email protected]"],
      "env": { "SUBSTACK_PUBLICATION_URL": "YOUR_SUBSTACK_PUBLICATION_URL", "SUBSTACK_SESSION_TOKEN": "YOUR_SUBSTACK_SESSION_TOKEN", "SUBSTACK_USER_ID": "YOUR_SUBSTACK_USER_ID" }
    }
  }
}

Replace YOUR_SUBSTACK_PUBLICATION_URL,YOUR_SUBSTACK_SESSION_TOKEN,YOUR_SUBSTACK_USER_ID with your own values.

For agents: the install prompt

Every step above as one Markdown text, for an assistant installing it for you.

# Install the MCP server Substack MCP Server (`io.github.marcomoauro/substack-mcp`)

Its page: https://plug.directory/servers/io.github.marcomoauro/substack-mcp

It runs on the person's machine and needs Node.js installed.

Ask the person for `YOUR_SUBSTACK_PUBLICATION_URL`, `YOUR_SUBSTACK_SESSION_TOKEN`, `YOUR_SUBSTACK_USER_ID` and put it in place of the placeholder; never invent a value.

Use the section for the person's client.

## Claude Desktop, Cursor, Devin Desktop, Cline, LM Studio, Gemini CLI, mcp-client-cli, oterm, TUUI, BoltAI, AnythingLLM, Augment Code, Bob Shell, ECA, Kiro, Kiro CLI

Merge into the place for the person's client:

- Claude Desktop: claude_desktop_config.json (Settings › Developer › Edit Config)
- Cursor: ~/.cursor/mcp.json
- Devin Desktop: ~/.config/devin/mcp_config.json
- Cline: cline_mcp_settings.json (MCP Servers › Configure › Configure MCP Servers)
- LM Studio: mcp.json (Program › Install › Edit mcp.json)
- Gemini CLI: ~/.gemini/settings.json
- mcp-client-cli: ~/.llm/config.json
- oterm: config.json in oterm's data folder (~/Library/Application Support/oterm on macOS, ~/.local/share/oterm on Linux, %APPDATA%\oterm on Windows)
- TUUI: resources/assets/config/mcp.json in the installed app
- BoltAI: ~/.boltai/mcp.json
- AnythingLLM: anythingllm_mcp_servers.json in the AnythingLLM storage plugins directory
- Augment Code: Augment Settings Panel – MCP section – Import from JSON (VS Code extension)
- Bob Shell: ~/.bob/settings/mcp.json (global) or .bob/mcp.json (project)
- ECA: ~/.config/eca/config.json (global) or .eca/config.json in the project
- Kiro: ~/.kiro/settings/mcp.json (user) or .kiro/settings/mcp.json (workspace)
- Kiro CLI: ~/.kiro/settings/mcp.json (user) or .kiro/settings/mcp.json (workspace)

```json
{
  "mcpServers": {
    "substack-mcp": {
      "command": "npx",
      "args": ["-y", "[email protected]"],
      "env": { "SUBSTACK_PUBLICATION_URL": "YOUR_SUBSTACK_PUBLICATION_URL", "SUBSTACK_SESSION_TOKEN": "YOUR_SUBSTACK_SESSION_TOKEN", "SUBSTACK_USER_ID": "YOUR_SUBSTACK_USER_ID" }
    }
  }
}
```

## Claude Code

Run in a terminal:

```sh
claude mcp add --env SUBSTACK_PUBLICATION_URL=YOUR_SUBSTACK_PUBLICATION_URL --env SUBSTACK_SESSION_TOKEN=YOUR_SUBSTACK_SESSION_TOKEN --env SUBSTACK_USER_ID=YOUR_SUBSTACK_USER_ID --transport stdio substack-mcp -- npx -y [email protected]
```

## VS Code

Merge into .vscode/mcp.json:

```json
{
  "servers": {
    "substack-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "[email protected]"],
      "env": { "SUBSTACK_PUBLICATION_URL": "YOUR_SUBSTACK_PUBLICATION_URL", "SUBSTACK_SESSION_TOKEN": "YOUR_SUBSTACK_SESSION_TOKEN", "SUBSTACK_USER_ID": "YOUR_SUBSTACK_USER_ID" }
    }
  }
}
```

## Zed

Merge into ~/.config/zed/settings.json:

```json
{
  "context_servers": {
    "substack-mcp": {
      "command": "npx",
      "args": ["-y", "[email protected]"],
      "env": { "SUBSTACK_PUBLICATION_URL": "YOUR_SUBSTACK_PUBLICATION_URL", "SUBSTACK_SESSION_TOKEN": "YOUR_SUBSTACK_SESSION_TOKEN", "SUBSTACK_USER_ID": "YOUR_SUBSTACK_USER_ID" }
    }
  }
}
```

## Continue

Merge into ~/.continue/config.yaml:

```yaml
mcpServers:
  - name: "substack-mcp"
    type: stdio
    command: "npx"
    args:
      - "-y"
      - "[email protected]"
    env:
      "SUBSTACK_PUBLICATION_URL": "YOUR_SUBSTACK_PUBLICATION_URL"
      "SUBSTACK_SESSION_TOKEN": "YOUR_SUBSTACK_SESSION_TOKEN"
      "SUBSTACK_USER_ID": "YOUR_SUBSTACK_USER_ID"
```

## Goose

Merge into ~/.config/goose/config.yaml:

```yaml
extensions:
  "substack-mcp":
    type: stdio
    name: "substack-mcp"
    enabled: true
    cmd: "npx"
    args: ["-y", "[email protected]"]
    env_keys: []
    envs: { "SUBSTACK_PUBLICATION_URL": "YOUR_SUBSTACK_PUBLICATION_URL", "SUBSTACK_SESSION_TOKEN": "YOUR_SUBSTACK_SESSION_TOKEN", "SUBSTACK_USER_ID": "YOUR_SUBSTACK_USER_ID" }
    timeout: 300
```

## Codex

Run in a terminal:

```sh
codex mcp add substack-mcp --env SUBSTACK_PUBLICATION_URL=YOUR_SUBSTACK_PUBLICATION_URL --env SUBSTACK_SESSION_TOKEN=YOUR_SUBSTACK_SESSION_TOKEN --env SUBSTACK_USER_ID=YOUR_SUBSTACK_USER_ID -- npx -y [email protected]
```

## Agenvoy

Merge into ~/.config/agenvoy/mcp.json:

```json
{
  "servers": {
    "substack-mcp": {
      "command": "npx",
      "args": ["-y", "[email protected]"],
      "env": { "SUBSTACK_PUBLICATION_URL": "YOUR_SUBSTACK_PUBLICATION_URL", "SUBSTACK_SESSION_TOKEN": "YOUR_SUBSTACK_SESSION_TOKEN", "SUBSTACK_USER_ID": "YOUR_SUBSTACK_USER_ID" }
    }
  }
}
```

## Amp

Merge into ~/.config/amp/settings.json (user) or .amp/settings.json (workspace):

```json
{
  "amp.mcpServers": {
    "substack-mcp": {
      "command": "npx",
      "args": ["-y", "[email protected]"],
      "env": { "SUBSTACK_PUBLICATION_URL": "YOUR_SUBSTACK_PUBLICATION_URL", "SUBSTACK_SESSION_TOKEN": "YOUR_SUBSTACK_SESSION_TOKEN", "SUBSTACK_USER_ID": "YOUR_SUBSTACK_USER_ID" }
    }
  }
}
```

Then restart the client, or reload its MCP servers, and ask it to list the server's tools to confirm it started.

Known advisories

None known for its packages.

Checked 2026-10-28 against OSV.dev and deps.dev.

From the publisher's entry in the Official MCP Registry (the registry entry)and from npm. We have not checked this server yet. Report a problem