# content-distribution

Takes one piece of writing and pushes prepared variants to DEV.to, Hashnode, Reddit, Bluesky and more, with retries and a post log.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 5
- Author: AutomateLab-tech
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/AutomateLab-tech/content-distribution-mcp
- Updated: 2026-06-08
- HTML: https://affpapa.org/en/nevibecode/mcp/content-distribution

## What it does

The server expects your agent to hand it finished per-channel variants: a rewritten title, a trimmed body, tags that fit the platform. It then publishes each one. There are no model calls inside — just adapters for devto, hashnode, github-discussions, reddit, bluesky and a browser fallback. State lives in YAML files under `~/.distribution-mcp`.

Publishing is idempotent on the `content.id` plus `channel` pair. Call `post_publish` again and you get the stored `live_url` back without a second request to the platform. Variants carrying `schedule_at` wait in `~/.distribution-mcp/scheduled.yaml` until `post_drain` runs; that call fits a cron job.

Credentials come from a profile in `~/.distribution-mcp/profiles.yaml`. LinkedIn, Medium and Twitter/X behave differently: the server answers with `needs_browser` and a compose URL instead of posting, so no keys are involved. Node.js 18 or newer is required. Version 2.2.0 renamed the tools from flat names (`publish`, `schedule`) to dotted ones (`post_publish`, `post_schedule`), so any prompt or n8n node still using the old names needs editing.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `DEV_TO_API_KEY`, `HASHNODE_TOKEN`, `HASHNODE_PUBLICATION_ID`, `GITHUB_TOKEN`, `GITHUB_DISCUSSION_REPO`, `REDDIT_CLIENT_ID`, `REDDIT_CLIENT_SECRET`, `REDDIT_USERNAME`, `REDDIT_PASSWORD`, `BLUESKY_IDENTIFIER` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add content-distribution -e DEV_TO_API_KEY=<DEV_TO_API_KEY> -e HASHNODE_TOKEN=<HASHNODE_TOKEN> -e GITHUB_TOKEN=<GITHUB_TOKEN> -e REDDIT_CLIENT_ID=<REDDIT_CLIENT_ID> -e REDDIT_CLIENT_SECRET=<REDDIT_CLIENT_SECRET> -e REDDIT_PASSWORD=<REDDIT_PASSWORD> -e BLUESKY_PASSWORD=<BLUESKY_PASSWORD> -- npx -y @automatelab/content-distribution-mcp
```
Replace <…> with your own values. 8 more environment variables are in the server README

### Codex

**Platform CLI**
```bash
codex mcp add content-distribution --env DEV_TO_API_KEY=<DEV_TO_API_KEY> --env HASHNODE_TOKEN=<HASHNODE_TOKEN> --env HASHNODE_PUBLICATION_ID=<HASHNODE_PUBLICATION_ID> --env GITHUB_TOKEN=<GITHUB_TOKEN> --env GITHUB_DISCUSSION_REPO=<GITHUB_DISCUSSION_REPO> -- npx -y @automatelab/content-distribution-mcp
```
Replace <…> with your own values. 8 more environment variables are in the server README

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "content-distribution": {
            "command": "npx",
            "args": [
                "-y",
                "@automatelab/content-distribution-mcp"
            ],
            "env": {
                "DEV_TO_API_KEY": "<DEV_TO_API_KEY>",
                "HASHNODE_TOKEN": "<HASHNODE_TOKEN>",
                "HASHNODE_PUBLICATION_ID": "<HASHNODE_PUBLICATION_ID>",
                "GITHUB_TOKEN": "<GITHUB_TOKEN>",
                "GITHUB_DISCUSSION_REPO": "<GITHUB_DISCUSSION_REPO>"
            }
        }
    }
}
```
Replace <…> with your own values. 8 more environment variables are in the server README

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "content-distribution": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@automatelab/content-distribution-mcp"
            ],
            "env": {
                "DEV_TO_API_KEY": "<DEV_TO_API_KEY>",
                "HASHNODE_TOKEN": "<HASHNODE_TOKEN>",
                "HASHNODE_PUBLICATION_ID": "<HASHNODE_PUBLICATION_ID>",
                "GITHUB_TOKEN": "<GITHUB_TOKEN>",
                "GITHUB_DISCUSSION_REPO": "<GITHUB_DISCUSSION_REPO>"
            }
        }
    }
}
```
Replace <…> with your own values. 8 more environment variables are in the server README

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e DEV_TO_API_KEY=<DEV_TO_API_KEY> -e HASHNODE_TOKEN=<HASHNODE_TOKEN> -e HASHNODE_PUBLICATION_ID=<HASHNODE_PUBLICATION_ID> -e GITHUB_TOKEN=<GITHUB_TOKEN> -e GITHUB_DISCUSSION_REPO=<GITHUB_DISCUSSION_REPO> content-distribution npx -y @automatelab/content-distribution-mcp
```
Replace <…> with your own values. 8 more environment variables are in the server README

## When to use it
- ship one article to several platforms at once
- produce copy that fits each channel's limits and rules
- avoid double-posting when an agent run repeats
- queue posts for later and fire them from cron
- see which channel already has the piece and its URL

## Example prompts
- Publish the `n8n-webhook-setup` article to devto and to the ClaudeAI subreddit
- Schedule this post for tomorrow at 9 and publish the rest now
- Show me what has already gone live for this piece and where

## Similar
- [social-content](https://affpapa.org/en/nevibecode/skills/openclaudia-social-content.md) — skill · 508 installs
- [social-publisher](https://affpapa.org/en/nevibecode/skills/social-publisher.md) — skill · 5600 installs
- [technical-article-writer](https://affpapa.org/en/nevibecode/skills/technical-article-writer.md) — skill · 4700 installs
- [social-pulse-monitor](https://affpapa.org/en/nevibecode/skills/social-pulse-monitor.md) — skill · 1000 installs
- [bluesky](https://affpapa.org/en/nevibecode/skills/bluesky.md) — skill · 448 installs
- [Postbase](https://affpapa.org/en/nevibecode/mcp/postbase.md) — MCP server · ★ 7

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
