---
title: "Arcade.dev Alternative — Zuplo"
description: "Arcade.dev alternative: an independent, code-first MCP gateway you run on your own cloud. OAuth 2.1, per-user brokering, and OpenAPI-to-MCP conversion."
canonicalUrl: "https://zuplo.com/api-gateways/arcade-alternative-zuplo"
pageType: "comparison"
competitor: "Arcade.dev"
subtitle: "The Independent, Code-First MCP Gateway Teams Choose Over a US-Only, Closed-Runtime Tool Catalog"
---

# Zuplo vs Arcade.dev

_The Independent, Code-First MCP Gateway Teams Choose Over a US-Only, Closed-Runtime Tool Catalog_

> Arcade.dev alternative: an independent, code-first MCP gateway you run on your own cloud. OAuth 2.1, per-user brokering, and OpenAPI-to-MCP conversion.

## Why Teams Move Away from Arcade.dev

### Arcade Cloud is US-only with no multi-region option

All of Arcade Cloud's infrastructure — control plane, MCP server clusters, data storage and processing — is located in the United States, per the deployment docs. There is no EU region, no APAC region, no managed multi-region SaaS. Teams with sovereignty or residency requirements are pushed to self-hosted Kubernetes — which is itself an Enterprise-tier offering, deployed as a closed binary via Helm chart.

### Audit logs, RBAC, and SSO are Enterprise-tier-only

Per the published pricing page, Audit Logs, Role-Based Access Control, SSO, and SAML for the Arcade admin console are all Enterprise-tier features. Hobby and Growth tiers share a single tenant with no isolation. For a product whose entire pitch is enterprise authorization, basic enterprise governance starts at a sales call.

### Tool training data collection is opt-out by default

Arcade Cloud collects tool queries, tool execution inputs, and tool execution results for ML training by default, with retention up to 5 years. Opt-out is org-level and takes effect immediately — but the default is opt-in. For regulated workloads handling customer payloads through tools like Stripe, Salesforce, or HubSpot, this is a non-trivial default to inherit. (Source: Arcade Cloud docs.)

### Engine is a closed binary and tools went closed-source in July 2025

The Arcade Engine is distributed as a closed Docker image and binary — not source-buildable. In July 2025 Arcade transitioned most MCP server source code out of the public <code>arcade-ai</code> monorepo to closed-source, with source "available upon request" only for paying customers (per the public changelog). The OSS framework (<code>arcade-mcp</code>) remains MIT-licensed, but the runtime and tool catalog you actually depend on are not.

### Hooks are webhooks, not in-process policies

Arcade's Contextual Access extensions (Access, Pre-Execution, Post-Execution) are external webhooks that you host yourself, with a default 5-second timeout per call. Every PII redaction, allow/deny check, or payload transform adds webhook round-trip latency. There is no first-party JavaScript or WASM sandbox for policy code — policies are arbitrary code in an HTTP endpoint you operate.

### No native GitOps or PR preview environments

The documented deployment workflow is <code>arcade deploy</code> from the CLI to push a local MCP server to Arcade Cloud. There is no Git-driven promotion model, no per-branch preview environments, and no first-class CI/CD integration. For teams that expect branch = environment, PR = live preview, push = global deploy, the Arcade workflow is a step back.

## About Arcade.dev

Arcade.dev is an MCP runtime and tool-calling platform founded in 2024 by Alex Salazar (former VP/GM of New Products at Okta and founder/CEO of Stormpath) and Sam Partee (former Principal AI Engineer at Redis). The product positions itself as "The MCP Runtime for Production AI Agents" and explicitly argues against the API gateway model — their position is that the agent's tool-execution layer, not a proxy, is the right control point. Architecturally it is the **Arcade Engine** (closed binary), a catalog of pre-built MCP servers (~157 servers covering thousands of tools across Google, GitHub, Slack, Salesforce, HubSpot, Stripe, and others), an MCP Gateway URL that federates them, and Contextual Access webhook hooks for per-tool policy. Arcade raised a $12M seed in March 2025 and a $60M Series A in June 2026, repositioning as "the secure action layer for enterprise AI agents." The company achieved SOC 2 Type II in 2025. Arcade Cloud runs in US-East (Ohio) only; multi-region requires self-hosting.

## Why Choose Zuplo

Zuplo is the independent, code-first MCP gateway built on the same TypeScript-programmable runtime that already runs your APIs. Every MCP request passes through policies you write as code — OAuth 2.1 inbound, RFC 8707 resource-indicator validation, per-user OAuth brokering to upstreams with encrypted token vaulting, capability filtering, prompt-injection detection, payload redaction in logs. Deploy on the managed edge across 300+ POPs by default, on managed dedicated single-tenant in your cloud account, or self-hosted on Kubernetes — including EU and APAC regions for residency. Bring your own IDP via Auth0 or any OIDC provider. Configuration lives in Git with PR preview environments. Same runtime extends to a full API gateway, AI Gateway, and developer portal — one TypeScript surface, no vendor lock-in to a US-only SaaS or a closed engine binary.

## Feature Comparison

### Product Category and Architecture

_Programmable gateway with full API surface vs. MCP-only runtime with curated tool catalog._

- **Zuplo** — Independent, code-first API and MCP gateway built on a TypeScript runtime. Same programmable model handles MCP traffic, AI/LLM routing, and full API management. The <a href="/docs/mcp-gateway/introduction">MCP Gateway</a> and <a href="/docs/mcp-server/introduction">MCP Server handler</a> (OpenAPI-to-MCP) are generally available on every tier including Free.
- **Arcade.dev** — MCP runtime focused on per-user OAuth brokering and a managed tool catalog. Explicitly argues against the gateway-as-control-point model. Architecturally a closed-binary Engine, a catalog of ~157 MCP servers covering thousands of tools, an MCP Gateway URL that federates them, and webhook hooks for custom policy. (Source: Arcade blog.)

### Deployment Model and Data Residency

_Managed edge, dedicated cloud, and self-hosted with region pinning vs. US-only SaaS with self-host as the only non-US path._

- **Zuplo** — Managed Edge across 300+ data centers by default. Managed Dedicated single-tenant on AWS (full VPC integration), Azure (private networking), GCP (custom networking), Akamai Connected Cloud, Equinix, or TerraSwitch. Self-Hosted on any Kubernetes cluster via Helm chart. Region pinning available for sovereignty and data residency requirements, including EU and APAC.
- **Arcade.dev** — Arcade Cloud runs in US-East (Ohio) only — control plane, MCP server clusters, and data storage are all in the United States. No multi-region managed SaaS option. EU/APAC residency requires self-hosting on Kubernetes via Helm chart — an Enterprise-tier offering, deployed as a closed binary, not source-built. (Source: Arcade Cloud docs.)

### Audit Logs, RBAC, and SSO Tier Gating

_OIDC SSO and policy controls on all paid tiers vs. governance basics behind an Enterprise sales call._

- **Zuplo** — OIDC SSO via Auth0 presets or any OIDC provider on all paid tiers. Per-user JWT claims drive per-team and per-tenant authorization at the gateway edge. SAML SSO available as an Enterprise add-on. Audit logs and penetration test reports under NDA available as Enterprise add-ons. Per-route capability filtering and JWT-claim-driven authorization on all paid tiers — no sales call required.
- **Arcade.dev** — Audit Logs, Role-Based Access Control, SSO, and SAML are all Enterprise-tier-only per the published pricing page. Hobby and Growth tiers share a single tenant with no isolation. End-user identity (User Sources) is OIDC-only; SAML is not available for User Sources, only for the Arcade admin console — and only at Enterprise.

### Programmable Policies (Code vs. Webhooks)

_In-runtime TypeScript policies vs. external webhook hooks with per-call RTT and timeouts._

- **Zuplo** — Custom policies are TypeScript code running in the edge runtime alongside the gateway, with full type-safe access to <code>ZuploRequest</code> / <code>ZuploContext</code>. <code>custom-code-inbound</code> and <code>custom-code-outbound</code> policies compose anywhere in the inbound or outbound chain. Same runtime as the rest of the Zuplo platform. No webhook RTT, no separate service to operate.
- **Arcade.dev** — Contextual Access "Logic Extensions" (Access, Pre-Execution, Post-Execution hooks) are external webhooks that you host yourself, with a default 5-second timeout per call. Every redaction, allow/deny check, or payload transform adds webhook round-trip latency. No first-party JavaScript or WASM sandbox — policies are arbitrary code in an HTTP endpoint you stand up and run.

### GitOps and Developer Workflow

_Branch-mapped environments with PR previews and sub-20s global deploys vs. CLI-push workflow._

- **Zuplo** — Git is the source of truth. Every branch maps to an environment — push to <code>main</code> and deploy main, push to <code>feature-auth</code> and get a feature-auth environment automatically. PR preview environments let reviewers test changes against a live gateway before merging. Global deploys to 300+ POPs in under 20 seconds. GitHub native integration with auto-deploys; GitLab, BitBucket, and Azure DevOps source-control integration available on Enterprise.
- **Arcade.dev** — The documented workflow is <code>arcade deploy</code> from the CLI to push a local MCP server to Arcade Cloud. No Git-driven promotion model, no per-branch preview environments, and no first-class CI/CD integration in the public docs. Branch = environment, PR = live preview is not the Arcade pattern.

### Tool Catalog and Custom Tools

_OpenAPI-to-MCP + open SDK vs. pre-built closed-source catalog with mixed tool quality tiers._

- **Zuplo** — Auto-generates MCP servers from any OpenAPI specification — Finsolutia stood up a working MCP server in under 24 hours with zero code changes to their existing REST APIs. <code>@zuplo/mcp</code> is published on npm as a fetch-API-based, remote-server-first TypeScript SDK that runs on Zuplo, Node, Deno, and Workerd. Build custom tools in TypeScript with full <code>@zuplo/runtime</code> type safety. Independent of any pre-built catalog — federate whichever upstream MCP servers your team actually uses.
- **Arcade.dev** — ~157 pre-built MCP servers covering thousands of tools, split into "Arcade Optimized" (hand-crafted, LLM-friendly), "Arcade Unoptimized" (auto-generated from raw APIs — Arcade's own catalog notes these "may require customization" before production use), Verified, Community, and Auth Provider designations. In July 2025, most tool source code moved out of the public <code>arcade-ai</code> repo to closed-source. Custom tools built with the Python <code>arcade-mcp-server</code> SDK or Java/Spring AI (TypeScript SDK is early).

### Per-User OAuth Brokering and Token Vault

_Per-user brokering with transparent refresh and reconsent vs. production-grade requires registering your own OAuth apps._

- **Zuplo** — Per-user OAuth brokering with encrypted token vaulting, keyed to the user's subject ID. Token refresh is transparent — when the upstream returns a 401 mid-request, the gateway refreshes the upstream credential and retries once. Reconsent flow built in — when an upstream policy revokes a refresh token, the next request surfaces <code>reconsent_required</code> and the user re-authorizes through the same browser flow. RFC 7009 token revocation published at <code>/oauth/revoke</code>.
- **Arcade.dev** — Per-user OAuth brokering with AES-256 application-layer encryption on tokens before persisting to storage. Auth provider catalog includes Asana, Atlassian, Discord, Dropbox, GitHub, Google, HubSpot, Linear, LinkedIn, Microsoft, Notion, Reddit, Slack, Spotify, Twitch, X, Zoom, plus generic OAuth 2.0. Note: Arcade's default OAuth apps cannot be used in production multi-user apps — you must register your own OAuth apps per provider and add them to Arcade. (Source: production auth docs.)

### MCP Spec Compliance

_Mandatory RFC 8707 resource-indicator enforcement on MCP 2025-11-25 vs. auth docs at 2025-06-18 with no documented RFC 8707 binding._

- **Zuplo** — Tracks the MCP <code>2025-11-25</code> revision for authorization and protocol. Streamable HTTP transport on POST; GET returns 405. Stateless gateway — no MCP session affinity required, scales horizontally on the edge. RFC 8707 resource indicators mandatory. RFC 7636 PKCE S256 required. OAuth Client ID Metadata Documents (CIMD) preferred over Dynamic Client Registration.
- **Arcade.dev** — Arcade co-authored the URL Elicitation SEP that landed in the MCP <code>2025-11-25</code> revision, in collaboration with Anthropic, and the <code>arcade-mcp</code> framework supports it by default. Its published MCP authorization docs, however, reference the <code>2025-06-18</code> spec revision and explicitly claim RFC 6750 (Bearer tokens) and RFC 9728 (Protected Resource Metadata); RFC 8707 resource indicators are not mentioned in those public docs. Streamable HTTP transport.

### Open Source Footprint

_Open SDK plus source-available platform vs. open framework with closed Engine and closed tool catalog._

- **Zuplo** — <code>@zuplo/mcp</code> open-source TypeScript SDK published on npm, designed to be "minimum common API" compliant per WinterTC. Inspired by and attributing the official <code>modelcontextprotocol/typescript-sdk</code>. <a href="https://github.com/zuplo/zudoku" target="_blank" rel="noopener noreferrer">Zudoku</a> developer portal (MIT, ~540 GitHub stars). 81 public repos on the GitHub org. Source-available platform with TypeScript escape hatches.
- **Arcade.dev** — <code>arcade-mcp</code> framework is MIT-licensed (~940 GitHub stars) and is genuine OSS. The Arcade Engine itself is a closed binary distributed via Brew, APT, and a private Docker image — no source repo published. In July 2025, most MCP server source code was moved out of the public <code>arcade-ai</code> monorepo to closed-source — "source code remains available upon request for our paying customers."

### Identity Provider Integration

_MCP OAuth presets across major IDPs + OIDC + Enterprise SAML vs. OIDC-only for end users with admin SAML behind Enterprise._

- **Zuplo** — First-class MCP OAuth presets for Auth0, Amazon Cognito, Clerk, Google, Keycloak, Logto, Microsoft Entra ID, Okta, OneLogin, PingOne, and WorkOS. Generic OIDC for anything else — drop in your issuer URL and your customers click Connect. SAML SSO available as an Enterprise add-on. Per-user JWT claims accessible from any policy via <code>request.user.data</code>.
- **Arcade.dev** — End-user identity ("User Sources") is OIDC-only — Entra ID, Okta, Auth0, Clerk, Stytch, or "a similar OIDC provider." SAML is not supported for User Sources. SSO and SAML for the Arcade admin console are Enterprise-tier features. Custom subject claim configurable; PKCE required on User Source OIDC flow.

### AI Gateway and Guardrails

_Built-in multi-provider AI Gateway with budgets and guardrails vs. framework integrations only._

- **Zuplo** — Full <a href="/ai-gateway">AI Gateway</a> alongside the MCP Gateway. Multi-provider routing across OpenAI, Anthropic, Google (Gemini), and Mistral via a Universal API, with automatic fallback when a provider rate-limits or errors. Token-based rate limits and hierarchical dollar budgets (org → team → sub-team → app) with Enforce or Warn modes. Semantic caching, prompt injection detection, and the Akamai AI Firewall partnership policy (DLP, toxic content filtering, adversarial protection). Secret masking on outbound responses.
- **Arcade.dev** — No first-class AI Gateway product. Arcade is model-agnostic and integrates with LangChain, CrewAI, Google ADK, AG2, OpenAI Agents, Mastra, Vercel AI, TanStack AI, and Spring AI — but routing, budgets, semantic caching, and provider guardrails are not part of the Arcade platform. You compose Arcade with whichever LLM router and guardrail vendor you already use.

### Observability and Audit Trail

_Typed MCP lifecycle events with named destination plugins on all paid tiers vs. admin-action audit log behind Enterprise._

- **Zuplo** — Typed analytics events across the MCP request lifecycle — <code>mcp_request</code>, <code>capability_invocation</code>, <code>auth_event</code> — with seven outcome classes and per-event <code>subjectId</code>, <code>upstreamServerId</code>, latency split gateway-vs-upstream, failure origin, and reason code. Structured logs export to Datadog (native plugin), AWS CloudWatch, Dynatrace, Google Cloud Logging, Loki, New Relic, Splunk, Sumo Logic, or any OTLP-compatible destination (Honeycomb, Tempo, self-hosted Jaeger). Audit logs available as an Enterprise add-on.
- **Arcade.dev** — Audit logs cover administrative actions only (API_KEY, PROJECT, GATEWAY, HOOK, etc.) — the documented audit-log REST API has no <code>TOOL_CALL</code> resource type, so per-tool-call audit trails route through a separate OpenTelemetry pipeline. Audit logs are an Enterprise-tier feature. Execution logs are stored as Application data with user-controlled retention.

### Data Handling and Training Defaults

_No payload training, SOC 2 Type II, pentest reports under NDA vs. opt-out tool I/O training data with 5-year retention._

- **Zuplo** — Customer data is encrypted at rest. Zuplo does not train models on customer payloads. SOC 2 Type II audited; penetration test reports available under NDA on Enterprise.
- **Arcade.dev** — Arcade Cloud collects "tool queries, tool execution inputs, tool execution results" for ML training by default, with retention up to 5 years. Opt-out is org-level and takes effect immediately — but the default is opt-in. For tools that handle Stripe payloads, Salesforce records, HubSpot CRM data, or Microsoft 365 content, that is a non-trivial default to inherit. (Source: Arcade Cloud docs.)

### Compliance Posture

_SOC 2 Type II with Enterprise audit logs and 24/7 hotline vs. SOC 2 since Aug 2025 with no broader compliance claims yet._

- **Zuplo** — SOC 2 Type II via <a href="https://trust.zuplo.com/" target="_blank" rel="noopener">Trust &amp; Compliance Report</a>, third-party penetration test reports available under NDA, audit logs across the control plane (Enterprise add-on), 24/7/365 emergency hotline available on Enterprise. Up to 99.999% uptime SLA.
- **Arcade.dev** — SOC 2 Type II achieved in 2025. HIPAA, FedRAMP, ISO 27001, and PCI-DSS are not currently claimed — Arcade's own SOC 2 post concedes: "Today's SOC 2 Type 2 is table stakes."

### SDK Languages and Framework Coverage

_TypeScript-first runtime aligned with edge JS standards vs. Python-first SDK with broad LLM framework integrations._

- **Zuplo** — TypeScript runtime with <code>@zuplo/runtime</code>, <code>@zuplo/mcp</code>, and <code>zuplo</code> on npm. Browser-based authoring in the Zuplo portal with Working Copy environments. Local development via the CLI. Drop-in compatibility with the OpenAI SDK <code>baseURL</code> for AI Gateway traffic.
- **Arcade.dev** — Python is the primary SDK surface (<code>arcade-mcp-server</code>) for authoring custom tools, with a Java/Spring AI SDK as well. TypeScript MCP server framework (<code>arcade-mcp-ts</code>) exists but is early. Client SDKs in Python, Node, Go, and Java. Built-in framework integrations for AG2, CrewAI, Google ADK, LangChain, OpenAI Agents, Mastra, Vercel AI, TanStack AI, Spring AI.

## FAQ

**How is Zuplo's MCP Gateway different from Arcade.dev's runtime?**

Zuplo is a programmable API and MCP gateway built on a TypeScript runtime that runs on the managed edge, on your dedicated cloud, or on your own Kubernetes cluster. Every MCP request passes through policies you write as code — OAuth 2.1 inbound, RFC 8707 resource-indicator validation, per-user OAuth brokering to upstreams, capability filtering, prompt injection detection, and secret masking. Arcade is a US-only SaaS MCP runtime focused on a curated tool catalog (~157 MCP servers, thousands of tools) with per-user OAuth handled inside their closed-binary Engine. Custom policies on Arcade are external webhooks ("Contextual Access hooks") that you host and operate yourself, with a default 5-second timeout per call. Both products solve the same enterprise problem from different angles — Zuplo's wedge is code-first programmability, multi-cloud deployment, and a full API gateway on the same runtime.

**Can I keep Arcade and put Zuplo in front of it?**

Yes. Some teams use Arcade for its pre-built tool catalog and put Zuplo in front for governance — OAuth 2.1 inbound, RFC 8707 resource indicators, capability filtering, audit-grade analytics, and the dollar budgets / token rate limits from Zuplo's AI Gateway. The Arcade Engine becomes one more upstream MCP server registered in your Zuplo project. This is a common interim posture before consolidating to Zuplo entirely at the next renewal.

**Why does Arcade Cloud only run in the United States?**

Per Arcade's deployment docs, "all of Arcade Cloud's infrastructure is located in the United States, including data storage and processing." There is no EU region, no APAC region, no multi-region SaaS option. The documented answer for non-US residency is "deploy Arcade on-premises or in your preferred cloud region using a self-hosted deployment" — but self-hosted Kubernetes is an Enterprise-tier offering and the Engine itself ships as a closed binary, not buildable from source. Zuplo's Managed Dedicated tier deploys single-tenant on AWS, Azure, GCP, Akamai Connected Cloud, or Equinix with explicit region pinning for sovereignty and data residency.

**What about Arcade's argument that gateways are not the right control point?**

Arcade's framing — "the gateway era was defined by the proxy as the control point; the agentic era is defined by the runtime" — is a real argument. But it is also a category-defining argument made by a vendor whose product is in that category. In practice, Zuplo's MCP Gateway <em>is</em> the runtime layer for MCP traffic: it terminates the inbound OAuth 2.1 flow, evaluates per-user authorization, resolves the upstream credential from the encrypted vault, applies capability filtering, and forwards the JSON-RPC call. The control plane and the runtime live on the same TypeScript edge. The difference is that Zuplo's runtime is programmable in code, multi-cloud, and runs on the same platform as your APIs — and Arcade's runtime is a closed binary in a US-only SaaS.

**Does Zuplo collect my tool inputs and outputs for ML training?**

No. Zuplo does not train models on customer payloads. Arcade Cloud, by default, collects "tool queries, tool execution inputs, and tool execution results" for ML training with retention up to 5 years; opt-out is org-level and takes effect immediately, but the default is opt-in. For workloads handling Stripe payloads, Salesforce records, HubSpot CRM data, or Microsoft 365 content, this is a non-trivial default to inherit. (Source: Arcade Cloud docs.)

**How does pricing compare?**

Zuplo prices on API gateway traffic. Free includes 100K requests/month with 5 environments, 100 consumers, and 1K MCP tool calls; Builder is $25/month with up to 1M requests, 10 environments, and 10K MCP tool calls; Enterprise starts at $1,000/month on annual contract with 99.5% SLA at entry, up to 99.999% available, and volume discounts past 1M requests. Arcade meters three things separately: user "challenges" (auth events), tool executions (split into Standard $0.01 each and Pro $0.50 each past included quotas), and hosted MCP server hours ($0.05/hour past one free server). The Arcade $25/month Growth tier includes 600 challenges, 2,000 Standard executions, and 100 Pro executions; SSO, RBAC, audit logs, and dedicated tenancy are Enterprise-only.

**Is the MCP Gateway available today?**

Yes. The Zuplo MCP Gateway and <a href="/docs/mcp-server/introduction">MCP Server handler</a> (OpenAPI-to-MCP conversion) are generally available on every tier, including Free. Finsolutia used the MCP Server handler to ship a working MCP server in hours. See the <a href="/mcp-gateway">MCP Gateway product page</a> to get started.

**Can I self-host Zuplo?**

Yes. Self-Hosted Zuplo runs on any Kubernetes cluster, deployed via Helm chart, in either Hybrid mode (gateway self-hosted, shared services like rate limiting still managed) or Full Self-Hosted (everything in your infrastructure). Self-hosting is an Enterprise tier. Managed Dedicated single-tenant on AWS (with VPC integration), Azure (private networking), GCP, Akamai Connected Cloud, Equinix, or TerraSwitch is also an Enterprise option, with explicit region pinning for sovereignty. Arcade's self-hosted option is also Enterprise-tier and ships as a closed Engine binary via Helm chart and Docker image — not source-buildable.
