Skip to main content
Glama

SwipeFlow MCP Server

Human-in-the-loop approvals for AI agents, over the Model Context Protocol.

An agent asks a person to review something, gets a durable handle back, and resumes once a decision has been made. Human review takes minutes or days, so the wait is asynchronous by design — the agent is never required to hold a connection open.

Status: early development. The tool surface is being built against MCP 2026-07-28. Not yet ready for production use.

Why this exists

Agents increasingly produce work that a human should approve before it ships — content, code changes, outbound messages, spending decisions. The awkward part is never the approval itself, it's the waiting: humans are slow and agents are not built to block.

This server makes that wait a first-class protocol concern.

Related MCP server: QMCP

Design

Three properties shape everything else:

Stateless. The server holds no task store, no session store, no database. Task state lives in SwipeFlow, because a review is a task. That is what gives resumability across restarts, horizontal scaling with no coordination, and self-hosting with no infrastructure.

Decisions are outcomes, not failures. Approved, rejected, and changes-requested all complete normally and carry an outcome. Failure is reserved for genuine errors, so an agent can branch on a human's judgement without treating disagreement as a fault.

Works with or without the Tasks extension. Support varies across MCP clients, so every asynchronous tool has a synchronous fallback with identical semantics and identical IDs. Tasks is an upgrade in how a handle is delivered, never in what it means.

Development

Requires Node.js 20 or newer.

npm install
npm run verify     # boundary checks, lint, typecheck, tests
npm run build

Individual steps:

npm run check:deps      # dependency allowlist
npm run check:boundary  # copied-code fingerprints
npm run lint
npm run typecheck
npm test

The boundary checks

This repository is public; the SwipeFlow backend is not. The MCP server reaches SwipeFlow only through its public REST API — never a database, never a shared private module.

Two guards enforce that mechanically rather than by review discipline:

  • check:deps — every dependency must be declared in allowed-dependencies.json. Adding one is a deliberate act. Stale entries also fail, so the allowlist cannot quietly accumulate grants.

  • check:boundary — scans source for the fingerprints of backend code having been copied across: database drivers, backend-only credential surfaces, relative imports that escape the repository.

Both run in CI ahead of lint and tests, and both are themselves covered by tests in test/boundary.test.ts — a guard nobody exercises is a guard that silently stops working.

Contributing

Issues and discussion: https://github.com/swipeflow/swipeflow-mcp/issues

License

Apache 2.0

Tool Schema Changelog

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

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      B
      quality
      D
      maintenance
      MCP server that enables human-in-the-loop workflow in AI-assisted development tools by allowing users to provide direct feedback to AI agents without consuming additional premium requests.
      1
      1
      -
    • F
      license
      Not graded
      quality
      B
      maintenance
      A FastAPI-based Model Context Protocol server that enables tool discovery, invocation history, and human-in-the-loop interaction workflows. It features a Python client and CLI for managing automated tasks that require manual approval and persistence.
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI agents to submit tasks for human or AI review and receive decisions via MCP tools, adding human review checkpoints to workflows.
      MIT
    • A
      license
      A
      quality
      A
      maintenance
      An MCP server that enables AI agents to pause and request human approval or information via Slack, Telegram, or macOS dialogs before proceeding with actions.
      2
      15
      Apache 2.0