Skip to main content

sesame-mcp

An MCP server that exposes Sesame's human-in-the-loop approval API as an agent tool. Drop it into any MCP-capable agent (Claude Desktop, Claude Code, Cursor, etc.) and that agent gains an approval gate it can call before doing anything destructive or sensitive — with zero integration code on your side.

The server talks only to Sesame's public REST contract over stdio. It does not import the broker, core, or CLI packages.

Tool

request_approval(
    action: str,
    summary: str,
    reason: str | None = None,
    timeout_seconds: int = 300,
) -> dict

It triggers an approval (POST /v1/approvals), then long-polls (GET /v1/approvals/{id}?wait=true) until a human decides or timeout_seconds elapses. A human is notified via Telegram + push and must approve or deny.

Returns:

{ "approval_id": "ap_...", "status": "approved" | "denied" | "expired" | "timeout" | "error", "decided": true }

The agent must only proceed with the action when status == "approved".

Configuration

Set SESAME_API_KEY — create one in the Sesame dashboard (API Keys). That's the only thing required; the server reaches the hosted Sesame broker automatically and fails fast at startup if the key is missing.

Self-hosting only: point SESAME_BROKER_URL at your own broker (defaults to https://getsesame.dev).

Install

uv pip install sesame-mcp        # or: pip install sesame-mcp
sesame-mcp                       # runs the stdio server

Register in an MCP client

Claude Code

claude mcp add sesame \
  --env SESAME_API_KEY=sk_live_xxx \
  -- uvx sesame-mcp

SESAME_API_KEY is the only required env var — the server targets the hosted broker by default. Add --env SESAME_BROKER_URL=... only to self-host or hit a local broker.

uvx sesame-mcp downloads and runs the published package on demand — no prior install needed.

Claude Desktop / generic JSON config

Add to your client's mcpServers block (e.g. claude_desktop_config.json):

{
  "mcpServers": {
    "sesame": {
      "command": "sesame-mcp",
      "env": {
        "SESAME_API_KEY": "sk_live_xxx"
      }
    }
  }
}

If sesame-mcp is not on the client's PATH, use uvx:

{
  "mcpServers": {
    "sesame": {
      "command": "uvx",
      "args": ["sesame-mcp"],
      "env": { "SESAME_API_KEY": "sk_live_xxx" }
    }
  }
}

Any MCP-capable agent that loads this server gets the approval gate automatically — no SDK calls, no glue code.

Development

uv run --extra dev ruff check .
uv run --extra dev pytest tests/

Metadata

Release files for sesame-mcp 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sesame-mcp 0.1.2
File Size Uploaded
sesame_mcp-0.1.2.tar.gz 7.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sesame-mcp 0.1.2
File Interpreter ABI Platform
sesame_mcp-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 14.3 kB

Release files / sesame_mcp-0.1.2.tar.gz

Download URL sesame_mcp-0.1.2.tar.gz
Size 7.4 kB
Tags Source
SHA-256 checksum
How to use checksums
5b24168c2dc165242e07eecd08f8f76c41c3fba8c1125395800e866e23cb399e
BLAKE2b-256 checksum
How to use checksums
008b8bca5be338660e55f5d72ce26668192c035efef1175309849c98f08b5561
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.1 {"installer":{"name":"uv","version":"0.11.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / sesame_mcp-0.1.2-py3-none-any.whl

Download URL sesame_mcp-0.1.2-py3-none-any.whl
Size 6.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3475faeee0dce8faa36ac863bda64c802e8914e44534a35c645309a02d663f82
BLAKE2b-256 checksum
How to use checksums
5c34aef2310c51b2fd26f59fb53b9f54d8949febcf6e153fe32e771687b91d9f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.1 {"installer":{"name":"uv","version":"0.11.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page