Draft, schedule, and publish social posts for your workspace straight from your AI.
One address for any MCP client. You sign in at api.antwork.io once, after adding it.
At most: moves money, runs code or commands, deletes data, or sends messages for you.
Odel charges nothing per call. The publisher may charge for its own service.
| Access to | Read | Change |
|---|---|---|
| Read | ||
| Write | ||
| Publish | ||
| Media | Not stated: media | |
From the sign-in at api.antwork.io, as the endpoint publishes it. You approve it there.
Odel could not list its tools without signing in.
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).
| 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.
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"
}
}
}
https://api.antwork.io/mcp as a custom connector. Step-by-step. For the calendar, campaign, analytics and audit workflows, add the claude.ai skill too.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.
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.
| 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 | Full social-presence audit with 5 parallel agents + a 0-100 Social Health Score. |
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.
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% |
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).
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 iker-gonzalez/antwork-skills
/plugin install antwork-skills@antwork
That's it — the antwork MCP server connects automatically (complete the OAuth prompt), and the router, 7 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.
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/iker-gonzalez/antwork-skills/main/install.sh | bash
Prefer to clone first? git clone … && cd antwork-skills && ./install.sh. Remove everything with ./uninstall.sh.
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 7 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.
Plugins are Claude Code only, so claude.ai gets the same skills as one upload:
antwork-claude-ai-skill.zip.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/, agents/ and templates/, 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.
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 + 7 specialized skills
│ ├── antwork/ # router — /antwork <command>
│ ├── antwork-calendar/ ├── antwork-campaign/
│ ├── antwork-repurpose/ ├── antwork-ideas/
│ ├── antwork-voice/ ├── antwork-analytics/
│ └── antwork-audit/
├── agents/ # 5 parallel audit subagents (auto-discovered)
├── templates/ # voice read, calendar, campaign brief, launch week, report
├── claude-ai/build.sh # builds the claude.ai ZIP from skills/, agents/, templates/
├── clawhub/ # self-contained skill published to ClawHub
├── install.sh / uninstall.sh # script-install fallback
└── README.md / LICENSE
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.