
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 分