{"id":"fc698fcb-f4c2-4506-a61d-467702dba055","slug":"antwork","kind":"mcp","name":"antwork","summary":"Agent skills for the Antwork MCP server: plan, schedule, publish and analyze social posts from Claude, ChatGPT, OpenClaw or any MCP agent. Router + 8 skills + 5 audit agents.","owner":"polynode-co","repoUrl":"https://github.com/polynode-co/antwork","license":"MIT","licenseTier":"permissive","trust":"community","stars":1,"match":null,"fewStars":true,"format":"mcp","createdAt":"2026-05-13T12:18:44.000Z","addedAt":"2026-10-29T23:42:16.623Z","logoUrl":"https://avatars.githubusercontent.com/u/199116246?v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["cloud-infra","developer-tools","productivity"],"tags":["antwork","ai-agents","claude-code","openclaw","scheduling","social-media","social-media-scheduler"],"runtime":"remote","local":false,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-29T23:43:28.193Z","sample":false,"url":"https://conduits.dev/tools/antwork","language":"Shell","transports":["http"],"install":{"remoteUrl":"https://api.antwork.io/mcp"},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# Antwork: post to LinkedIn, X, Instagram and more from your AI\n\n[![skills.sh](https://skills.sh/b/polynode-co/antwork)](https://skills.sh/polynode-co/antwork)\n\n**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](https://antwork.io?utm_source=github&utm_medium=readme&utm_campaign=antwork_skills) 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.\n\nIt 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](https://antwork.io/pricing?utm_source=github&utm_medium=readme&utm_campaign=antwork_skills)).\n\n## Install in one line\n\nPick your agent. Each line adds the Antwork skills (including [`/antwork ship`](skills/antwork-ship/SKILL.md), which turns your commits and releases into posts); the plugin lines also connect the MCP server.\n\n| Agent | Command |\n|---|---|\n| **Claude Code** (plugin: skills, audit agents and MCP server) | `/plugin marketplace add polynode-co/antwork` then `/plugin install antwork@antwork` |\n| **Codex** (plugin: skills and MCP server) | `codex plugin marketplace add polynode-co/antwork && codex plugin add antwork@antwork && codex mcp login antwork` |\n| **Any agent, skills only** ([skills CLI](https://skills.sh): Claude Code, Codex, Cursor and others) | `npx skills add polynode-co/antwork` |\n\nThe skills CLI installs skills, not MCP servers, so connect the server once yourself:\n\n```sh\n# Claude Code\nclaude mcp add --transport http antwork https://api.antwork.io/mcp\n# Codex\ncodex mcp add antwork --url https://api.antwork.io/mcp && codex mcp login antwork\n```\n\nOr in Codex's `~/.codex/config.toml`:\n\n```toml\n[mcp_servers.antwork]\nurl = \"https://api.antwork.io/mcp\"\n```\n\nThen, from inside a repo: `/antwork ship` (or just \"post about what I shipped this week\").\n\n## Connect\n\n| | |\n|---|---|\n| Server URL | `https://api.antwork.io/mcp` |\n| Server name | `antwork` |\n| Transport | Streamable HTTP |\n| Auth | OAuth 2.1 with dynamic client registration. No API key to create or store. |\n\nThe 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.\n\n### VS Code\n\nInstall **Antwork** from the MCP servers gallery, or [add it in one click](https://antwork.io/automate/vscode?utm_source=github&utm_medium=readme&utm_campaign=antwork_skills). 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`:\n\n```json\n{\n  \"servers\": {\n    \"antwork\": {\n      \"type\": \"http\",\n      \"url\": \"https://api.antwork.io/mcp\"\n    }\n  }\n}\n```\n\n### Other clients\n\n- **Claude.ai or Claude Desktop:** add `https://api.antwork.io/mcp` as a custom connector. [Step-by-step](https://antwork.io/automate/claude-desktop/linkedin?utm_source=github&utm_medium=readme&utm_campaign=antwork_skills). For the calendar, campaign, analytics and audit workflows, add the [claude.ai skill](#claudeai) too.\n- **Claude Code:** install the plugin below, which connects the server and adds the skills in one step.\n- **ChatGPT:** [setup guide](https://antwork.io/automate/chatgpt?utm_source=github&utm_medium=readme&utm_campaign=antwork_skills).\n- **Cursor, and Grok Bot through Cursor's catalog:** this repo is also a Cursor plugin (`.cursor-plugin/` and `mcp.json`: the server plus the skills). Until it is listed in the Cursor Marketplace, use the [setup guide](https://antwork.io/automate/cursor?utm_source=github&utm_medium=readme&utm_campaign=antwork_skills), or give Grok Bot the server URL ([guide](https://antwork.io/automate/grok-bot?utm_source=github&utm_medium=readme&utm_campaign=antwork_skills)).\n- **Anything else:** point it at the server URL above. [Full MCP docs](https://antwork.io/docs/mcp?utm_source=github&utm_medium=readme&utm_campaign=antwork_skills).\n\n### What your assistant can do\n\n- Draft a post in each account's own voice. It reads that account's recent posts first.\n- Schedule or publish, per account or as a campaign across several accounts.\n- Attach images, video and PDFs, and manage the media library.\n- See the calendar, list and search posts, and retry a failed one.\n- Report performance per post and per account: impressions or views, likes, comments, shares and reach, plus saves, link clicks, profile visits, follows and watch time where the platform reports them, and daily follower counts per connected account. A metric a platform doesn't report shows as blank, never as zero.\n\nEach 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](https://antwork.io/docs/mcp/tools?utm_source=github&utm_medium=readme&utm_campaign=antwork_skills).\n\n## Antwork Skills for Claude Code and claude.ai\n\nThis repo also adds [Agent Skills](https://docs.claude.com/en/docs/agents-and-tools/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.\n\n### Commands\n\n| Command | Skill | What it does |\n|---|---|---|\n| `/antwork voice [account]` | [`antwork-voice`](skills/antwork-voice/SKILL.md) | Read an account's voice from its real posts, or capture one from samples. |\n| `/antwork calendar <theme>` | [`antwork-calendar`](skills/antwork-calendar/SKILL.md) | Plan and batch-schedule a content calendar. |\n| `/antwork repurpose <source>` | [`antwork-repurpose`](skills/antwork-repurpose/SKILL.md) | One piece → one post with a native version per platform. |\n| `/antwork campaign <goal>` | [`antwork-campaign`](skills/antwork-campaign/SKILL.md) | Sequence a multi-post campaign / launch week. |\n| `/antwork ideas [topic]` | [`antwork-ideas`](skills/antwork-ideas/SKILL.md) | Data-driven hooks grounded in what already performed. |\n| `/antwork analytics [range]` | [`antwork-analytics`](skills/antwork-analytics/SKILL.md) | Pull performance + engagement and synthesize a report. |\n| `/antwork audit` | [`antwork-audit`](skills/antwork-audit/SKILL.md) | Full social-presence audit with 5 parallel agents + a 0-100 Social Health Score. |\n| `/antwork ship [--since …] [--release <tag>]` | [`antwork-ship`](skills/antwork-ship/SKILL.md) | Turn the current repo's commits, merged PRs or a release into build-in-public posts, per account, in each account's voice. |\n\nYou don't have to type the command — describe the intent (\"plan next week\", \"how did last month do?\") and the [router](skills/antwork/SKILL.md) picks the skill. A single post, connecting an account and media need no skill: the connector's own instructions cover them.\n\n### The audit's parallel agents\n\nIn 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:\n\n| Agent | Dimension | Weight |\n|---|---|---|\n| [`antwork-performance`](skills/antwork-audit/agents/antwork-performance.md) | Engagement & top/bottom posts | 30% |\n| [`antwork-voice-analyst`](skills/antwork-audit/agents/antwork-voice-analyst.md) | Voice consistency across accounts | 20% |\n| [`antwork-cadence`](skills/antwork-audit/agents/antwork-cadence.md) | Posting cadence & timing | 20% |\n| [`antwork-content`](skills/antwork-audit/agents/antwork-content.md) | Content quality (hooks, CTAs, fit) | 20% |\n| [`antwork-growth`](skills/antwork-audit/agents/antwork-growth.md) | Platform coverage & growth | 10% |\n\n### Prerequisite\n\nThe skills call the Antwork MCP server, so it has to be connected (see [Connect](#connect)). The plugin does that for you. A single OAuth token spans all your workspaces.\n\nOnce connected, a good first run is **audit** (where you stand), then **ideas** or **calendar** (what to post next).\n\n### Install the skills\n\n#### Claude Code plugin (recommended)\n\nThis repo is also a Claude Code **plugin marketplace**. Installing the plugin wires up the Antwork MCP server *and* all skills + agents in one step:\n\n```sh\n/plugin marketplace add polynode-co/antwork\n/plugin install antwork@antwork\n```\n\nThat's it — the [`antwork` MCP server](.mcp.json) 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.\n\n#### Script install (no plugin)\n\nIf you'd rather not use the plugin system, the script copies the skills + agents straight into `~/.claude/` (you still connect the [Antwork MCP](https://antwork.io?utm_source=github&utm_medium=readme&utm_campaign=antwork_skills) yourself):\n\n```sh\ncurl -fsSL https://raw.githubusercontent.com/polynode-co/antwork/main/install.sh | bash\n```\n\nPrefer to clone first? `git clone … && cd antwork-skills && ./install.sh`. Remove everything with `./uninstall.sh`.\n\n#### OpenClaw\n\n`clawhub/antwork/` is a **self-contained** skill for OpenClaw. A [ClawHub](https://clawhub.ai) listing is coming soon; it is not published there yet, so `clawhub install` won't find it. Until then, install it by hand: copy the folder into your OpenClaw skills directory and connect the server.\n\n```sh\ngit clone https://github.com/polynode-co/antwork.git\ncp -r antwork-skills/clawhub/antwork ~/.openclaw/skills/antwork\nmcporter config add antwork --url https://api.antwork.io/mcp --auth oauth\n```\n\nIt 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.\n\n#### claude.ai\n\nPlugins are Claude Code only, so claude.ai gets the same skills as one upload:\n\n1. Download [`antwork-claude-ai-skill.zip`](https://github.com/polynode-co/antwork/releases/download/claude-ai-skill/antwork-claude-ai-skill.zip).\n2. In claude.ai, open Settings, find Skills, and upload the ZIP.\n3. Connect the Antwork connector (see [Connect](#connect)) if you haven't.\n\nIt 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`](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.\n\n## Repository layout\n\n```\nantwork-skills/\n├── .claude-plugin/\n│   ├── plugin.json           # plugin manifest\n│   └── marketplace.json      # self-hosted marketplace (lists this plugin)\n├── .mcp.json                 # Antwork MCP server — bundled & auto-connected\n├── .cursor-plugin/           # Cursor plugin manifest + single-plugin marketplace\n├── mcp.json                  # the same server, for the Cursor plugin\n├── skills/                   # router + 8 specialized skills, each with its own templates/\n│   ├── antwork/              # router — /antwork <command>\n│   ├── antwork-ship/         # commits / PRs / releases → posts\n│   ├── antwork-calendar/     ├── antwork-campaign/\n│   ├── antwork-repurpose/    ├── antwork-ideas/\n│   ├── antwork-voice/        ├── antwork-analytics/\n│   └── antwork-audit/        # + agents/: the 5 parallel audit subagents\n├── claude-ai/build.sh        # builds the claude.ai ZIP from skills/\n├── clawhub/                  # self-contained OpenClaw skill (ClawHub listing coming soon)\n├── install.sh / uninstall.sh # script-install fallback\n└── README.md / LICENSE\n```\n\n## Contributing\n\nEach 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](https://antwork.io?utm_source=github&utm_medium=readme&utm_campaign=antwork_skills) and never invent tool arguments; the server rejects unknown fields.\n\n## License\n\n[MIT](LICENSE)\n"}