
Looppause
io.github.soteeabamPublished by GitHub account soteeabamv0.2.1Updated Oct 24, 2026
LoopPause MCP server — pause agent execution and route human approval requests
Overview
LoopPause lets an AI agent pause and request human approval through Slack or email, then verify a signed proof of the decision before acting.
- What you can do
- Request approval: send an approval request with action description and details to a Slack channel or user and/or an email address, returning a pause_id immediately and a timeout of up to one week. Check approval: poll once for the human's decision, repeating until it is approved, rejected, timed out or expired. Verify proof: check the Ed25519 signature on the returned proof against LoopPause's published public key before executing an irreversible action.
- When to use it
- Use it when an agent is about to take an irreversible or high-value action, such as a payment or transfer, and you want a human to sign off through Slack or email with a verifiable record of the decision.
- Requirements
- Runs locally over stdio, typically via npx or a global npm install, so Node.js is needed. Requires a LoopPause API key in the LOOPPAUSE_API_KEY environment variable, obtained from the LoopPause dashboard. Network access to the LoopPause API and its published signing key endpoint. At least one recipient (Slack channel or user ID, or email address) per request.
Installation
In SourceWeft
- Open Looppause in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
@looppause/mcp
MCP server for LoopPause — pause AI agent execution and route approval requests to humans via Slack or email. The agent receives a cryptographically signed proof of the human's decision and resumes.
"The missing primitive so agents don't go rogue — or die waiting for approval."
What it does
Exposes three MCP tools: request_approval, check_approval, and verify_proof
request_approval— sends the approval request to the human and returns apause_idimmediatelycheck_approval— polls once for the decision; call repeatedly untildecisionis"approved"or"rejected"verify_proof— verifies the signed proof against LoopPause's published Ed25519 public key; call before executing any irreversible action
This three-step pattern keeps each tool call short, avoids long-running connections, and gives the agent explicit cryptographic verification before proceeding. No shared secret required — any party with the published public key can independently verify the proof.
Installation
Recommended: npx (no install required)
Global install
Configuration
Get your API key at looppause.com/dashboard.
Usage in Claude Code
Add to your .claude/settings.json (or ~/.claude/settings.json for global):
Usage in Cursor
Add to your Cursor MCP configuration:
Tool reference
request_approval
Sends the approval request and returns immediately. Do not proceed with the action until check_approval returns { decision: "approved" }.
When both recipient_slack and recipient_email are provided, Slack is the
primary channel and email is the fallback.
Returns:
check_approval
Checks the current status of an approval request. Call repeatedly until decision is "approved" or "rejected". Never proceed while status is "pending".
Returns (pending):
Returns (responded):
verify_proof
Verifies the Ed25519 signature on a proof returned by check_approval. Call this before executing any irreversible action. Returns immediately — no long-running connection.
Returns (valid):
Returns (invalid):
Public key discovery: GET https://looppause.com/.well-known/looppause-signing-key.json — match the proof's signing_key_id against the served key_id.
Example
Verifying the signature (REQUIRED before executing the action)
All proofs are signed with LoopPause's Ed25519 key. No shared secret required —
any party holding the published public key can independently verify the proof.
Use verifyLoopPauseProof (fetches the key automatically) or call verify_proof
via MCP:
For offline/air-gapped verification, pin the public key once:
Public key discovery: GET https://looppause.com/.well-known/looppause-signing-key.json
(match the proof's signing_key_id against the served key_id).
Webhook verification. Unlike per-customer symmetric schemes, LoopPause's Ed25519 signatures are independently verifiable by any third party holding the published public key — a bank, an auditor, a FIDO AP2 mandate checker — without contacting LoopPause and without holding a shared secret.
Legacy HMAC-SHA256 webhooks ("sha256=<hex>" signatures) remain verifiable
with your LOOPPAUSE_SIGNING_SECRET as before; Ed25519 is the default for
all new proof payloads.
Registry submissions
Smithery.ai
This package includes smithery.yaml for automatic configuration injection.
- Fork or publish
@looppause/mcpto npm - Submit at smithery.ai/new → enter
@looppause/mcp - Smithery will read
smithery.yamland present a UI for users to enter their API key
Anthropic MCP directory
- Ensure the package is published to npm as
@looppause/mcp - Submit via the Anthropic MCP directory form or the directory submission page when available
- List as:
@looppause/mcp— LoopPause human-in-the-loop approval tool
Local development
License
MIT
Source: README.md at commit a373aad
Tools
0Version history
1- v0.2.1LatestSep 16, 2026
Score
40% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.