Automating Content Syndication with EmDash’s MCP Server

A developer built a plugin using EmDash's MCP server to automate content syndication, reducing manual effort from 45 minutes to under two minutes.

By Central
EmDash's MCP server enables AI agents to programmatically manage content, streamlining cross-platform publishing.
Highlights
  • The developer reduced syndication time from 45 minutes to under 90 seconds using EmDash's MCP server.
  • The plugin runs inside a V8 isolate sandbox, preventing access to the database or file system.
  • Total build time for the syndication plugin, including agent-assisted debugging, was about four hours.

The developer had a simple problem. Every time he published a post on his EmDash CMS blog, he had to manually copy it to Medium, Dev.to, and LinkedIn. Three platforms, three browser tabs, three rounds of formatting fixes. A 1,500-word article took 45 minutes to syndicate. He built a solution using EmDash’s built-in MCP server. It cut that time to under two minutes.

The Problem: Repetitive Cross-Platform Publishing

Syndication is a standard workflow for content creators. Write once, republish everywhere. But the manual version is brittle. Copy-paste errors, broken image links, inconsistent formatting. The developer was spending roughly three hours a week on a task that added no editorial value. He wanted a system that would, on publish, automatically push the content to each platform with correct metadata.

A 1,500-word article took 45 minutes to syndicate. He built a solution using EmDash’s built-in MCP server. It cut that time to under two minutes.

He had tried RSS-based automation tools. They worked for simple feeds but couldn’t handle custom fields, SEO metadata, or platform-specific formatting rules. WordPress plugins existed for syndication, but he had already migrated to EmDash for its security sandbox and modern stack. He needed a solution native to his new CMS.

The Approach: Building an MCP-Driven Syndication Plugin

EmDash ships with a Model Context Protocol (MCP) server out of the box. That means any MCP-compatible AI agent — Claude, Cursor, GitHub Copilot — can connect directly to the CMS and manage content programmatically. The developer used Claude’s desktop app with the MCP integration to build a custom plugin.

The plugin registers a hook on the post:publishedcodecodecode event. When triggered, it reads the published post’s portable text (EmDash’s structured JSON content format) and maps it to each platform’s API schema. For Medium, it sends a markdown conversion via the Medium API. For Dev.to, it uses the Dev.to API with tags and canonical URL. For LinkedIn, it posts a summary with a link.

The plugin declares its capabilities in a manifest:

“`

capabilities: {

“read:content”: true,

“create:external”: [“medium”, “devto”, “linkedin”]

}

“`

Because EmDash runs every plugin inside a V8 isolate using Cloudflare’s dynamic workers, this plugin cannot access the database, the file system, or any other part of the site. It can only read published content and make outbound API calls to the three declared endpoints. No other network access is permitted.

The developer tested the plugin in a local Node.js environment first, then deployed it to Cloudflare’s paid plan where sandboxed execution is available. The total build time, including agent-assisted debugging, was about four hours.

The Results: From 45 Minutes to 90 Seconds

The developer tracked his syndication time over two weeks. Before automation, syndicating a single post across three platforms averaged 15 minutes per platform — 45 minutes total. After automation, the entire process took under 90 seconds: publish the post, wait for the webhook to fire, and verify the cross-post appeared on each platform. The plugin also preserved image alt text and canonical links, which his manual workflow frequently missed.

He also noted a reduction in formatting errors. Previously, he would catch one or two broken image references per week. In the two weeks after automation, he caught zero. The plugin uses the same portable text renderer for all outputs, eliminating the translation mismatches that happen when copying HTML between editors.

One caveat: the initial implementation hit API rate limits on Medium. Medium’s API allows only one post per minute from a single token. The developer added a simple queue with a 70-second delay between posts. That extended the total syndication time to about four minutes for three platforms, still an 11x improvement.

Lessons Learned: Sandboxing Is a Feature, Not a Friction

The developer initially found the capability manifest restrictive. His first version tried to use a catch-all network: "*"codecodecode permission, which the dynamic worker rejected. He had to explicitly list each target API. That forced him to audit exactly what data his plugin was sending where. In practice, that audit saved him from accidentally exposing unpublished drafts — the plugin only receives published content.

He also learned that MCP-based development changes the debugging cycle. Instead of writing code, testing, and deploying, he described the desired behavior to the agent, examined the generated code, and iterated through conversation. The agent handled the boilerplate for API authentication and error handling. His role shifted to specifying constraints and verifying outputs.

The biggest surprise was how easy it was to extend. After the basic syndication worked, he asked the agent to add a “cross-post with custom excerpt” feature for LinkedIn. The agent generated the change in under five minutes, and the dynamic worker sandbox validated that the new capability declaration matched the actual network calls.

Why This Matters Beyond One Developer’s Workflow

EmDash’s MCP server is not a bolt-on feature. It is part of the core architecture, alongside the plugin sandbox and the Astro-based theming engine. That means any MCP-compatible agent can manage content, create plugins, or migrate themes without manual coding. The syndication use case is one of dozens.

For agencies running multiple client sites, this pattern scales. An agent can be configured to syndicate content from a central EmDash instance to multiple destinations, each with its own formatting rules and API tokens. The sandbox ensures that a compromised plugin on one client site cannot affect another.

Still, the approach has limits. The developer noted that platform APIs change. When Medium updates its API, the plugin must be updated. Because the plugin is sandboxed, the update process is the same as the initial build — describe the change to the agent, regenerate the capability manifest, and redeploy. No core CMS update is required.

The developer’s next project is a cross-CM syndication network: an EmDash plugin that pushes content to other EmDash instances, creating a decentralized publishing mesh. The MCP server makes that possible without building a custom API layer.

Questions answered
  • What problem did the developer face?The developer had to manually copy blog posts to Medium, Dev.to, and LinkedIn, taking 45 minutes per article.
  • How does the MCP server help?The MCP server allows AI agents to connect to EmDash and manage content programmatically, enabling automated syndication.
  • What are the security features of the plugin?The plugin runs inside a V8 isolate sandbox, restricting it to reading published content and making outbound API calls only.
Share This Article