The MCP ecosystem is moving fast. New servers ship every week, get posted once to Discord or X, collect a handful of stars, then disappear from everyone’s feed including the builder’s own. There’s no distribution layer for this category yet — no dominant aggregator, no algorithm that keeps surfacing tools over time, no one whose job it is to keep showing up.
I built marketing-pipeline to be that layer for my own tools, then made it general.
Onboarding takes one command:
marketing onboard --name my-tool --repo owner/repo --kind mcp-server
It fetches your README, sends it to Claude, and writes problem, facts, and angles to projects.yml. The kind field matters: mcp-server routes your project to MCP Registry, Smithery, Glama, and PulseMCP; claude-skill routes to awesome-claude-code; browser-extension routes to Chrome Web Store, Firefox AMO, and Edge Add-ons.
After that, a GitHub Actions cron at 14:00 UTC on weekdays runs marketing cycle, which rotates through your projects × angles × channels and picks the least-recently-used angle. Posts go to Bluesky (≤300 chars), X (≤280), Mastodon (≤500), Dev.to, and Hashnode — each enforcing its own length limit.
The part I spent the most time on: an anti-slop gate in pipeline/antislop.py that hard-rejects posts before they publish. Banned tokens include excited, game-changer, unlock, empower, AI-powered, all emoji, all hashtags, and exclamation points. If a draft contains any of them, it gets regenerated. The goal was posts that read like a practitioner wrote them, not a product launch template.
One honest limitation: awesome-claude-code requires a human to submit via their GitHub issue form. The pipeline generates the payload but can’t submit it — their rules explicitly require manual submission once per project.