Last updated October 19, 2026. Limits, quotas, and prices were checked against Cloudflare, Vercel, and AWS documentation and pricing pages on that date. Enterprise contracts can differ.
Cloudflare vs Vercel vs AgentCore comes down to who calls your MCP server and where its data lives. Cloudflare Workers fits public, global, stateless servers with many users. Vercel fits a server that ships inside a Next.js app. Amazon Bedrock AgentCore Runtime fits tools that touch AWS data or need an isolated session per user.
None of the three handles every case. A tool that must answer synchronously after more than 15 minutes outgrows Vercel Pro and AgentCore Runtime, and Vercel Hobby is limited to personal, non-commercial use. Each section below gives the deciding limit, its source, and the date we checked it, October 19, 2026.
A remote Model Context Protocol (MCP) server is a service that exposes tools to agents and clients such as Claude, ChatGPT, and Cursor over Streamable HTTP. New to the protocol? Start with MCP explained. No vendor paid for placement, per our editorial standards and disclosure policy.
TL;DR
- Cloudflare Workers: best for public, stateless servers. Workers Paid costs $5 per month with 10 million requests and 30 million CPU milliseconds included, and HTTP requests have no wall-clock limit.
- Vercel: best when the MCP route lives in a Next.js app. Pro is $20 per month with a $20 usage credit, and functions run up to 800 seconds.
- AgentCore Runtime: best for AWS data and per-user isolation. Each session gets its own microVM for up to 8 hours, with inbound JSON Web Token (JWT) auth.
- Auth: Cloudflare can issue OAuth tokens itself, AgentCore validates tokens from Cognito or Auth0, and Vercel only verifies tokens from an authorization server you run.
- Cost at 1 million short calls a month: about $5 on Cloudflare, $20 on Vercel Pro, and roughly $29 on AgentCore under our session assumptions.
- Long calls: AgentCore caps synchronous requests at 15 minutes, Vercel Pro at 800 seconds, and Cloudflare caps CPU time at 5 minutes per request.
How We Compared Cloudflare, Vercel, and AgentCore
We compared the three platforms on the jobs that break remote MCP servers in production: authentication, session state, long tool calls, cost, scale, and private network access. Every limit and price comes from first-party documentation or pricing pages checked October 19, 2026, and none of the three vendors reviewed this article before publication.
- Same server, three hosts: we read each vendor’s official remote MCP guide and noted the entry point, transport, and auth helper it documents.
- Hard limits over marketing: request timeouts, memory, payload caps, and default quotas come from limits and quota pages, not product pages.
- Costs as list-price math: we priced two traffic levels with stated assumptions so you can rerun the numbers for your own workload.
- 2026-07-28 spec fit: we checked how each platform handles the stateless MCP revision released on July 28, 2026.

Cloudflare vs Vercel vs AgentCore at a Glance
Cloudflare Workers runs MCP servers as stateless isolates across its global network, Vercel runs them as Fluid compute functions in one region by default, and AgentCore Runtime gives each session a dedicated microVM inside an AWS Region. That one design choice explains most differences in auth, limits, and cost in the table below.
Decision kernel: Choose Cloudflare Workers when the server is public, stateless, and called by many users in many regions, because isolates bill CPU time and nothing for idle wall time. Choose Vercel when the MCP route belongs to an existing Next.js app, because it deploys with the app and shares its previews and rollbacks. Choose AgentCore Runtime when tools read AWS data or each user needs an isolated environment. None of the three suits a tool that must hold one synchronous request open longer than 15 minutes without a streaming or job pattern.
| Factor (Oct 19, 2026) | Cloudflare Workers | Vercel Functions | AgentCore Runtime |
|---|---|---|---|
| Compute model | V8 isolates on Cloudflare’s global network | Fluid compute, single region by default (iad1) | Dedicated microVM per session in one AWS Region |
| MCP starting point | createMcpHandler() in the Agents SDK | mcp-handler 2.1.1 route in Next.js | MCP server container at 0.0.0.0:8000/mcp |
| Languages in the MCP guide | TypeScript, JavaScript | TypeScript, JavaScript (Node.js 20+) | Python guide; any container |
| Inbound auth | OAuth provider library or Cloudflare Access | Verifies tokens; you supply the authorization server | CUSTOM_JWT authorizer (Cognito, Auth0) |
| Session state | Stateless handler; McpAgent deprecated | Stateless; v2 dropped Redis config | Stateless or stateful mode |
| Longest synchronous request | No wall-clock limit; CPU up to 5 min | 300s default, 800s Pro, 1,800s beta | 15 minutes; streaming up to 60 min |
| Memory | 128 MB per isolate | 2 GB default, 4 GB max on Pro | Up to 2 vCPU and 8 GB per session |
| Request body cap | 100 MB on Free and Pro zones | 4.5 MB | 100 MB |
| Private network access | Workers VPC (beta) over Cloudflare Tunnel | Secure Compute (Enterprise) or Static IPs | VPC mode through network interfaces in your subnets |
| Entry price | Free 100K requests/day; Paid $5/mo | Hobby $0 (non-commercial); Pro $20/mo | Pay per use; up to $200 Free Tier credits |
Verdict: Cloudflare wins on cost and global reach for stateless public servers, Vercel wins on developer workflow for Next.js teams, and AgentCore wins on isolation and AWS integration. The weakest cells matter most: 128 MB of memory on Workers, a 4.5 MB body cap on Vercel, and a 25 sessions per second creation quota on AgentCore.
Which Platform Handles MCP Authentication Best?
Cloudflare handles MCP authentication most completely, because its OAuth provider library can issue tokens and run the authorization endpoints inside the Worker. AgentCore validates JSON Web Tokens from an identity provider you configure, such as Amazon Cognito or Auth0. Vercel verifies bearer tokens and publishes metadata, but you must run the authorization server elsewhere.
Cloudflare: issue tokens in the Worker or put Access in front
The Cloudflare remote MCP guide wraps the server in an OAuthProvider with /authorize, /token, and /register endpoints, using GitHub, Google, Slack, Auth0, WorkOS, or another OAuth 2.0 provider for sign-in. The workers-oauth-provider library stores grants in Workers KV. Teams that already use Cloudflare Access can require Access policies instead, including identity provider, IP, and device checks.
Vercel: verify tokens and publish protected resource metadata
Vercel documents withMcpAuth for verifying bearer tokens and protectedResourceHandler for the /.well-known/oauth-protected-resource endpoint. The mcp-handler package does not issue tokens or run an authorization server. Per the Vercel MCP deployment docs, requests without a valid token get 401, and a valid token that lacks a required scope gets 403.

AgentCore: JWT authorizer at the AWS endpoint
AgentCore scaffolds a CUSTOM_JWT authorizer from an OpenID Connect discovery URL and a list of allowed clients. When a request arrives without a bearer token, the AgentCore MCP guide says the service returns 401 with a WWW-Authenticate header that points clients to protected resource metadata. Clients call an AWS endpoint that embeds the URL-encoded runtime Amazon Resource Name (ARN).
Verdict: Pick Cloudflare when you want one deployable unit that handles sign-in, tokens, and tools. Pick AgentCore when Cognito, Auth0, or another OpenID Connect provider already issues your tokens. Pick Vercel only when an authorization server already exists, because building one is the largest hidden task on that platform. For gateway-level policy across many servers, compare MCP gateways.
How Do Stateless and Stateful MCP Servers Differ on Each Platform?
All three platforms now default to stateless MCP servers, which matches the 2026-07-28 specification that removed protocol sessions and the Mcp-Session-Id header. AgentCore is the only one of the three that still documents a stateful mode, keeping session state inside one microVM for features such as elicitation, sampling, and progress notifications.
Per the specification changelog, servers that need cross-call state now pass explicit, server-minted handles as tool arguments. The same release deprecates the Sampling feature and replaces server-initiated elicitation requests with a Multi Round-Trip Requests pattern, where the client retries the original call with the requested input.
Cloudflare moved new servers off Durable Object sessions
Cloudflare’s guide recommends createMcpHandler() for new stateless tools and marks McpAgent, the Durable Object based class, as deprecated. The quick-deploy templates still use the deprecated path, so start from the stateless example instead. Durable Objects remain a sound place for application state you address by handle.

Vercel removed Redis and SSE from mcp-handler v2
Version 2 of mcp-handler builds on @modelcontextprotocol/server v2 and removes the legacy HTTP plus SSE transport and its Redis configuration. A Vercel MCP route is therefore a plain stateless function, and any state belongs in an external store such as a database or cache from the Vercel Marketplace.
AgentCore still offers stateful sessions
AgentCore recommends stateless_http=True for basic servers and stateless_http=False for servers that use elicitation, sampling, or progress notifications. AgentCore stateful mode serves clients on older MCP revisions, since the 2026-07-28 spec deprecates Sampling and redesigns elicitation. The guide we read on October 19, 2026, still describes the platform adding an Mcp-Session-Id header for routing.

Verdict: build new servers stateless on any of the three, and keep cross-call data behind explicit handles in an external store. Choose AgentCore stateful mode only when you must serve clients that still depend on server-initiated sampling or elicitation, and plan to retire it as those clients upgrade.
Which Platform Runs Long MCP Tool Calls?
AgentCore Runtime runs the longest MCP tool calls with full isolation: synchronous requests last up to 15 minutes, streaming connections up to 60 minutes, and asynchronous jobs up to 8 hours. Cloudflare has no wall-clock limit on HTTP requests but caps CPU at 5 minutes. Vercel Pro stops a function at 800 seconds unless you join the 1,800 second beta.
| Limit (Oct 19, 2026) | Cloudflare Workers Paid | Vercel Pro | AgentCore Runtime |
|---|---|---|---|
| Synchronous request | No wall-clock limit while the client stays connected | 800s max (300s default) | 15 minutes |
| CPU per request | 30s default, 5 min max | Bounded by duration | Bounded by session hardware |
| Streams and background work | Durable Objects and Workflows steps have no wall limit | Vercel Workflows for longer runs | Streaming 60 min; async jobs 8 hours |
| Session lifetime | Not applicable (stateless isolates) | Not applicable (stateless functions) | 15 min idle default; 8 hour max |
| Interruptions to plan for | Runtime updates give requests 20 min to finish | 504 at the duration limit | 409 retry while a session starts or stops |
Verdict: For any tool that can run past five minutes, return a job handle and let the client poll, whichever platform you choose. The 2026-07-28 spec moves tasks into an official extension that polls with tasks/get, and the same release removes SSE stream resumability, so a broken stream loses the in-flight request.

Each platform exposes the deciding limit as configuration. The snippet uses values from the Cloudflare Workers limits, the Vercel Functions limits, the AgentCore quotas, and the AgentCore session guide.
// Cloudflare Workers: wrangler.jsonc, raise the CPU limit to 5 minutes
{ "limits": { "cpu_ms": 300000 } }
// Vercel: app/api/mcp/route.ts, Pro maximum without the beta
export const maxDuration = 800;
# AgentCore Runtime (boto3): idle timeout and max lifetime in seconds
lifecycleConfiguration={"idleRuntimeSessionTimeout": 300, "maxLifetime": 28800}
What Does Each Platform Cost for MCP Traffic?
For short MCP tool calls, Cloudflare Workers costs the least, Vercel Pro sits at its $20 monthly fee until usage passes the included credit, and AgentCore Runtime costs the most because it bills memory for the life of each session. The gap narrows when tools are CPU heavy or sessions are short.

The table assumes each tool call uses 20 ms of CPU and stays open for 400 ms while it waits on an API. On Vercel we priced the default 2 GB function in iad1 with no instance sharing, which overstates memory. On AgentCore we assumed 10 calls per session and 0.5 GB billed for two minutes per session. Rates come from Cloudflare Workers pricing, Vercel Fluid compute pricing, and AgentCore pricing.
| Monthly list cost (Oct 19, 2026) | 1M tool calls | 10M tool calls | What drives the bill |
|---|---|---|---|
| Cloudflare Workers Paid | $5.00 (inside included usage) | $8.40 ($5 + $3.40 CPU) | Requests and CPU milliseconds; no duration charge |
| Vercel Pro (iad1) | $20.00 ($3.67 usage inside credit) | About $36.70 | Provisioned memory, then Active CPU and $0.60 per 1M invocations |
| AgentCore Runtime v2 | About $28.90 | About $289 | GB-hours across each session at $0.0169, CPU at $0.1276 per vCPU-hour |
Verdict: Memory time drives the AgentCore bill, so session length matters more than call count. Shortening the idle timeout or batching calls into fewer sessions moves the AgentCore figure the most. Vercel costs vary by region, with Active CPU at $0.128 per hour in iad1 and $0.221 in São Paulo.

Which Platform Scales and Reaches Private Data?
Cloudflare scales furthest by default, with no general limit on requests per second. Vercel auto-scales to 30,000 concurrent executions on Hobby and Pro. AgentCore starts at 5,000 active sessions in US East (N. Virginia) and US West (Oregon), 2,500 elsewhere, and 25 new sessions per second, all adjustable through Service Quotas.
- Cloudflare: Workers VPC reaches private APIs and databases through an outbound Cloudflare Tunnel with no public IP. It is in beta and free on all Workers plans as of October 19, 2026.
- Vercel: Static IPs cost $100 per project per month on Pro, and Secure Compute plus running Vercel compute in your own AWS account are Enterprise options, per the Vercel pricing page.
- AgentCore: VPC mode places elastic network interfaces in your subnets, so tools reach Amazon RDS, internal APIs, and file systems without leaving AWS.
A public MCP server that onboards many users at once can hit the AgentCore session creation quota before any CPU limit. Request the quota increase before launch, or front the server with a gateway. Our Kong vs AWS AgentCore vs Docker comparison covers the AgentCore Gateway side of that design.
Who Should Choose Cloudflare, Vercel, or AgentCore?
The right choice follows the team that owns the server and the data its tools touch. Use the three profiles below as starting points, and treat the disqualifiers as hard stops, because each one names a limit that the platform cannot configure away as of October 19, 2026.
Choose Cloudflare Workers if
- You ship a public MCP server to many users in many regions and want near-zero idle cost.
- You want sign-in, token issuance, and tools in one Worker.
- Skip it when: a tool needs more than 128 MB of memory or a library that only runs on full Node.js or Python.
Choose Vercel if
- The MCP route belongs to a Next.js app that already deploys on Vercel, with previews, rollbacks, and rolling releases.
- An authorization server such as Auth0, Clerk, or WorkOS already issues your tokens.
- Skip it when: payloads exceed 4.5 MB, the project is commercial and on Hobby, or tools need private network access without an Enterprise plan.
Choose AgentCore Runtime if
- Tools read AWS data, run inside a VPC, or need a separate microVM per user session.
- You must serve older MCP clients that rely on stateful features such as elicitation.
- Skip it when: you need a cheap public endpoint for thousands of anonymous users, or your tools are SaaS connectors better bought from Composio, Arcade, or Nango.
How Do You Move an MCP Server Between These Platforms?
Moving an MCP server between Cloudflare, Vercel, and AgentCore is straightforward when tool logic stays separate from the transport and auth wrappers. The protocol is the same Streamable HTTP everywhere, so most migration work sits in auth configuration, state storage, and the deploy pipeline. Keep these four habits from day one.
- Write each tool as a plain function with typed inputs, then register it in a thin platform adapter.
- Keep cross-call state in an external store addressed by explicit handles, as the 2026-07-28 spec expects.
- Publish protected resource metadata and validate standard bearer tokens, so clients see the same OAuth flow on any host.
- Test with MCP Inspector against each candidate host before migrating clients, and review tool safety with the ToFu MCP bug study.
If you would rather not host connectors at all, our Composio alternatives guide and AI agent integration platforms roundup cover managed options. Questions about your own setup are welcome through our contact page.
Frequently Asked Questions
Can I use Vercel Hobby for a production MCP server?
No, not for a commercial product. Vercel describes Hobby as a plan for personal, non-commercial use, and Hobby functions stop at 300 seconds with no option to extend. Move to Pro at $20 per month for commercial traffic, longer durations up to 800 seconds, and usage billed beyond the included credit.
Can Claude or Cursor connect to an MCP server on AgentCore Runtime?
Yes, through the AgentCore HTTPS endpoint. Clients call a regional bedrock-agentcore URL that embeds the URL-encoded runtime ARN and send a bearer token. When the token is missing, AgentCore returns 401 with protected resource metadata, so OAuth-capable clients can discover your authorization server and sign the user in.
Do I still need Durable Objects for an MCP server on Cloudflare?
Not for new servers. Cloudflare recommends the stateless createMcpHandler for new tools and marks the Durable Object based McpAgent as deprecated. Use Durable Objects, D1, or KV only for application data your tools address by explicit handle, such as a shopping cart or a long-running job record.
What happens when an MCP tool call hits the platform limit?
Each platform ends the request with an error. Cloudflare returns Error 1102 when a Worker exceeds its CPU limit, Vercel returns 504 FUNCTION_INVOCATION_TIMEOUT at the maximum duration, and AgentCore ends synchronous requests at 15 minutes. Return a job handle for slow tools so clients can poll for the result instead.
Is AgentCore Gateway the same as AgentCore Runtime?
No, they solve different problems. AgentCore Runtime hosts your own MCP server code in isolated microVM sessions. AgentCore Gateway turns existing APIs and AWS Lambda functions into MCP tools without server code, priced at $0.005 per 1,000 tool invocations as of October 19, 2026. Many AWS teams use both together.
Related Guides
For the wider field, our MCP hosting platforms guide ranks eight hosts, including Google Cloud Run, Azure Functions, FastMCP Gateway, Alpic, and Render, alongside these three.
Read MCP explained, MCP servers for enterprise teams, MCP gateways, Kong vs AWS AgentCore vs Docker, Red Hat MCP Gateway GA, AI agent integration platforms, Composio vs Arcade vs Nango, Composio alternatives, the ToFu MCP bug study, the agent protocols hub, and the MCP topic page. Notes on how we work sit on editorial standards, disclosure, and contact.
The Bottom Line
Cloudflare Workers is the default for public, stateless MCP servers, Vercel is the default when the server ships inside a Next.js app, and AgentCore Runtime is the default when tools live next to AWS data. Choose by auth model and longest tool call first, then compare the bill.
Deploy one real tool on your top two candidates, connect from two MCP clients, and time your slowest call against the limits above before you commit. Send corrections or platform updates through our contact page.

