프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

Content Distribution

제작자: AutomateLab-tech버전 2.2.1i★ –i내 컴퓨터에서 실행
레지스트리 이름io.github.AutomateLab-tech/content-distribution

설치

개요

제작자가 쓴 설명(영어 원문)

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

PopNx MCP의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 내 컴퓨터에서 실행
  • 전송 방식: stdio
  • 카테고리: 마케팅 및 소셜 미디어
  • 입력해야 할 값: DEV_TO_API_KEY, HASHNODE_TOKEN, GITHUB_TOKEN, REDDIT_CLIENT_ID, REDDIT_CLIENT_SECRET, REDDIT_PASSWORD, BLUESKY_PASSWORD

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

설치하기 전에

  • 기본 점검: 1개 중 1개 통과
  • 내 컴퓨터에서 내 사용자 계정의 권한(파일, 네트워크, 앱)으로 실행돼요.
  • 직접 입력할 값: 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, BLUESKY_PASSWORD, DISTRIBUTION_BACKEND, DISTRIBUTION_BACKEND_DIR

비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.

필요한 것

  • npmNode.js 설치(npx 명령어용)

어떤 앱을 쓰세요?

위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.

Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요

{
  "mcpServers": {
    "content-distribution": {
      "command": "npx",
      "args": [
        "-y",
        "@automatelab/content-distribution-mcp"
      ],
      "env": {
        "DEV_TO_API_KEY": "your-value",
        "HASHNODE_TOKEN": "your-value",
        "HASHNODE_PUBLICATION_ID": "your-value",
        "GITHUB_TOKEN": "your-value",
        "GITHUB_DISCUSSION_REPO": "your-value",
        "REDDIT_CLIENT_ID": "your-value",
        "REDDIT_CLIENT_SECRET": "your-value",
        "REDDIT_USERNAME": "your-value",
        "REDDIT_PASSWORD": "your-value",
        "BLUESKY_IDENTIFIER": "your-value",
        "BLUESKY_PASSWORD": "your-value",
        "DISTRIBUTION_BACKEND": "your-value",
        "DISTRIBUTION_BACKEND_DIR": "your-value"
      }
    }
  }
}

터미널에서 이 명령어를 실행하세요

claude mcp add content-distribution --env DEV_TO_API_KEY=your-value --env HASHNODE_TOKEN=your-value --env HASHNODE_PUBLICATION_ID=your-value --env GITHUB_TOKEN=your-value --env GITHUB_DISCUSSION_REPO=your-value --env REDDIT_CLIENT_ID=your-value --env REDDIT_CLIENT_SECRET=your-value --env REDDIT_USERNAME=your-value --env REDDIT_PASSWORD=your-value --env BLUESKY_IDENTIFIER=your-value --env BLUESKY_PASSWORD=your-value --env DISTRIBUTION_BACKEND=your-value --env DISTRIBUTION_BACKEND_DIR=your-value -- npx -y @automatelab/content-distribution-mcp

실행하기 전에 빈 값을 채워 주세요.

Cursor에서 열기

또는 설정을 직접 복사하기

프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요

{
  "mcpServers": {
    "content-distribution": {
      "command": "npx",
      "args": [
        "-y",
        "@automatelab/content-distribution-mcp"
      ],
      "env": {
        "DEV_TO_API_KEY": "your-value",
        "HASHNODE_TOKEN": "your-value",
        "HASHNODE_PUBLICATION_ID": "your-value",
        "GITHUB_TOKEN": "your-value",
        "GITHUB_DISCUSSION_REPO": "your-value",
        "REDDIT_CLIENT_ID": "your-value",
        "REDDIT_CLIENT_SECRET": "your-value",
        "REDDIT_USERNAME": "your-value",
        "REDDIT_PASSWORD": "your-value",
        "BLUESKY_IDENTIFIER": "your-value",
        "BLUESKY_PASSWORD": "your-value",
        "DISTRIBUTION_BACKEND": "your-value",
        "DISTRIBUTION_BACKEND_DIR": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

VS Code에서 열기

또는 설정을 직접 복사하기

프로젝트의 .vscode/mcp.json에 붙여 넣으세요

{
  "servers": {
    "content-distribution": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@automatelab/content-distribution-mcp"
      ],
      "env": {
        "DEV_TO_API_KEY": "your-value",
        "HASHNODE_TOKEN": "your-value",
        "HASHNODE_PUBLICATION_ID": "your-value",
        "GITHUB_TOKEN": "your-value",
        "GITHUB_DISCUSSION_REPO": "your-value",
        "REDDIT_CLIENT_ID": "your-value",
        "REDDIT_CLIENT_SECRET": "your-value",
        "REDDIT_USERNAME": "your-value",
        "REDDIT_PASSWORD": "your-value",
        "BLUESKY_IDENTIFIER": "your-value",
        "BLUESKY_PASSWORD": "your-value",
        "DISTRIBUTION_BACKEND": "your-value",
        "DISTRIBUTION_BACKEND_DIR": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.

선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.

직접 입력할 값

  • DEV_TO_API_KEY 비밀 env
    DEV.to API key for publishing articles
  • HASHNODE_TOKEN 비밀 env
    Hashnode personal access token
  • HASHNODE_PUBLICATION_ID env
    Hashnode publication ID
  • GITHUB_TOKEN 비밀 env
    GitHub personal access token for GitHub Discussions
  • GITHUB_DISCUSSION_REPO env
    GitHub repo for Discussions in owner/repo format
  • REDDIT_CLIENT_ID 비밀 env
    Reddit OAuth app client ID
  • REDDIT_CLIENT_SECRET 비밀 env
    Reddit OAuth app client secret
  • REDDIT_USERNAME env
    Reddit account username
  • REDDIT_PASSWORD 비밀 env
    Reddit account password
  • BLUESKY_IDENTIFIER env
    Bluesky handle (e.g. you.bsky.social)
  • BLUESKY_PASSWORD 비밀 env
    Bluesky app password
  • DISTRIBUTION_BACKEND env
    State backend (default: yaml)
  • DISTRIBUTION_BACKEND_DIR env
    Directory for YAML state files (default: ~/.distribution-mcp)

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

할 수 있는 일

내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 GitHub 계정 AutomateLab-tech 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요

  • … 아직 점검 안 함

    계속 관리되고 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • – 해당 없음

    엔드포인트 응답

    내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요

  • – 해당 없음

    OAuth로 로그인

    내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요

마케팅 및 소셜 미디어 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 2966개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 2966개 중 10%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 2966개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

Content Distribution, 안전한가요?

해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

입력해야 할 값: DEV_TO_API_KEY, HASHNODE_TOKEN, GITHUB_TOKEN, REDDIT_CLIENT_ID, REDDIT_CLIENT_SECRET, REDDIT_PASSWORD, BLUESKY_PASSWORD

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(2.2.1)은 6개월 전 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

MCP YouTube Transcript

제작자: jkawamoto

An MCP server retrieving transcripts of YouTube videos

내 컴퓨터에서 실행★ 495MIT9일 전 업데이트
설치

Google Analytics MCP

제작자: surendranb

GA4 MCP server for AI agents: schema discovery, server-side aggregation, analysis-ready defaults.

내 컴퓨터에서 실행★ 244MIT9일 전 업데이트
설치

AI video summarizer: summarize and transcribe YouTube, Bilibili, TikTok and podcast videos.

클라우드에서 실행★ 137MIT10일 전 업데이트
설치

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

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 -y @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 claude_desktop_config.json:

{

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

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

Cursor / Windsurf / any MCP host — same npx -y @automatelab/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.

ToolPurpose
post_publishImmediate publish; idempotent on (content.id, channel)
post_scheduleQueue variants for schedule_at, publish the rest immediately
post_drainFire all scheduled posts due now — run from cron
post_statusPer-channel state for a content piece or channel
post_unpublishBest-effort delete (DEV.to sets unpublished; others vary)
channel_hintsPer-channel metadata: char limits, Markdown support, tag vocab
profile_listNames of configured distribution profiles
subreddit_listSubreddit Catalog: cooldowns, flair vocab, last-posted

v2.2.0 breaking change. Tools were renamed from flat names (publish, schedule, ...) to dot-notation (post_publish, post_schedule, ...). Update any prompts, agent skills, or n8n nodes that referenced the old names.

Channels

Channel keyTierAuth
devtoAutoDEV_TO_API_KEY
hashnodeAutoHASHNODE_TOKEN + HASHNODE_PUBLICATION_ID
github_discussionsAutoGITHUB_TOKEN + GITHUB_DISCUSSION_REPO
redditAuto-gatedREDDIT_CLIENT_ID/SECRET/USERNAME/PASSWORD
blueskyAutoBLUESKY_IDENTIFIER + BLUESKY_PASSWORD
linkedinBrowser fallbackreturns needs_browser + compose URL
mediumBrowser fallbackreturns needs_browser + compose URL
twitter / xBrowser fallbackreturns needs_browser + compose URL

Example agent call

// post_publish tool

{ "content": { "id": "n8n-webhook-setup@2026-05-20", "title": "How to set up an n8n webhook", "body_md": "...", "tags": ["automation", "n8n", "tutorial"], "canonical_url": "https://yourblog.com/n8n-webhook-setup", "author": "You" }, "variants": [ { "channel": "devto:main", "title": "How to set up an n8n webhook", "body": "...", "tags": ["automation", "n8n", "tutorial", "devops"], "canonical_url": "https://yourblog.com/n8n-webhook-setup", "extras": {} }, { "channel": "reddit:ClaudeAI", "title": "Built a webhook automation with n8n", "body": "Here's how I set it up...", "tags": [], "extras": { "flair": "Project" } } ], "profile_name": "default" }

Idempotency

Re-running post_publish with the same content.id + channel pair returns the existing live_url immediately without making another platform API call. Safe to retry on failure.

Scheduling

Variants with schedule_at (ISO-8601 with timezone, e.g. "2026-05-21T09:00:00+00:00") are stored in ~/.distribution-mcp/scheduled.yaml and fired on the next post_drain call. Run drain from cron:

# fire due posts every 5 minutes

*/5 * * * * npx -y @automatelab/content-distribution-mcp drain

Or call the post_drain MCP tool directly from an agent.

Environment variables

VariableDefaultPurpose
DISTRIBUTION_BACKENDyamlState backend (yaml only in v1)
DISTRIBUTION_BACKEND_DIR~/.distribution-mcpDirectory for YAML state files

Requirements

  • Node.js 18 or later

Architecture

Agent (Claude Code / n8n / Cursor / any MCP host)

│ generates per-channel copy, calls MCP tools ▼ content-distribution-mcp (this package, stdio transport) │ no LLM calls — pure I/O ├── adapters/ devto · hashnode · github-discussions · reddit · bluesky · browser └── backends/ yaml (post log · profiles · schedule queue · subreddit catalog)

Works with any MCP client

No Anthropic-specific code anywhere. Verify:

grep -ri "anthropic" node_modules/content-distribution-mcp/dist/  # returns nothing

Part of the AutomateLab stack

License

MIT

Maintenance and verification

See the maintenance guide for interpretation limits, current tool names where applicable, and reproducible verification.

PopNx에게 묻기