Antwork: post to LinkedIn, X, Instagram and more from your AI
AI assistants have no built-in connector for posting to social media. To let your assistant draft, schedule and publish posts, you connect it to an MCP server that holds the platform permissions. Antwork is that server: connect https://api.antwork.io/mcp once, sign in with OAuth, and your assistant can post to your connected accounts on LinkedIn (personal profile or company page), X, Instagram, Facebook Pages, Threads, TikTok, YouTube and Pinterest. Posts stay drafts until you ask it to schedule or publish them.
It works in VS Code (GitHub Copilot chat), Claude, ChatGPT, Cursor and any other client that speaks MCP. Two social accounts are free, then $5 a month each (pricing).
Install in one line
Pick your agent. Each line adds the Antwork skills (including /antwork ship, which turns your commits and releases into posts); the plugin lines also connect the MCP server.
| Agent | Command |
|---|---|
| Claude Code (plugin: skills, audit agents and MCP server) | /plugin marketplace add polynode-co/antwork-skills then /plugin install antwork-skills@antwork |
| Codex (plugin: skills and MCP server) | codex plugin marketplace add polynode-co/antwork-skills && codex plugin add antwork-skills@antwork && codex mcp login antwork |
| Any agent, skills only (skills CLI: Claude Code, Codex, Cursor and others) | npx skills add polynode-co/antwork-skills |
The skills CLI installs skills, not MCP servers, so connect the server once yourself:
# Claude Code
claude mcp add --transport http antwork https://api.antwork.io/mcp
# Codex
codex mcp add antwork --url https://api.antwork.io/mcp && codex mcp login antwork
Or in Codex's ~/.codex/config.toml:
[mcp_servers.antwork]
url = "https://api.antwork.io/mcp"
Then, from inside a repo: /antwork ship (or just "post about what I shipped this week").
Connect
| Server URL | https://api.antwork.io/mcp |
| Server name | antwork |
| Transport | Streamable HTTP |
| Auth | OAuth 2.1 with dynamic client registration. No API key to create or store. |
The first tool call opens a consent screen in your browser. After that, ask your assistant to connect a social account and it returns a connect link for each platform.
VS Code
Install Antwork from the MCP servers gallery, or add it in one click. MCP servers in VS Code run through GitHub Copilot, so the Copilot extension must be installed and signed in. To add it by hand, put this in .vscode/mcp.json:
{
"servers": {
"antwork": {
"type": "http",
"url": "https://api.antwork.io/mcp"
}
}
}
Other clients
- Claude.ai or Claude Desktop: add
https://api.antwork.io/mcpas a custom connector. Step-by-step. For the calendar, campaign, analytics and audit workflows, add the claude.ai skill too. - Claude Code: install the plugin below, which connects the server and adds the skills in one step.
- ChatGPT: setup guide.
- Cursor: setup guide.
- Anything else: point it at the server URL above. Full MCP docs.
What your assistant can do
- Draft a post in each account's own voice. It reads that account's recent posts first.
- Schedule or publish, per account or as a campaign across several accounts.
- Attach images, video and PDFs, and manage the media library.
- See the calendar, list and search posts, and retry a failed one.
- Report engagement: impressions or views, likes, comments, shares and reach, per post and per account.
Each platform's own rules apply: Instagram and Pinterest need an image or video, TikTok and YouTube need a video, and Instagram needs a Creator or Business account. Tool reference.
Antwork Skills for Claude Code and claude.ai
This repo also adds Agent Skills on top of the connector. The connector alone handles single steps: drafting, scheduling, publishing, media, connections. The skills cover the multi-step workflows: a content calendar planned around what's already scheduled, one piece repurposed across platforms, a campaign arc, ideas grounded in what performed, an analytics report, and a scored audit. One router sends /antwork <command> (or a plain request) to the right one.
Commands
| Command | Skill | What it does |
|---|---|---|
/antwork voice [account] | antwork-voice | Read an account's voice from its real posts, or capture one from samples. |
/antwork calendar <theme> | antwork-calendar | Plan and batch-schedule a content calendar. |
/antwork repurpose <source> | antwork-repurpose | One piece → platform-native variants, grouped as a campaign. |
/antwork campaign <goal> | antwork-campaign | Sequence a multi-post campaign / launch week. |
/antwork ideas [topic] | antwork-ideas | Data-driven hooks grounded in what already performed. |
/antwork analytics [range] | antwork-analytics | Pull performance + engagement and synthesize a report. |
/antwork audit | antwork-audit |
You don't have to type the command — describe the intent ("plan next week", "how did last month do?") and the router picks the skill. A single post, connecting an account, media and LinkedIn comments need no skill: the connector's own instructions cover them.
The audit's parallel agents
In Claude Code, /antwork audit spawns five read-only subagents concurrently, then synthesizes a weighted score. On claude.ai, which has no subagents, the same five dimensions run one after another:
| Agent | Dimension | Weight |
|---|---|---|
antwork-performance | Engagement & top/bottom posts | 30% |
antwork-voice-analyst | Voice consistency across accounts | 20% |
antwork-cadence | Posting cadence & timing | 20% |
antwork-content | Content quality (hooks, CTAs, fit) | 20% |
antwork-growth | Platform coverage & growth | 10% |
Prerequisite
The skills call the Antwork MCP server, so it has to be connected (see Connect). The plugin does that for you. A single OAuth token spans all your workspaces.
Once connected, a good first run is audit (where you stand), then ideas or calendar (what to post next).
Install the skills
Claude Code plugin (recommended)
This repo is also a Claude Code plugin marketplace. Installing the plugin wires up the Antwork MCP server and all skills + agents in one step:
/plugin marketplace add polynode-co/antwork-skills
/plugin install antwork-skills@antwork
That's it — the antwork MCP server connects automatically (complete the OAuth prompt), and the router, 8 skills, and 5 audit agents load. Why the plugin over loose skills: the skills are useless until Antwork's MCP is connected, and the plugin ships that config bundled, so there's no separate connector setup.
Script install (no plugin)
If you'd rather not use the plugin system, the script copies the skills + agents straight into ~/.claude/ (you still connect the Antwork MCP yourself):
curl -fsSL https://raw.githubusercontent.com/polynode-co/antwork-skills/main/install.sh | bash
Prefer to clone first? git clone … && cd antwork-skills && ./install.sh. Remove everything with ./uninstall.sh.
OpenClaw / ClawHub
clawhub/antwork/ is a self-contained skill published to ClawHub, OpenClaw's skill registry:
clawhub install iker-gonzalez/antwork
mcporter config add antwork --url https://api.antwork.io/mcp --auth oauth
It is deliberately not the router above. ClawHub publishes one folder, so a skill that routes to 8 siblings that were never installed would be broken — this one inlines the setup, the drafting protocol, the character limits and the draft→publish two-step in a single file.
claude.ai
Plugins are Claude Code only, so claude.ai gets the same skills as one upload:
- Download
antwork-claude-ai-skill.zip. - In claude.ai, open Settings, find Skills, and upload the ZIP.
- Connect the Antwork connector (see Connect) if you haven't.
It is one skill named antwork: the router, with every other skill and audit dimension inside it as a reference file it reads when needed. claude-ai/build.sh generates it from skills/ (each skill with its templates, and the audit's agents), and a workflow republishes it on every change, so it never drifts from the plugin. Posting itself needs no skill on claude.ai either: the connector sends its drafting rules when it connects.
Repository layout
antwork-skills/
├── .claude-plugin/
│ ├── plugin.json # plugin manifest
│ └── marketplace.json # self-hosted marketplace (lists this plugin)
├── .mcp.json # Antwork MCP server — bundled & auto-connected
├── skills/ # router + 8 specialized skills, each with its own templates/
│ ├── antwork/ # router — /antwork <command>
│ ├── antwork-ship/ # commits / PRs / releases → posts
│ ├── antwork-calendar/ ├── antwork-campaign/
│ ├── antwork-repurpose/ ├── antwork-ideas/
│ ├── antwork-voice/ ├── antwork-analytics/
│ └── antwork-audit/ # + agents/: the 5 parallel audit subagents
├── claude-ai/build.sh # builds the claude.ai ZIP from skills/
├── clawhub/ # self-contained skill published to ClawHub
├── install.sh / uninstall.sh # script-install fallback
└── README.md / LICENSE
Contributing
Each skill lives in skills/<name>/SKILL.md with YAML frontmatter (name, description) followed by markdown instructions. Keep description: specific — it determines when Claude auto-loads the skill. Use only real Antwork MCP tools and never invent tool arguments; the server rejects unknown fields.