Agent-Native Calendar
Agent-Native Google Calendar - manage events, sync, and public booking
Description from the maker (original English)
Wraps the taskswarm CLI as a single generic MCP tool for multi-agent task coordination.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"taskswarm": {
"command": "uvx",
"args": [
"taskswarm-cli",
"taskswarm-mcp"
]
}
}
}Run this in your terminal
claude mcp add taskswarm -- uvx taskswarm-cli taskswarm-mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"taskswarm": {
"command": "uvx",
"args": [
"taskswarm-cli",
"taskswarm-mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"taskswarm": {
"type": "stdio",
"command": "uvx",
"args": [
"taskswarm-cli",
"taskswarm-mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account RudrenduPaul, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.1.3) reached the registry 3 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: Agent-Native Calendar, Excel MCP Server, MCP Server for Excel
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Agent-Native Google Calendar - manage events, sync, and public booking
Lets AI create and edit Excel files itself, including formulas, charts and PivotTables, without Excel installed.
Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
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:
npm install -g taskswarm-cli
taskswarm start
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):
pip install taskswarm-cli
taskswarm start
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.
# Terminal 1: start the server
node dist/cli.js start
node dist/cli.js agent report-status --task my-fix --repo ./api --state running node dist/cli.js agent report-status --task my-fix --repo ./api --state done
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:
{
"sessions": [ { "session_id": "my-fix", "latest": { "repo": "./api", "agent_type": "generic", "status": "done", "...": "..." }, "history": [ { "status": "running", "timestamp": "2026-07-15T23:46:41.376Z" }, { "status": "done", "timestamp": "2026-07-15T23:46:41.436Z" } ] } ] }
Wire it into Claude Code directly instead of calling report-status by hand:
node dist/cli.js hooks install claude-code
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):
node dist/cli.js task add --title "Fix flaky test" --repo ./api
node dist/cli.js task list
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 --repo --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 --help):
| Command | Description | Key options | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
taskswarm start | Start the TaskSwarm server and print the live status page URL | --json | ||||||||
taskswarm task add | Register a new task | --title (required), --repo (required), --json | ||||||||
taskswarm task list | List tracked tasks, enriched with live status when the server is reachable | --json | ||||||||
taskswarm agent report-status | Report a status transition for a task/session to the local server | --task (required), --repo (required), --state (required, one of `queued\ | running\ | blocked\ | needs-review\ | done\ | failed), --blocked-reason , --agent-type (claude-code\ | codex\ | cursor\ | generic, default generic), --json` |
taskswarm token rotate | Generate a new bearer token, invalidating the old one | --json | ||||||||
taskswarm hooks install | Install hooks for an agent integration (currently claude-code) | --scope (default project), --project-dir , --json | ||||||||
taskswarm hooks claude-code-relay | Internal: reads a hook payload from stdin and relays it. Installed automatically; not meant to be run by hand. | none |
Every subcommand also takes -h, --help. taskswarm --version prints the installed package's own version number, read live from package.json (so it always matches whatever release you actually have installed, rather than a fixed number that would go stale here).
$ node dist/cli.js agent report-status --task foo --repo /tmp/x --state bogus
error: option '--state ' argument 'bogus' is invalid. Allowed choices are queued, running, blocked, needs-review, done, failed.
$ node dist/cli.js agent report-status --task foo --repo /tmp/x --state blocked Error: could not reach TaskSwarm server at http://127.0.0.1:4173 -- is it running? (taskswarm start)
Both exit non-zero with a plain-English message and no stack trace, including under --json.
The npm package is also importable, not just runnable as a CLI: main/types point at dist/index.js/dist/index.d.ts, and src/index.ts exports a real public surface for anything that wants to embed the event store, server, or adapters directly instead of shelling out.
Schema (src/schema/events.ts)
agentEventSchema, agentEventInputSchema -- Zod schemas for the event envelopeOnly the beginning is shown; read the rest in the repo