Agent benchmark
Five jobs an AI agent does for your DMs. Who can do them?
Postkey is the most agentic DM automation tool. This page is how you can check that: five everyday jobs, run through Postkey's MCP server, and every rival read from its own docs, with dates and links.
The short answer
Postkey did all five jobs in our run: create a comment-to-DM automation, edit it, switch it on, read analytics, schedule a post. By their own docs, Blotato and SuperProfile can do all five through MCP too. InstantDM's MCP cannot build or switch on automations, and ManyChat, LinkDM and CreatorFlow have no MCP server. Postkey's difference is how it does them: a preview before every send and your approval by default.
Updated October 20, 2026
The five jobs
- 01
Create a comment-to-DM automation. Asked as: "When someone comments GUIDE on my post, DM them my guide link."
- 02
Edit it. Asked as: "Change the keyword and rewrite the first DM."
- 03
Switch it on. Asked as: "Turn it on."
- 04
Read analytics. Asked as: "How are my automations doing?"
- 05
Schedule a post. Asked as: "Schedule this post for tomorrow."
Results
"Done" means we ran it ourselves through the tool's MCP server. "Yes", "No" and "Partly" are what the tool's own docs say, read October 20, 2026, with a link for each below. Nothing here is a guess: where the docs do not say, it says "Unclear".
| Tool | Create a comment-to-DM automation | Edit it | Switch it on | Read analytics | Schedule a post |
|---|---|---|---|---|---|
| Postkey | Done (we ran it) | Done (we ran it) | Done (we ran it) | Done (we ran it) | Done (we ran it) |
| Blotato | Yes (its docs) | Yes (its docs) | Yes (its docs) | Yes (its docs) | Yes (its docs) |
| SuperProfile | Yes (its docs) | Yes (its docs) | Yes (its docs) | Yes (its docs) | Yes (its docs) |
| Inrō | Yes (its docs) | Yes (its docs) | Yes (its docs) | Partly (its docs) | Yes (its docs) |
| InstantDM | No (its docs) | No (its docs) | No (its docs) | Partly (its docs) | No (its docs) |
| Chatfuel | Unclear | Unclear | Unclear | Unclear | Unclear |
| ManyChat | No (its docs) | No (its docs) | No (its docs) | No (its docs) | No (its docs) |
| LinkDM | No (its docs) | No (its docs) | No (its docs) | No (its docs) | No (its docs) |
| CreatorFlow | No (its docs) | No (its docs) | No (its docs) | No (its docs) | No (its docs) |
ManyChat, LinkDM and CreatorFlow: no MCP server found, so there was nothing to connect an assistant to. Rivals were not run by us; see "How we tested".
The MCP servers
| Tool | Address and sign-in | Tools | Plans |
|---|---|---|---|
| Postkey (in the MCP Registry) | https://postkey.pro/mcp (OAuth 2.1 sign-in, or an agent key) | 45 tools | Every plan |
| Blotato (in the MCP Registry) | https://mcp.blotato.com/mcp (OAuth, or an API key) | 35 tools | Paid Starter, Creator and Agency plans; not the free trial |
| SuperProfile (in the MCP Registry) | https://mcp.superprofile.bio/mcp (OAuth with PKCE and permission scopes) | 289 tools across 15 areas | A free account; scheduling and some Auto-DM features need a paid plan |
| Inrō | https://api.inro.social/mcp (OAuth 2.1, or a private API token) | 41 tools (help center; its blog says 25) | Pro or trial |
| InstantDM | https://openapi.instantdm.com/mcp (An API key in the address) | 22 tools | Trendsetter and up, and the free trial |
| Chatfuel | https://mcp.chatfuel.com/panel (OAuth sign-in, or a token) | Not published (beta; it passes through Chatfuel's GraphQL API) | Not stated |
No MCP server found: ManyChat, LinkDM and CreatorFlow.
Postkey's run, call by call
We ran the five jobs on a Postkey server built from main at commit b7589981, run locally with demo data (PE_DEMO=1), through the same MCP server and tools an assistant uses on postkey.pro. The connection asked for every permission except the X toolkit, so it listed 40 of the 45 tools.
With "ask first" on, the default for every new connection: postkey_publish_automation answered that the automation is waiting in Approvals: nothing is sent until a person approves it in Postkey. postkey_schedule_post answered that the post is waiting in Approvals and goes out only after a person approves it.
The automation was paused and the post unscheduled and deleted at the end (postkey_pause_automation, postkey_unschedule_post, postkey_delete_post).
- 01
Run it yourself against a local Postkey server, or your own account with an agent key:
cd app && npm run agent:benchmark -- --base=http://127.0.0.1:3331 --demo (a local PE_DEMO=1 POSTKEY_AGENT_API=1 server), or POSTKEY_AGENT_KEY=... npm run agent:benchmark -- --base=https://postkey.pro --live-ok
| Job | What happened | MCP tools |
|---|---|---|
| Create a comment-to-DM automation | A draft comment-to-DM automation from a template, with the keyword and link the person asked for. Nothing is sent until it is switched on. | postkey_list_automation_templates, postkey_create_automation |
| Edit it | New keyword and first DM saved to the draft and read back; a live automation keeps its published version until it is switched on again. Over MCP this works for automations made with the Quick form; one built in the Flow Builder can only be renamed, the rest is edited in the Flow Builder. | postkey_update_automation, postkey_get_automation |
| Switch it on | Previewed, then switched on (live). With "ask first" on, the default, it waits for a person's approval in Postkey instead. | postkey_preview_action, postkey_publish_automation |
| Read analytics | Per automation and in total: triggered, DMs sent, delivered, read, link clicks, unique clicks, failed, unique contacts, click rate. | postkey_get_automation_stats |
| Schedule a post | A draft post, previewed, then scheduled for the next day. With "ask first" on, it waits for approval first. | postkey_list_social_accounts, postkey_create_post, postkey_preview_action, postkey_schedule_post |
How Postkey does the same jobs
What the run shows about how Postkey works, from Postkey's own tools:
- Every send can be previewed first: postkey_preview_action shows what switching on or scheduling would do, and changes nothing.
- Switching on an automation, scheduling a post and sending a reply wait for a person's approval by default. The person can turn that off per connection.
- An edit to a live automation is saved to its draft; people keep getting the published version until it is switched on again.
- Text from DMs and comments reaches the assistant marked as written by someone else, and it is told never to follow it.
- Each connection has limits: up to 60 requests a minute and 200 changes a day by default.
- The same automation an assistant builds opens in Postkey's Flow Builder, where a person can change anything.
Where rivals match Postkey or do more
On these five jobs, Postkey is not alone. By their own docs, Blotato and SuperProfile can do all five through MCP, and Inrō four of them. Where they do more, in their own words:
- Blotato: Posts and schedules to 9 networks, Pinterest and Bluesky among them.
- Blotato: AI image and video generation in the same MCP server.
- Blotato: Listed in the official MCP Registry, like Postkey.
- SuperProfile: Far more tools (289), covering its whole creator store: products, courses, webinars, bookings.
- SuperProfile: A free account reaches the MCP server.
- SuperProfile: Fine-grained permission scopes and idempotency keys on writes.
- Inrō: Builds an automation three ways over MCP: from a template, from a prompt, or from a full tree of triggers and actions in JSON. Postkey's assistant builds from templates.
- Inrō: Broadcast campaigns, contact segments and bulk contact updates through MCP.
- Inrō: A partner connection for agencies.
- InstantDM: Reads and answers the DM inbox and comments on Meta ads; reading is free, each send costs a credit.
- Chatfuel: Its MCP server reaches the whole Chatfuel GraphQL API, so in principle anything the account allows.
- ManyChat: The biggest DM automation tool, with the most channels and templates; its users ask for an agent-ready API on its own community board.
- LinkDM: A generous free plan and DM credits that never expire.
Where Postkey falls short today
- The assistant builds automations from Postkey's templates. A custom multi-step flow is built by a person in the Flow Builder; Inrō's MCP can build one from a prompt or a full JSON definition.
- Over MCP, an automation built in the Flow Builder can only be renamed; its steps are edited in the Flow Builder.
- Fewer tools than SuperProfile (289) and no AI image or video generation, which Blotato has.
Each rival, job by job
| Tool and job | Its docs say | Details |
|---|---|---|
| Blotato: create a comment-to-DM automation | Yes | blotato_create_automation: "It starts as an inactive draft unless isActive is true." (Blotato help: MCP tools reference) |
| Blotato: edit it | Yes | blotato_update_automation. Its docs: "Content changes to a live automation publish immediately." (Blotato help: MCP tools reference) |
| Blotato: switch it on | Yes | blotato_update_automation with isActive true (Blotato help: MCP tools reference) |
| Blotato: read analytics | Yes | blotato_get_automation_analytics (triggered, completed, failed) and blotato_get_post_analytics (Blotato help: MCP tools reference) |
| Blotato: schedule a post | Yes | blotato_create_post with scheduledTime, or the next free slot (Blotato help: MCP tools reference) |
| SuperProfile: create a comment-to-DM automation | Yes | prepare_automation, then save_auto_dm_automation: "A new automation is saved as a draft for you to review, and nothing sends until it is turned on." (SuperProfile: Instagram Auto-DM MCP) |
| SuperProfile: edit it | Yes | get_automation, then prepare_automation and save_auto_dm_automation (SuperProfile: MCP tools) |
| SuperProfile: switch it on | Yes | activate_automation: "Publish a saved draft or resume a paused automation" (SuperProfile: MCP tools) |
| SuperProfile: read analytics | Yes | get_analytics: "Report Auto-DM runs and instrumented clicks" (SuperProfile: MCP tools) |
| SuperProfile: schedule a post | Yes | prepare_scheduled_post, then schedule_post (paid plan) (SuperProfile: MCP tools) |
| Inrō: create a comment-to-DM automation | Yes | "Comment-to-DM in one call: Attach a Comment-to-DM automation to any post through the media tool." (Inrō help: MCP server) |
| Inrō: edit it | Yes | "Update an existing scenario: change its title, toggle it on or off, or replace its content" (Inrō help: build automations via API and MCP) |
| Inrō: switch it on | Yes | The same update call toggles a scenario on (Inrō help: build automations via API and MCP) |
| Inrō: read analytics | Partly | "view campaign performance" (broadcasts). Automation performance is in its API; its MCP docs do not say it is a tool (Inrō help: MCP server) |
| Inrō: schedule a post | Yes | "create, schedule, publish or delete Instagram posts (image, reel or carousel) and stories." (Inrō help: MCP server) |
| InstantDM: create a comment-to-DM automation | No | No create-automation tool; trigger_flow only starts a flow made by hand (instantdm.com/mcp) |
| InstantDM: edit it | No | No tool to change an automation (InstantDM OpenAPI spec (linked from its docs)) |
| InstantDM: switch it on | No | disable_automation pauses all automations; no tool switches one on (InstantDM OpenAPI spec (linked from its docs)) |
| InstantDM: read analytics | Partly | Instagram account and post insights (get_account_insights, get_post_insights), not automation results (instantdm.com/mcp) |
| InstantDM: schedule a post | No | create_post publishes at once; it takes no time (InstantDM OpenAPI spec (linked from its docs)) |
| Chatfuel: create a comment-to-DM automation | Unclear | Its MCP is in beta and lists no tools; it says it manages "comment replies" (chatfuel.com/llms.txt) |
| Chatfuel: edit it | Unclear | No tool list published (chatfuel.com/llms.txt) |
| Chatfuel: switch it on | Unclear | No tool list published (chatfuel.com/llms.txt) |
| Chatfuel: read analytics | Unclear | No tool list published (chatfuel.com/llms.txt) |
| Chatfuel: schedule a post | Unclear | No tool list published, and no post scheduler found (chatfuel.com/llms.txt) |
| ManyChat: create a comment-to-DM automation | No | No endpoint creates a flow; the API lists flows and sends one to a contact (ManyChat Page API (swagger)) |
| ManyChat: edit it | No | No endpoint changes a flow (ManyChat Page API (swagger)) |
| ManyChat: switch it on | No | No endpoint switches a flow on (ManyChat Page API (swagger)) |
| ManyChat: read analytics | No | No analytics endpoint (ManyChat Page API (swagger)) |
| ManyChat: schedule a post | No | No post scheduler (ManyChat Page API (swagger)) |
| LinkDM: create a comment-to-DM automation | No | No MCP server or public API (linkdm.com/llms.txt) |
| LinkDM: edit it | No | No MCP server or public API (linkdm.com/llms.txt) |
| LinkDM: switch it on | No | No MCP server or public API (linkdm.com/llms.txt) |
| LinkDM: read analytics | No | No MCP server or public API (linkdm.com/llms.txt) |
| LinkDM: schedule a post | No | No MCP server or public API (linkdm.com/llms.txt) |
| CreatorFlow: create a comment-to-DM automation | No | No MCP server or public API (creatorflow.so) |
| CreatorFlow: edit it | No | No MCP server or public API (creatorflow.so) |
| CreatorFlow: switch it on | No | No MCP server or public API (creatorflow.so) |
| CreatorFlow: read analytics | No | No MCP server or public API (creatorflow.so) |
| CreatorFlow: schedule a post | No | No MCP server or public API (creatorflow.so) |
Sources: Blotato help: MCP server, Blotato help: MCP tools reference, SuperProfile: Instagram Auto-DM MCP, SuperProfile: MCP tools, Inrō help: MCP server, Inrō help: build automations via API and MCP, instantdm.com/mcp, InstantDM OpenAPI spec (linked from its docs), chatfuel.com/llms.txt, ManyChat Page API (swagger), linkdm.com/llms.txt, creatorflow.so
How we tested, and what we did not
- Postkey: run by us on October 20, 2026, MCP call by MCP call (scripts/agent-benchmark.ts in Postkey's code).
- Blotato: Not run by us: MCP access needs a paid Blotato plan, and we have not bought one. The cells are from its own docs. Read October 20, 2026.
- SuperProfile: Not run by us: it needs an account with a connected Instagram account, and we have not made one. The cells are from its own docs. Read October 20, 2026.
- Inrō: Not run by us: it needs an account with a connected Instagram account, and we have not made one. The cells are from its own docs. Read October 20, 2026.
- InstantDM: Not run by us: it needs an account with a connected Instagram account, and we have not made one. The cells are from its own docs. Read October 20, 2026.
- Chatfuel: Not run by us: it needs an account with a connected Instagram account, and we have not made one. The cells are from its own docs. Read October 20, 2026.
- ManyChat: Nothing to run: no official MCP server found. The cells read ManyChat's public API, which an unofficial MCP server would have to wrap. Read October 20, 2026.
- LinkDM: Nothing to run: no MCP server and no public API found. Read October 20, 2026.
- CreatorFlow: Nothing to run: no MCP server and no public API found (creatorflow.so/mcp answers 404). Read October 20, 2026.
- We will rerun Postkey after any change to these tools and read the rivals' docs again every month. If a rival's docs change, tell us and we will update the page.
Why Postkey is the most agentic DM automation tool
Postkey was built for AI agents from the start, not given an API afterwards. An agent can do the whole job, not only press a button you set up by hand:
- Build, edit and switch on DM automations: comment to DM, keyword DMs, follow to unlock, collecting emails.
- Read the inbox, draft replies and send them once you say yes.
- Write, schedule and publish posts, and set the DM keyword each post's comments reply to.
- Find and tag contacts, and report how posts and automations did.
- Up to 45 tools in one MCP server, with OAuth sign-in or an agent key, and a skill file that teaches the agent the rules.
- Approvals, limits and protection from instructions hidden in DMs built in, so you can let an agent run it.
Questions
In this benchmark, Postkey (run by us), and by their own docs Blotato and SuperProfile: each can create, edit and switch on a comment-to-DM automation, read analytics and schedule a post through MCP.
Not through an official route we could find: ManyChat has no official MCP server (searched October 20, 2026), and its public API lists flows and sends them but cannot create or change one.
Not by default. Switching on an automation, scheduling a post and sending a reply wait for a person's approval unless that person turns it off for the connection.
No. Testing each needs an account, and some need a paid plan. Their cells come from their own docs, with the date and a link, so you can check them.