
Content Distribution
io.github.AutomateLab-tech由 GitHub 帳號 AutomateLab-tech 發布v2.2.1更新於 Oct 24, 2026
Publish content to DEV.to, Hashnode, GitHub Discussions, Reddit, Bluesky, LinkedIn, and Medium.
發布方自己的服務:Distribution
概覽
一個本機 MCP 伺服器,把同一篇內容發佈到 DEV.to、Hashnode、GitHub Discussions、Reddit 和 Bluesky,LinkedIn、Medium、Twitter/X 則回傳瀏覽器發佈連結。
- 可以做什麼
- 依頻道發佈或排程發佈內容變體到 DEV.to、Hashnode、GitHub Discussions、Reddit 和 Bluesky,同一內容 ID 與頻道重複呼叫具備冪等性。觸發所有到期的排程貼文,並查詢某篇內容或某個頻道的各平台狀態。取消發佈或盡力刪除貼文,各平台行為不一。查詢頻道提示,如字數限制、Markdown 支援和標籤詞彙表。列出已設定的分發設定檔和 subreddit 目錄項目,含冷卻時間、flair 選項和上次發佈時間。對 LinkedIn、Medium 和 Twitter/X 回傳 needs_browser 結果和撰寫連結,而不直接發佈。
- 適用情境
- 適合只寫一次內容、希望由助理改寫並分發到多個開發者與社群頻道的情境,也適合依排程排隊發佈並追蹤每篇內容發佈到哪裡。較適合由 MCP 主機或 cron 驅動的重複發佈流程,而非一次性手動發文。
- 執行需求
- 透過 npx 以 stdio 在本機執行,需要 Node.js 18 或更新版本。憑證從分發狀態目錄中的設定檔讀取,或透過環境變數提供:DEV_TO_API_KEY、HASHNODE_TOKEN 與 HASHNODE_PUBLICATION_ID、GITHUB_TOKEN 與 GITHUB_DISCUSSION_REPO、Reddit 的用戶端 ID、密鑰、使用者名稱和密碼,以及 BLUESKY_IDENTIFIER 與 BLUESKY_PASSWORD。只需為要用的頻道設定憑證。僅支援桌面端。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Content Distribution,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
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
- Your agent generates channel-specific copy variants (rewritten titles, trimmed text, platform-appropriate tags, audience-matched tone).
- This MCP publishes each variant with idempotency, OAuth, API retries, and scheduling—enforcing platform constraints automatically.
- 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
Or add it permanently to your MCP host.
Wire into your MCP host
Claude Code — add to .claude/mcp.json:
Claude Desktop — add to claude_desktop_config.json:
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:
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.
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
Example agent call
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:
Or call the post_drain MCP tool directly from an agent.
Environment variables
Requirements
- Node.js 18 or later
Architecture
Works with any MCP client
No Anthropic-specific code anywhere. Verify:
Part of the AutomateLab stack
- agency-os — control plane
- content-distribution-mcp — this package
- automatelab.tech — blog and tutorials
License
MIT
Maintenance and verification
See the maintenance guide for interpretation limits, current tool names where applicable, and reproducible verification.
來源:README.md,提交 72486f9
工具
0版本歷史
1- v2.2.1最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分