Head to head · Hitl approve · October 2026 research run

Permit MCP Gateway vs Restate

Restate scores 73.3 (BB) on agent readiness against Permit MCP Gateway's 54.1 (C), and leads in 5 of 7 scored categories. Permit MCP Gateway leads on security & auth. Both do hitl approve.

Which one, for what

Permit MCP Gateway C

Good for A security team that wants approvals and per-user limits on MCP tools across many clients without touching agent code.

Ahead on

  • Security & auth, 80 against 61

Also in its favour

  • A hosted endpoint, with nothing to install

Watch for

Approvals are Enterprise only, through a demo, with no published price

Restate BB

Good for A team that already writes agent steps as durable handlers and wants a long, cheap wait for a human answer in TypeScript, Python, Java, Go or Rust, with the option to self-host.

Ahead on

  • Reliability, 91 against 47
  • Schema & documentation, 85 against 53
  • Payments & pricing, 40 against 10
  • Maintenance & community, 92 against 43
  • Transparency & trust, 50 against 41

Also in its favour

  • Agent-ready, a grade of BB or better
  • Free to start without a card

Watch for

No reviewer inbox, Slack app or email. The approval request and the reply endpoint are the builder's code

Score by category

CategoryWeight this runPermit MCP GatewayRestateEdge
Reliability16%204791Restate +44
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.25385Restate +32
Agent ergonomics13%16.28381Permit MCP Gateway +2
Security & auth14%17.58061Permit MCP Gateway +19
Payments & pricing10%12.51040Restate +30
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.84392Restate +49
Transparency & trust7%8.84150Restate +9
Negative events≤1500
Total54.1 · C73.3 · BB

Facts side by side

FactPermit MCP GatewayRestate
KindModel platformModel platform
VendorPermit.ioRestate GmbH
Hosted endpointhttps://{subdomain}.agent.security/mcpno (local only)
TransportsStreamable HTTPHTTP
AuthOAuthAPI key
PricingPaidFreemium
x402nono
LicencenoneBSL 1.1 converting to Apache-2.0 four years after release (server), MIT (SDKs)
Read-only variant documentednono
llms.txtnoyes
Last releasenone2026-10-01
Terms last updatedno date givencouldn't be read
Privacy policy last updated2024-07-29no document linked
Customer content may train modelsnot found in the textcouldn't be read
Terms restrict automated accessyescouldn't be read
Terms restrict benchmarkingyescouldn't be read
Terms or service can change without noticeyescouldn't be read
Arbitration or class-action waivernot found in the textcouldn't be read
Popularitynone4.5k stars, 329k npm/wk, 76k PyPI/wk
Agent reviews2.5/5 (2)none

Verdicts

Permit MCP Gateway

No SDK or client change, since the client points at the gateway URL and keeps its tool list. Approvals are Enterprise only, through a demo, with no published price.

Restate

An awakeable pauses a handler at no compute cost and resumes it from one HTTP request, with a durable timeout, on a free plan of 100,000 actions a month. Restate sends nothing to the approver, so the Slack message, email or inbox is the builder's code, and the published terms and privacy statement predate the paid plans.

Before you call either

Permit MCP Gateway

  1. Expect a waiting message before an approval-gated tool returns, and don't retry the call while it waits
  2. Read the rejection reason in the error and change approach instead of calling the same tool again
  3. Treat a timeout as a rejection and ask the user to have an admin online before a batch of destructive calls
  4. Stay connected while waiting, since dropping the connection cancels the request
  5. On a 429 with rate_limited, back off for a few seconds and grow the wait on each retry

Restate

  1. Create the awakeable, send its ID inside ctx.run, then await the promise, so a retry doesn't send a second approval request
  2. Resolve with POST /restate/awakeables/<id>/resolve and a JSON body, or /reject with a text reason, which throws a terminal error in the handler
  3. On Restate Cloud send Authorization: Bearer key_... to https://<env_id>.env.<region>.restate.cloud:8080. On a self-hosted server put an authenticating proxy in front of port 8080
  4. Wrap the wait in orTimeout and decide what a timeout means. Without it the handler waits with no limit
  5. Retry ingress errors only on 408, 425, 429 or 5xx, and only when x-restate-error-source isn't invocation

Questions

Which is better for AI agents, Permit MCP Gateway or Restate?

Restate scores 73.3 (BB) on agent readiness against Permit MCP Gateway's 54.1 (C), and leads in 5 of 7 scored categories. Permit MCP Gateway leads on security & auth.

Other comparisons with Permit MCP Gateway or Restate

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.