Canlah Skills Radar
Pheme · KOL 运营专员

Content Distribution

automatelab-tech/content-distribution-mcp
✓ I/O · 8认领这个员工

Automates content distribution across multiple developer and social publishing platforms. Publish articles, announcements, and updates simultaneously to DEV.to, Hashnode, GitHub Discussions, Reddit, Bluesky, LinkedIn, and Medium from a single MCP tool call.

该 server 含写操作工具 (post_publish, post_schedule, post_drain, post_status) — 接入你自己的账号前,先确认它的授权范围。

真实 I/O · 已连通 ✓

启动 server · tools/list · 8 个工具 · content-distribution-mcp

下面每个工具的字段、类型、必填项,都是我们真的把 server 启动、tools/list 拉回来的原始 JSON Schema —— 真实的工具契约。注意:下方「示例调用」是按 schema 自动生成的演示,不是真实调用的返回。

post_publish

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

Input(真实 schema)
contentobjectrequired
Content piece to publish: stable id (idempotency key), title, body_md, tags, and optional cover_image / canonical_url / cta_block / author fields. The id + channel pair is the deduplication key — the same id will not be re-posted.
variantsarrayrequired
One or more channel-specific publish targets. Each entry specifies the channel slug (e.g. 'devto:main', 'reddit:ClaudeAI'), the adapted title and body, optional schedule_at for future delivery, and channel extras such as flair. Use channel_
profile_namestringrequired
Name of the distribution profile (credentials store). Use profile_list to discover available names.
示例调用
{
  "tool": "post_publish",
  "arguments": {
    "content": {},
    "variants": [],
    "profile_name": "…"
  }
}
post_schedule

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

Input(真实 schema)
contentobjectrequired
Content piece to publish: stable id (idempotency key), title, body_md, tags, and optional cover_image / canonical_url / cta_block / author fields. The id + channel pair is the deduplication key — the same id will not be re-posted.
variantsarrayrequired
One or more channel-specific publish targets. Each entry specifies the channel slug, the adapted title and body, and optionally schedule_at (ISO-8601 with timezone) for future delivery. Variants without schedule_at are published immediately
profile_namestringrequired
Name of the distribution profile (credentials store). Use profile_list to discover available names.
示例调用
{
  "tool": "post_schedule",
  "arguments": {
    "content": {},
    "variants": [],
    "profile_name": "…"
  }
}
post_drain

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

Input(真实 schema)
nowstring
ISO-8601 datetime boundary, e.g. '2026-05-21T09:00:00Z'; defaults to current UTC time when omitted.
示例调用
{
  "tool": "post_drain",
  "arguments": {
    "now": "…"
  }
}
post_status

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.

Input(真实 schema)
content_idstring
Filter to a specific content piece by its stable ID; omit to return state for all content.
channelstring
Filter to a specific channel slug, e.g. 'devto', 'reddit:ClaudeAI'; omit to return state for all channels.
示例调用
{
  "tool": "post_status",
  "arguments": {
    "content_id": "…",
    "channel": "…"
  }
}
post_unpublish

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

Input(真实 schema)
live_urlstringrequired
URL of the live published post to retract, e.g. 'https://dev.to/user/post-slug'.
channelstringrequired
Channel slug the post was published to, e.g. 'devto', 'hashnode', 'reddit:ClaudeAI'.
示例调用
{
  "tool": "post_unpublish",
  "arguments": {
    "live_url": "…",
    "channel": "…"
  }
}
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.

Input(真实 schema)
channelstringrequired
Channel platform name, e.g. 'devto', 'reddit', 'hashnode', 'bluesky'. Use the platform prefix only, not the full 'platform:account' form.
示例调用
{
  "tool": "channel_hints",
  "arguments": {
    "channel": "…"
  }
}
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.

Input(真实 schema)
无参数
示例调用
{
  "tool": "profile_list",
  "arguments": {}
}
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

Input(真实 schema)
profile_namestring
Optional profile name to filter subreddits to those allowed by that profile; omit to return the full catalog.
示例调用
{
  "tool": "subreddit_list",
  "arguments": {
    "profile_name": "…"
  }
}

综合分

Canlah Score29
归属岗位Pheme · KOL 运营专员
岗位分值×1.05
★ Stars3
↓ 下载量1.3k
工具数(实测)8
npm 包@automatelab/content-distribution-mcp
✓ 已连通:字段来自真实的 tools/list(工具清单)。工具本身尚未真实调用。

效果测评卡

进行中 · 待运行
任务成功率
输出质量 (LLM 评审)
延迟
成本 / token
稳定性

真实 I/O 已解决「输入输出是什么」;下一步接 agent 真跑,量化「效果好不好」。

取用 / 安装

npx -y @automatelab/content-distribution-mcp
同岗位其他 skill
Reddit Buddy
karanb192/reddit-mcp-buddy
✓ I/O · 5

This Reddit Buddy MCP server by Karan Bansal provides clean, LLM-optimized access to Reddit's public API through five specialized tools for browsing subreddits, searching content, retrieving post details with comments, analyzing user profiles, and explaining Reddit terminology. Built with TypeScript and featuring intelligent caching with adaptive TTL, rate limiting, and optional Reddit OAuth authentication for 10x higher rate limits, it offers robust error handling with detailed user-friendly messages, content filtering options for NSFW posts, and efficient data processing that extracts essential fields while avoiding Reddit's verbose response format. The implementation includes Docker deployment support, both stdio and HTTP transport modes, and comprehensive user analysis capabilities that aggregate posting patterns and subreddit activity, making it ideal for AI assistants that need reliable Reddit integration for content research, social media analysis, and community insights without the complexity of direct API management.

Pheme7241.8k
53
LinkedIn + LiGo
ertiqah/linkedin-mcp-runner
✓ I/O · 10

LinkedIn MCP Runner is a server implementation that enables Claude AI to interact with LinkedIn, allowing users to publish posts, schedule content, analyze chats, and retrieve profile information through a set of specialized tools. Developed by Ertiqah, LLC, this Node.js-based server communicates with LinkedIn's API via a backend service at ligo.ertiqah.com, handling authentication through API keys stored in Claude's configuration. The implementation supports various LinkedIn-specific operations including post generation with multiple variants, profile data retrieval, and post analytics - making it particularly valuable for professionals who want to manage their LinkedIn presence directly through Claude without switching contexts.

Pheme308.0k
43
TwitterAPI.io Docs
dorukardahan/twitterapi-io-mcp
✓ I/O · 7

Provides offline access to complete TwitterAPI.io documentation including 54 API endpoints across 10 categories, authentication guides, rate limiting information, and pricing details. Features fuzzy search with camelCase support and hybrid caching for fast lookups. TwitterAPI.io is a third-party service offering cost-effective Twitter/X data access at 96% lower cost than official Twitter API, with 1000 QPS support and no authentication complexity.

Pheme76.0k
36