Dev.to AI πŸ€– Ai πŸ‘ 0 πŸ“– 6 min read

My AI agent now creates and posts for me 🀯 (here’s the MCP setup)

TL;DR We built an MCP server for Postmately, so your AI agent can: read your landing page and turn it into TikTok carousels and videos 🎠 schedule them to TikTok, YouTube, Pinterest, Telegram, Bluesky and Mastodon

My AI agent now creates and posts for me 🀯 (here’s the MCP setup)

TL;DR

We built an MCP server for Postmately, so your AI agent can:

  • read your landing page and turn it into TikTok carousels and videos 🎠
  • schedule them to TikTok, YouTube, Pinterest, Telegram, Bluesky and Mastodon
  • read the numbers afterwards πŸ“ˆ

All from Claude Code, Cursor or any MCP client. One URL, one API key, about 2 minutes of setup.

And no, it won't post anything to your accounts unless you tell it to. More on that below πŸ‘‡

The problem: devs ship, nobody hears about it 😩

Here's my week as a founder:

  • Monday: ship a feature πŸš€
  • Tuesday: fix the feature πŸ›
  • Wednesday: "I should really post about the feature"
  • Thursday: open Canva, close Canva
  • Friday: post nothing

Sound familiar?

The ideas were never the hard part. The hard part is everything between the idea and the published post: writing 8 slides, finding images, resizing, writing a caption per network, remembering when to post.

Meanwhile, my AI agent writes half my code. So the obvious question was:

If Claude Code can refactor my backend, why can't it make my posts?

So we gave it the tools.

What is Postmately? 🐘

Postmately is a social media studio for AI agents and their owners.

Paste a website link, and it builds a brand profile (colours, tone, what you sell), checks what works for your competitors, plans a month of posts and makes carousels and videos in your brand style. Then it publishes them through official platform APIs to accounts you own.

The dashboard works fine on its own. But the fun part is the MCP server.

Why MCP? πŸ”Œ

MCP (Model Context Protocol) is basically "USB for AI agents". You plug a server in, and your agent gets new tools it can call.

Postmately's MCP server gives your agent 24 tools. The important ones:

Tool What it does
list_channels Which accounts are connected and their rules (max chars, media required…)
make_carousel Website link or topic β†’ 1080Γ—1920 slides with caption and hashtags
make_video Branded vertical video from a topic, template or plan item
validate_post Dry run: checks the post against every channel's rules, writes nothing
create_post Draft, next free slot, now, or a specific date-time
reschedule_post Move a post around the calendar
get_post_metrics Views, reactions and comments for one post
get_analytics_overview Numbers across all channels
get_credits Check the balance before generating anything

Step 1: Get an API key πŸ”‘

Sign up at postmately.com (free, no card), connect at least one channel, then go to Settings β†’ API and create a key.

Put it in your environment, not in your code:

export POSTMATELY_API_KEY="pm_..."

Step 2: Plug it into your agent

Claude Code

claude mcp add --scope user --transport http postmately https://api.postmately.com/mcp \
  --header "Authorization: Bearer $POSTMATELY_API_KEY"

--scope user makes Postmately available in every project, not just the current folder.

Optional, but nice: install the Postmately skill, so Claude knows the workflow (list channels β†’ validate β†’ draft) without you explaining it:

mkdir -p ~/.claude/skills/postmately && \
  curl -fsSL https://postmately.com/skills/postmately/SKILL.md -o ~/.claude/skills/postmately/SKILL.md

That's it. Run claude mcp list (or /mcp inside Claude Code) and you should see postmately connected βœ…

Cursor

Add this to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "postmately": {
      "url": "https://api.postmately.com/mcp",
      "headers": {
        "Authorization": "Bearer ${env:POSTMATELY_API_KEY}"
      }
    }
  }
}

Cursor reads POSTMATELY_API_KEY from the environment it was launched in. If you set the key in .zshrc, start Cursor from that terminal (or put the key straight into the config on your own machine).

Codex

Add this to ~/.codex/config.toml:

[mcp_servers.postmately]
url = "https://api.postmately.com/mcp"
bearer_token_env_var = "POSTMATELY_API_KEY"

Anything else

Any MCP client that can send a bearer header works. The endpoint is streamable HTTP (stateless, POST only):
https://api.postmately.com/mcp.

There's also a ready-made skill file your agent can read: postmately.com/skills/postmately/SKILL.md

Quick check with curl 🩺

Not sure the key works? Ask the server to introduce itself:

curl -s https://api.postmately.com/mcp \
  -H "Authorization: Bearer $POSTMATELY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1.0"}}}'

You should get JSON back with "name": "postmately" in serverInfo. A 401 with invalid_api_key means the key is missing, mistyped or revoked: keys look like pm_ followed by 43 characters. A 405 on a GET request is normal, since the server only takes POST.

Step 3: Say hi to your channels πŸ‘‹

First prompt:

What social channels do I have connected in Postmately, and what are their rules?

The agent calls list_channels and comes back with something like:

You have 4 channels connected:
- TikTok (@yourbrand): video or photo carousel, up to 10 images
- YouTube (Your Brand): needs a video
- Bluesky (yourbrand.bsky.social): 300 characters max
- Pinterest (yourbrand): needs an image

Knowing the rules matters. Bluesky cuts at 300 characters, YouTube wants a video, Pinterest wants an image. The agent writes a different text per channel instead of chopping one text to fit.

Step 4: Landing page β†’ carousel 🎠

Now the magic:

Make a TikTok carousel from https://myproduct.com about the main problem it solves.
Save it as a draft.

Under the hood, the agent:

  1. calls get_credits to check you can afford it (a carousel costs 20 credits)
  2. calls make_carousel with your URL
  3. polls get_carousel until the slides are ready
  4. calls create_post with the caption, hashtags and rendered slides, as a draft

The create_post call looks like this:

{
  "text": "Three habits that fixed my sleep",
  "channels": ["<tiktokChannelId>"],
  "mediaIds": ["<slide1>", "<slide2>", "<slide3>"],
  "when": "draft"
}

You open Postmately, look at the slides, fix a word if you want, and approve. Done.

Step 5: Plan the whole week πŸ“…

Look at my month plan in Postmately. Make carousels for the next 3 plan items
and schedule them Mon, Wed and Fri at 18:00 Berlin time.
Run validate_post before scheduling.

The agent reads list_plan_items, makes the carousels, runs validate_post on each one (a dry run that catches things like "this channel needs a video"), and schedules them with an ISO date-time:

{ "when": "2026-11-09T18:00:00+01:00" }

Changed your mind? "Move Wednesday's post to Thursday" β†’ reschedule_post.

Step 6: Read the numbers πŸ“ˆ

How did my posts do this week? Which one got the most views?

The agent calls get_analytics_overview and get_post_metrics, and tells you what worked. You can ask it to make more of that.

One honest note: some networks (TikTok and Telegram among them) don't share counters through their APIs, so the numbers come from the networks that do. Postmately tells the agent which is which (metricsAvailable), so it won't make numbers up.

"Wait, you gave an AI my accounts?!" 😱

Fair question. Here's how it's set up:

  • Drafts by default. Unless you clearly say "publish" or give a time, the agent saves a draft.
  • Official APIs only. No shared passwords, no bots pretending to be a human clicking around.
  • Your accounts stay yours. Disconnect any channel at any time.
  • Dry runs first. validate_post checks a post against every channel's rules and writes nothing.
  • One key, one workspace. An API key only sees the channels in its own workspace.

Autopilot posts from the dashboard work the same way: drafts come to Telegram or email a day before, and nothing goes out without your yes.

How much does it cost? πŸ’Έ

  • Free: a content plan, 3 carousels and 1 video (120 credits), up to 5 channels
  • AI Autopilot: $59/month, 6,000 credits (about 300 carousels or 100 videos), up to 50 channels

MCP and the API are included on every plan, including free. A carousel costs 20 credits, a video 60.

Try it

  1. Grab a free key at postmately.com
  2. claude mcp add ...
  3. Ask your agent to turn your landing page into a carousel

I'd love to hear what you build with it. What's the first post you'd hand off to your agent? Tell me in the comments

πŸ“° Read the original article on Dev.to AI

Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes β€” full credit and traffic to the original publisher.