Wraps the taskswarm CLI as a single generic MCP tool for multi-agent task coordination.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Install β’ Quickstart β’ What it does β’ CLI reference β’ MCP Server β’ How it compares β’ FAQ
Self-hosted event server and CLI that fires a local OS notification and updates a live status page the instant a parallel coding-agent session blocks, needs review, fails, or finishes.

You're running three Claude Code sessions across two repos. One of them hit a permission prompt four minutes ago and has been sitting there ever since, waiting on you. You didn't know, because nothing told you. You just tabbed back to check.
TaskSwarm is a self-hosted event server that fixes that. Every agent session reports its state, and the instant one goes blocked, needs review, fails, or finishes, TaskSwarm fires a local OS notification and updates a live status page. No polling terminals. No account. No cloud dependency.
TaskSwarm ships as two independent, equally first-class distributions of
the same event server -- an npm package (this codebase, TypeScript) and a
PyPI package (taskswarm-cli, Python, python/). Pick whichever fits your
toolchain; the server and CLI don't need to be the same distribution as
whatever agent you're reporting from.
npm (JS/TS): live on npm as taskswarm-cli:
Prefer not to install globally? npx taskswarm-cli start runs the same
binary with no install step.
pip (Python): live on PyPI as taskswarm-cli (renamed from the
original taskswarm package, which has stopped receiving updates and
points here):
See python/README.md for the Python-specific guide. Both distributions speak the same wire protocol (the same event schema, the same notification-dedup rule), so a Python-started server and an npm CLI reporting into it (or vice versa) work together without issue.
Open the live status page URL printed by start. The row for my-fix updates the instant each report-status call lands, no refresh. This is the actual output from that flow, captured while writing this README:
Wire it into Claude Code directly instead of calling report-status by hand:
This writes Stop/Notification hooks into .claude/settings.json for the current project. Every turn Claude Code finishes, and every permission prompt or idle wait it surfaces, now reports into TaskSwarm automatically.

Locally track tasks independent of live session state (a lightweight to-do list, not the event feed):

blocked, needs-review, failed, or done, TaskSwarm fires a native OS notification (osascript on macOS, a terminal bell fallback elsewhere). Measured dispatch latency below. None of paperclip, Vibe Kanban, or Multica (see comparison below) do this; all three are boards you have to be looking at.taskswarm hooks install claude-code writes Stop and Notification hook entries into .claude/settings.json, pointed at the exact Node binary and CLI script already on disk. It deliberately avoids npx; see the code comment in src/adapters/claude-code-adapter.ts for why floating registry resolution on every hook fire is a supply-chain risk. One caveat stated plainly: Claude Code's Stop hook fires per-turn, not per-task, so a long multi-turn session currently reports done after every turn, not just the final one.taskswarm agent report-status --task <id> --repo <path> --state <state> is the same primitive the Claude Code adapter calls under the hood. Any script wrapping any CLI agent can call it directly.POST /events and the live page both require the token TaskSwarm generates on first run (~/.taskswarm/config.json, written 0600). Rotate it with taskswarm token rotate.--json flag with a stable schema, including error output, so a script calling this CLI never has to scrape human-formatted text.[!NOTE] The native OS push notification only fires on macOS, via
osascript. On Linux and Windows, TaskSwarm falls back to a console line plus a terminal bell instead of a system notification, still local, still without ntfy.sh unless you opt in.
Captured directly from --help output on the built CLI (node dist/cli.js <command> --help):
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/taskswarm)<a href="https://allmcps.com/mcp/taskswarm"><img src="https://allmcps.com/api/badge/taskswarm?style=directory" alt="Taskswarm on AllMCPs" /></a>