I’ve been working on a new workflow that would let me skip using Ulysses when sharing new content from Craft to Ghost. To that end, Claude came to the rescue as always, but I’m not done yet. Here are a few details.

Claude needs an n8n workflow (exposed via the n8n MCP server) to retrieve the content of a specific document using Craft APIs. Using an n8n workflow keeps credentials secure, as I don’t need to provide them directly in Claude prompts. Next, Claude converts Craft blocks to well-formatted HTML, the format Ghost expects from its APIs. Next, Claude depends on another small n8n workflow to securely push the HTML content to Ghost. Those two n8n workflows use webhooks (triggers) and HTTP requests (GET, POST) to transfer information between Craft and Ghost via their respective API endpoints.

The publishing workflow is done and handled by Claude AI, but posts are always in draft mode so I can review them in the Ghost Admin management interface before publishing. I need more work to finish this because now I have to make sure that on the next occasion, in a new Claude conversation, Claude will remember to use my n8n workflows and how I want the content converted. Another issue seems to be about the size of the request being sent to Ghost to create the draft post.

If I go back a few weeks, I barely knew how to use Claude Code or leverage webhooks and MCP servers meaningfully. Now I do, thanks to AI. I feel empowered by AI.