Airlock MCP server
io.github.adamorad/airlock·v2.0.0·2 starsLocal daemon giving AI agents named locks, shared state, events, and a task queue over MCP.
2 stars
Reviews
Write oneNobody has reviewed Airlock yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Airlock tools
No tool declarations could be read from the package source. They show once the server is installed.
Public scan report
scanner v0.1.9 · 2026-09-26 · same rubric, same numbers if you re-run it
- –Code scanpackage could not be scannedn/a
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 101 days ago8/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How Airlock compares
Against every graded Productivity MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 70/100
- higher than 30% of 1,299 Productivity servers
- GitHub stars
- 2
- more than 60% of 854 Productivity servers
Install Airlock in Claude Code, Cursor or VS Code
claude mcp add airlock -- docker run -i --rm ghcr.io/adamorad/airlock:2.0.0
What the publisher says
From the Airlock repository's README, as published. We do not edit it. Read it on GitHub
Airlock
Run five agents on one repo without them stomping on each other.
Named resource locks, atomic shared state, presence, events, and a task queue for AI agents — exposed over a local HTTP MCP server that's always running, so any session, terminal, or CI job can coordinate with any other. Cross-platform Go daemon, SQLite-backed, with real blocking waits — no more poll loops.
Two agents reach for the same npm-install lock — one wins, the other blocks on a server-side wait and acquires the instant the first releases.
<!-- Static fallback if the GIF doesn't render: -->
Agent A Agent B
────── ──────
lock_resource("npm-install") lock_resource("npm-install", wait_seconds=50)
→ { locked: true, lock_token } (parked — the daemon holds the connection open)
npm install ...
unlock_resource(lock_token)
→ { locked: true, lock_token } ← wakes instantly
npm install ...The problem
Open two Claude Code sessions on the same repo — one adding auth, one adding notifications. Both reach for npm install at the same time. Both pick 003_ as the next migration filename. Neither knows the other exists.
There's no shared state. No handoff. No way for one agent to know what another is doing. Coordination lives in fragile prompt instructions ("please wait until migrations finish") that nothing enforces.
How it works
Airlock is a single Go daemon that runs as a background service — always on, surviving IDE and terminal restarts. It listens on 127.0.0.1:27183 and speaks MCP over HTTP. Any agent that has it configured can:
- acquire locks — and block on a contended one (wait_seconds, up to 50s), so the daemon parks the caller and wakes it the instant the lock frees. No agent-authored retry loops.
- share atomic state — incrementcounter for collision-free unique numbers, setnote_if for compare-and-swap. Read-modify-write is race-free, not best-effort.
- announce presence — register_agent heartbeats; when an agent dies, its locks release and its waiters wake immediately.
- signal events — generation-counted signalevent / waitfor_event for handoffs without polling.
- queue work — a small task queue with presence-bound leases that auto-requeue on crash.
State lives in SQLite (WAL mode) at ~/.airlock/state.db — transactional, crash-safe, with concurrent readers and a single writer. The store is pure-Go (modernc.org/sqlite, no cgo), which is what makes the Linux build a trivial cross-compile. One binary, no language runtime, no external database.
Install
(a) go install
go install github.com/adamorad/airlock/v2@latest # builds the `airlock` binary
airlock install-service # launchd (macOS) / systemd user unit (Linux)(b) Homebrew
brew install adamorad/tap/airlock
airlock install-service(c) Build from source
git clone https://github.com/adamorad/airlock.git
cd airlock
go build -o airlock .
sudo install airlock /usr/local/bin/airlock # or anywhere on your PATH
airlock install-serviceinstall-service registers an always-on background service (and unloads the old v1 LaunchAgent if present, so the v2 daemon takes port 27183 cleanly).
Verify
airlock status
# Airlock — 127.0.0.1:27183
#
# LOCKS (0)
# (none)
# ...Configure your agent
Claude Code — one command:
claude mcp add --transport http airlock http://localhost:27183Cursor / Windsurf / any MCP client — add this to your MCP config:
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Airlock: common questions
- Is Airlock MCP server safe?
- Mostly: it is graded B (70/100). Read the Airlock safety report
- How do I install Airlock?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Airlock need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Airlock maintained?
- The last commit was 139 days ago (2026-06-18). The latest release is v2.0.0.
- What can I use instead of Airlock?
- Servers from other publishers that do the same job: Agentpack MCP server, Quorus MCP server and Agent-Native Calendar MCP server.
- How does Airlock compare with other Productivity MCP servers?
- safety score 70/100 (higher than 30% of 1,299 Productivity servers); github stars 2 (more than 60% of 854 Productivity servers). Full comparison.
Alternatives to Airlock
Same job from other publishers: the closest match first, then the best rated.
- AgentpackRepo-native task continuity for AI coding agents: a reviewed task-state ledger served over MCP.not reviewedGrowingA
- QuorusShared rooms, messages, file locks and task claims for AI coding agents from any vendor.not reviewedGrowingC
- Agent-Native CalendarAgent-Native Google Calendar - manage events, sync, and public bookingnot reviewedEstablishedA
- no_humanFile a task with your local no_human and check on it: task_add and task_status over stdio.not reviewedEstablishedB
- CaldavCalDAV calendar operations (list, create, update, delete events) as MCP tools.not reviewedEstablishedB