MCP.Market

Content Distribution MCP server

by AutomateLab-tech·io.github.AutomateLab-tech/content-distribution·v2.2.1·5 stars

Publish content to DEV.to, Hashnode, GitHub Discussions, Reddit, Bluesky, LinkedIn, and Medium.

B71/100grade B
What users say
No reviews yet
Be the first
Safety scan
B71/100

full report

Adoption
Growing

5 stars71 downloads/wk

Reviews

Write one

Nobody has reviewed Content Distribution yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Content Distribution tools (8, 5 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • channel.hints

    Return static per-channel metadata: character limits, Markdown support flags, tag vocabulary, and CTA placement rules. Side effects: read-only; no external HTTP calls; no auth needed. Fully deterministic — returns compile-time adapter constants. Use channel.hints before composing a variant body to understand channel constraints; use post.publish or post.schedule once you have a valid variant.

  • post.drainwrite action

    Fire all scheduled posts due at or before the given time boundary. Side effects: makes external HTTP requests for each due entry; writes results to the YAML backend. Idempotent — already-published (content.id, channel) pairs are skipped; no-op when no entries are due. Safe to call from cron. Use post.drain on a recurring schedule to flush the queue; use post.publish or post.schedule to add new con

  • post.publishwrite action

    Publish one or more channel variants immediately. Side effects: makes external HTTP requests to each channel platform; writes publish state to the local YAML backend; requires valid credentials in the named profile. Idempotent on (content.id, channel) — re-running with the same IDs returns cached state without re-posting. Use post.publish for immediate-only delivery; use post.schedule when any var

  • post.schedulewrite action

    Enqueue channel variants with schedule_at for future publishing; variants without schedule_at are published immediately. Side effects: writes entries to the local YAML schedule store; makes external HTTP requests for any immediately-published variants; requires credentials in the named profile. Idempotent on (content.id, channel). Use post.schedule when any variant needs a future publish time; use

  • post.statuswrite action

    Return publish state for content pieces. Filters by content_id, channel, or both; returns all entries when neither is given. Side effects: read-only; no external HTTP calls; no auth needed. Deterministic given unchanged backend state. Use post.status to inspect what has been published, what is queued, or what errored; use post.publish, post.schedule, or post.drain to change state.

  • post.unpublishwrite action

    Best-effort delete of a published post on the target platform. Side effects: makes an external HTTP DELETE or update request; DEV.to sets published=false (soft delete); platforms without a delete API return success=false without error. Non-idempotent — calling on an already-deleted URL may return a platform 404. Use post.unpublish to retract a live post; use post.status first to obtain the live_ur

  • profile.list

    Return all distribution profile names configured in the YAML backend. Side effects: read-only; no external HTTP calls. Deterministic given backend state. Use profile.list to discover available profiles before calling post.publish, post.schedule, or subreddit.list; then pass the chosen name as profile_name.

  • subreddit.list

    Return all subreddits in the Subreddit Catalog with cooldown windows, flair vocabulary, and last-posted metadata. Optionally filtered to subreddits allowed by the named profile. Side effects: read-only; no external HTTP calls. Deterministic given backend state. Use subreddit.list to select a subreddit and obtain flair IDs before composing a reddit: channel variant; pass flair in variant.extras.fla

Public scan report

scanner v0.1.9 · 2026-09-27 · same rubric, same numbers if you re-run it

no findings
  • Code scan29 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitystatic API keys via environment variables6/15
  • Maintenancelast push 111 days ago8/15
  • Maintainer identityregistry namespace matches repository owner7/10
Overall 71/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Content Distribution compares

Against every graded Sales and outbound MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
71/100
higher than 38% of 877 Sales and outbound servers
Tools
8
the typical Sales and outbound server has 9
Tools that change things
63%
typical: 11%. Fewer write tools means less an agent can break
GitHub stars
5
more than 87% of 418 Sales and outbound servers
Downloads a week
71
more than 55% of 151 Sales and outbound servers with a package

What its tools let an agent do: 3 read · 4 change · 1 send or post

Install Content Distribution in Claude Code, Cursor or VS Code

Runs npx -y @automatelab/content-distribution-mcp on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add content-distribution -- npx -y @automatelab/content-distribution-mcp
Add to Cursor

What the publisher says

From the Content Distribution repository's README, as published. We do not edit it. Read it on GitHub

content-distribution-mcp

Publish your content everywhere—without rewriting for every platform.

A MCP server that distributes a single piece of content across 8+ channels (DEV.to, Hashnode, GitHub Discussions, Reddit, Bluesky, LinkedIn, Medium, Twitter) with automatic platform-specific adaptation, idempotent publishing, per-community anti-spam rules, and centralized state management.

The Problem It Solves

Creating and publishing content at scale is friction-heavy:

  • Different formats: Reddit strips formatting, Twitter has character limits, DEV.to supports embeds and rich media. Each needs customized copy.
  • Platform rules: Subreddits enforce cooldowns and flair requirements. Communities have posting patterns and automoderator gates. LinkedIn suppresses external links.
  • State chaos: Which posts went live where? What if a publish fails halfway? Did that Reddit post get auto-removed by spam filters?

This MCP handles distribution complexity. Write your core message once, generate platform-specific variants, publish everywhere safely.

How It Works

  1. Your agent generates channel-specific copy variants (rewritten titles, trimmed text, platform-appropriate tags, audience-matched tone).
  2. This MCP publishes each variant with idempotency, OAuth, API retries, and scheduling—enforcing platform constraints automatically.
  3. You control which platforms get what. The MCP returns per-channel hints (character limits, tag vocabularies, cooldowns) but leaves creative decisions to you.

No LLM calls inside. No walled-in agents. Just a clean API for multi-platform content distribution at scale.

Install

npx @automatelab/content-distribution-mcp

Or add it permanently to your MCP host.

Wire into your MCP host

Claude Code — add to .claude/mcp.json:

{
  "mcpServers": {
    "content-distribution": {
      "command": "npx",
      "args": ["-y", "@automatelab/content-distribution-mcp"]
    }
  }
}

Claude Desktop — add to claudedesktopconfig.json:

{
  "mcpServers": {
    "content-distribution": {
      "command": "npx",
      "args": ["-y", "@automatelab/content-distribution-mcp"]
    }
  }
}

n8n — use the MCP Client node, point it at npx @automatelab/content-distribution-mcp over stdio.

Cursor / Windsurf / any MCP host — same npx -y content-distribution-mcp pattern.

Configure credentials

The server reads credentials from a Distribution Profile stored in ~/.distribution-mcp/profiles.yaml:

# ~/.distribution-mcp/profiles.yaml
default:
  credentials:
    DEV_TO_API_KEY: "your-devto-api-key"
    HASHNODE_TOKEN: "your-hashnode-token"
    HASHNODE_PUBLICATION_ID: "your-pub-id"
    GITHUB_TOKEN: "ghp_..."
    GITHUB_DISCUSSION_REPO: "owner/repo"
    REDDIT_CLIENT_ID: "..."
    REDDIT_CLIENT_SECRET: "..."
    REDDIT_USERNAME: "..."
    REDDIT_PASSWORD: "..."
    BLUESKY_IDENTIFIER: "you.bsky.social"
    BLUESKY_PASSWORD: "..."
  subreddits:
    - ClaudeAI
    - LocalLLaMA

Only set credentials for channels you intend to use. LinkedIn, Medium, and Twitter/X return needs_browser with a compose URL — no credentials needed.

MCP tool surface

Eight tools, dot-notation names form a navigable tree (post., channel., profile., subreddit.). Every tool declares an outputSchema (callers can type-check responses) and MCP annotations (read-only / destructive / idempotent / open-world hints). No LLM calls inside the server.

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Content Distribution: common questions

Is Content Distribution MCP server safe?
Mostly: it is graded B (71/100). Read the Content Distribution safety report
How do I install Content Distribution?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Content Distribution need an API key?
Yes. The registry entry asks for DEV_TO_API_KEY, HASHNODE_TOKEN, GITHUB_TOKEN, REDDIT_CLIENT_ID and 3 more.
Is Content Distribution maintained?
The last commit was 147 days ago (2026-06-08). The latest release is v2.2.1.
What can I use instead of Content Distribution?
Servers from other publishers that do the same job: Pipepost MCP server, Postmcp MCP server and NotFair MCP server.
How does Content Distribution compare with other Sales and outbound MCP servers?
safety score 71/100 (higher than 38% of 877 Sales and outbound servers); tools 8 (the typical Sales and outbound server has 9); tools that change things 63% (typical: 11%. Fewer write tools means less an agent can break). Full comparison.

Alternatives to Content Distribution

Same job from other publishers: the closest match first, then the best rated.

  • Pipepost
    MCP server to publish to Substack, Ghost, Dev.to, WordPress, LinkedIn + 5 more from Claude Code.
    B
  • Postmcp
    Publish and schedule posts to LinkedIn, X, Facebook, Instagram, Threads, Bluesky and YouTube Shorts.
    B
  • NotFair
    OAuth MCP for Google, Meta, X, LinkedIn, Reddit, TikTok, GSC, GA4, WordPress and GHL.
    A
  • Postbase
    Schedule social posts, threads and video to X, LinkedIn, Bluesky, Mastodon and YouTube from your AI.
    A
  • Chirpie
    Post, schedule, and track social posts on X, Bluesky, LinkedIn, Instagram and more from AI agents.
    A

More from AutomateLab-tech →