Skip to main content
Glama

CliSeat MCP (Lite Edition)

License: MIT Protocol: MCP Python: >=3.10

CliSeat MCP is a role-based seat dispatch, session handover ledger, and terminal command governance plane designed for autonomous AI coding agents (Claude Desktop, Cursor, OpenAI Codex, Roo-Code, AutoGen).

It guarantees single-writer mutual exclusion across CLI environments, manages session handover briefs to prevent context loss across agent shifts, and enforces domain command boundaries to eliminate destructive out-of-domain actions.


🎯 The Problem

When multiple autonomous agents or human-agent teams operate in software repositories:

  1. Concurrency Collisions: Two agent sessions try to run builds, edit files, or commit git branches at the same time without mutual exclusion (seat locks).

  2. Session Handover Amnesia: When an agent session ends or hits context limits, the incoming successor agent starts blind—unaware of pending tasks, uncommitted files, or recent terminal outputs.

  3. Out-of-Domain Execution: An agent scoped for frontend build tooling runs destructive infrastructure or database commands without boundary enforcement.

CliSeat provides a lightweight governance plane directly over standard MCP stdio.


Related MCP server: BranchLock MCP

✨ Features (Lite Edition)

  • 🔒 Role-Based Single-Writer Seats: Mutual-exclusion seat locks (claim_seat, release_seat) per domain (e.g. domain:cli, domain:db).

  • 📝 Structured Handover Briefs: Mandatory sign-off notes ensure incoming agent sessions inherit full state and priorities.

  • 🛡️ Domain Boundary Validator: Whitelists approved commands per domain to block out-of-domain command execution.

  • ⚡ Zero-Dependency Core: Pure Python runtime with zero database setup required.


🚀 Quickstart

1. Installation

git clone https://github.com/johannschiffer/cliseat-mcp.git
cd cliseat-mcp
pip install -e .

2. Configure in Claude Desktop or Cursor

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "cliseat": {
      "command": "cliseat",
      "args": ["run"]
    }
  }
}

3. CLI Inspection

cliseat status

🛠️ MCP Tools Reference

Tool

Parameters

Description

claim_seat

seat_id, holder_session_id, domain, lease_ttl_sec

Claims exclusive execution seat

release_seat

seat_id, holder_session_id, handover_notes

Releases seat and records handover notes

get_seat_status

seat_id

Returns seat occupancy, holder, and latest handover brief

execute_domain_command

seat_id, holder_session_id, command_line

Runs command validated against domain boundary whitelist

list_seats

(none)

Lists all configured seats and their statuses


🚀 Upgrade to CliSeat Pro

Need persistent cryptographic handover ledgers, automated lease heartbeats, and token redaction?

The CliSeat Pro Edition adds:

  • 📜 Cryptographic Handover Ledger (SQLite WAL): Immutable sign-off ledger storing SHA-256 state hashes, command history, and uncommitted git snapshots.

  • 💓 Atomic Lease Heartbeat & Anti-Zombie Reaper: Auto-reclaims seats abandoned by disconnected or crashed agent sessions.

  • 🛡️ Command Scope Policy & Output Redactor: Automatically masks authentication tokens, passwords, and private keys from stdout/stderr.

  • 🐳 Production Docker & Docker Compose manifests.

  • 🧪 100% Passing Pytest Suite.

👉 Get CliSeat Pro on Gumroad ($14.99 USD)


📄 License

MIT © 2026 Johann Schiffer

Available Tools

5 tools
claim_seatB

Acquire exclusive single-writer execution seat for a domain (e.g. 'domain:cli', 'domain:db').

Inputs: seat_id (required), holder_session_id (required), domain, lease_ttl_sec.

execute_domain_commandC

Execute terminal command validated against seat domain boundary permissions.

Inputs: seat_id (required), command_line (required), holder_session_id (required).

get_seat_statusA

Check occupancy, current holder session, remaining lease, and handover brief of a seat.

Inputs: seat_id (required).

list_seatsB

List all available seats, current statuses, and latest handover briefs.

Inputs: no named parameters.

release_seatB

Release held seat with mandatory handover brief notes for the next agent session.

Inputs: seat_id (required), holder_session_id (required), handover_notes.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 5 tools

    Disambiguation5/5

    Each tool targets a distinct seat lifecycle action: claim, release, status check, listing, and command execution. There is no meaningful overlap between acquiring a seat and executing commands within it.

    Naming Consistency5/5

    All names use consistent snake_case verb_noun patterns (claim_seat, release_seat, get_seat_status, list_seats, execute_domain_command). The verbs are predictable and descriptive.

    Tool Count5/5

    Five tools is well-scoped for a seat-coordination server, covering the full acquire/use/release lifecycle without extras. Every tool earns its place.

    Completeness4/5

    The seat lifecycle is well covered: claim, release with handover, status, list, and bounded command execution. A lease-renewal or heartbeat operation is the only minor gap, but agents can work around it by releasing and re-claiming.

    Related MCP Connectors

    Related MCP Servers