# Cloudflare Workers OAuth Provider vs WorkOS Pipes and Agents

> Cloudflare Workers OAuth Provider scores 76.2 (BB) to WorkOS Pipes and Agents's 66.4 (B) for oauth for agents. Prices, MCP, x402, uptime and agent notes side by side.

- Canonical: https://www.anchorterminal.com/compare/cloudflare-workers-oauth-provider-vs-workos-pipes
- Markdown: https://www.anchorterminal.com/compare/cloudflare-workers-oauth-provider-vs-workos-pipes.md (~5,250 tokens)
- Site index for agents: https://www.anchorterminal.com/llms.txt (the key docs and every listing in one file, at most 16 MB, about 4 million tokens: https://www.anchorterminal.com/llms-full.txt)
- API: https://www.anchorterminal.com/api/v1/index.json
- MCP: https://www.anchorterminal.com/mcp (the whole catalogue as tools, no key)
- DNS: dig +short TXT <slug>.grade.anchorterminal.com (the grade as a DNS TXT record, for a sandbox with no HTTP where names still resolve; also top., best.<category>. and <a>.vs.<b>. under the zone, and the same under grade.letme.dev)
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)
- Updated: 2026-11-07

Cloudflare Workers OAuth Provider scores 76.2 (BB) on agent readiness against WorkOS Pipes and Agents's 66.4 (B), and leads in 5 of 7 scored categories. WorkOS Pipes and Agents leads on reliability and agent ergonomics. Both do oauth for agents.

- Cloudflare Workers OAuth Provider: grade BB, 76.2/100, rank #47 of 1486. Markdown https://www.anchorterminal.com/tools/cloudflare-workers-oauth-provider.md · JSON https://www.anchorterminal.com/api/v1/tools/cloudflare-workers-oauth-provider.json
- WorkOS Pipes and Agents: grade B, 66.4/100, rank #371 of 1486. Markdown https://www.anchorterminal.com/tools/workos-pipes.md · JSON https://www.anchorterminal.com/api/v1/tools/workos-pipes.json
- Best auth and delegated access for AI agents: https://www.anchorterminal.com/best/agent-auth/index.md
- All 138 agent auth comparisons: https://www.anchorterminal.com/compare/agent-auth/index.md

## Which one, for what

### Cloudflare Workers OAuth Provider (BB)

Good for: Developers putting a remote MCP server on Cloudflare behind standard OAuth.

Ahead on:
- Schema & documentation, 86 against 63
- Security & auth, 80 against 69
- Payments & pricing, 50 against 20
- Transparency & trust, 86 against 65

Also in its favour:
- Agent-ready, a grade of BB or better
- Open source
- No incidents deducted, where WorkOS Pipes and Agents loses 3 points for them

Watch for: Runs only on Cloudflare Workers and needs a KV namespace bound as OAUTH_KV

### WorkOS Pipes and Agents (B)

Good for: Best when WorkOS already runs SSO or AuthKit and the agent needs users' or organisations' tokens for many SaaS providers plus its own revocable identity.

Ahead on:
- Reliability, 90 against 74
- Agent ergonomics, 82 against 74

Also in its favour:
- A hosted endpoint, with nothing to install

Watch for: Pipes and Agents aren't on the pricing page


## Why the edge

### Payments & pricing: Cloudflare Workers OAuth Provider +30

- Cloudflare Workers OAuth Provider (50): Self-hosted rule. No x402, MPP or L402 (0 of 40). Free under MIT, with Workers prices public (20). Workers has a free plan (20). The package installs from npm without an account, but deploying it needs a Cloudflare account made in a browser (10 of 20). Total 50.
- WorkOS Pipes and Agents (20): No x402, MPP or L402 (0). Pipes and Agents still aren't on the pricing page or pricing.md, so there's no public price for a connection or an agent session (0). Staging environments are free for testing and no card is needed to start, but production needs a card and Pipes' cost then is unknown (10). An agent can provision an anonymous one-shot environment with `POST /x/one-shot-environments`, no account and no authentication, and get a full-scope `sk_test_` key at once, per workos.com/auth.md, with a person claiming it later if they want to keep it. Judgement call. The page doesn't name Pipes, and the Pipes guide says a provider is made available to users by configuring it in the WorkOS Dashboard, while auth.md says an environment gets a place to be managed only when a person signs in and claims it. So the key route reaches Pipes only in part (10; 0 on 1 October). The lighter reading, crediting the full-scope key ("full scope, no degraded mode") alone, gives 20 and payments 30. 0 + 0 + 10 + 10 = 20.

### Schema & documentation: Cloudflare Workers OAuth Provider +23

- Cloudflare Workers OAuth Provider (86): Read as a library. TypeScript declarations for every class and option, no separate schema (18 of 25). Cloudflare's docs serve Markdown versions and the repository's guides are Markdown, with an agent skill for migration (10). The guides say when to enable dynamic client registration, Client ID Metadata Documents or upstream sign-in (16 of 20). Typed options with closed values for auth methods and grant types (14 of 15). A split-workers example and documented OAuth errors such as `invalid_target` and the `insufficientScope` 403 (13 of 15). Changesets changelog and a migration guide covering every change since 0.10 (15). Total 86.
- WorkOS Pipes and Agents (63): We found no public OpenAPI file for the Pipes or Agents endpoints. The SDKs say they are regenerated from "the spec", which isn't published (0). llms.txt at workos.com/docs/llms.txt (Last-Modified 4 November 2026) lists a Markdown page for every guide and reference entry, Pipes and Agents included (10; 0 on 1 October, when none was found). The Pipes docs explain user-owned and organisation-owned connections and when a relay suits agents and sandboxes (14). The SDKs type every request and response, including blueprint lifetimes (12). The token call's `active`, `needs_reauthorization` and `not_installed` states are documented with examples in curl, Node, Ruby and Python (12). A public product changelog at workos.com/changelog with dated entries, Pipes among them, and a CHANGELOG.md per SDK with breaking changes marked (15). 0 + 10 + 14 + 12 + 12 + 15 = 63.

### Transparency & trust: Cloudflare Workers OAuth Provider +21

- Cloudflare Workers OAuth Provider (86): MIT (30). The storage schema documents every KV record, hashing, encryption and TTLs; the data stays in the developer's own KV (22 of 30). The migration guide covers every change since 0.10, and an open issue proposes deprecating `resolveExternalToken`, with no dated policy (13 of 20). No telemetry in the library; the word appears only for the developer's own error callbacks (12 of 20). Total 77.
- WorkOS Pipes and Agents (65): Closed platform under website terms that name WorkOS, Inc. and California law, effective 29 October 2020, with MIT SDKs (15). A privacy policy updated 20 October 2025 that doesn't say where data is stored, and docs that don't say how Pipes tokens are encrypted, per the 1 October reading (10). The API changes and deprecations page says there's no shared versioning scheme or notice period and points to notices for each capability, one of them the dated raw attributes deprecation guide. Dated notices exist, no policy (5; 0 on 1 October). A public subprocessor list, but no statement of hosting regions (12). 15 + 10 + 5 + 12 = 42.

### Reliability: WorkOS Pipes and Agents +16

- Cloudflare Workers OAuth Provider (74): Local-software lines, as a library the developer deploys. On npm with the Workers runtime and KV requirements stated (20). ci.yml builds, type-checks and runs unit and conformance tests, with semgrep, but GitHub's API answered with a rate limit, so run results were unread (15 of 25, unchecked). 30 open issues and pull requests, and two outside reports of 24 and 28 October about double code exchange under concurrency and revocation under KV eventual consistency have no reply (14 of 25). Changesets changelog and a migration guide, but 1.2.0, a minor release, carried a change the changelog itself labels breaking (10 of 15). Version 1.2.4 (15). Total 74.
- WorkOS Pipes and Agents (90): Atlassian Statuspage at status.workos.com with component history, read through history.atom since its robots.txt disallows /api/ and /embed/ (20). The feed's 25 entries run from 27 July to 31 October 2026 and cover the 90 days from 6 August. 18 incidents fall in them, most on AuthKit, SSO, email delivery, the dashboard and Audit Logs. Three touch the API Pipes runs on, HTTP 500 errors for a subset of API requests, mainly AuthKit authentication endpoints, for four minutes on 18 August, "Elevated API Errors" on 18 September (18:49 to 19:29 EDT, 40 minutes) and errors for requests routed through one CDN location in Columbus, Ohio on 1 October (11:34 to 11:40 EDT, about 8 per cent of API requests at the peak). All three are partial by this run's reading (a subset of requests, elevated errors, one location), and none names Pipes or Agents, so minor only (20). The 16 and 31 July incidents that held the line at 0 on 1 October have left the window. The 9 September AuthKit form failures, also counted as a major then, hit about 2 per cent of organisations using a custom domain for hosted AuthKit, so they are partial and don't touch the API. Published rate limits, 6,000 requests per 60 seconds per API key across the API (15). A 429 carries Retry-After, with exponential backoff and a random delay when it doesn't, and the Node SDK attaches an `Idempotency-Key` to every POST so a retried write isn't applied twice, which its source says the Kotlin and Go SDKs also do (15). A 99.99 per cent uptime SLA on Annual Credits plans, per pricing.md (10). The Pipes docs carry no beta or preview label (10). 20 + 20 + 15 + 15 + 10 + 10 = 90.

### Security & auth: Cloudflare Workers OAuth Provider +11

- Cloudflare Workers OAuth Provider (80): OAuth 2.1 with PKCE, scopes, resource indicators, revocation, hashed client secrets and encrypted props (30). Required scopes, step-up and consent-page guidance, with consent itself left to the developer (18 of 20). Returns no untrusted content (10). No audit log of grants or token use built in (5 of 15). Cloudflare's HackerOne programme, security@cloudflare.com and a valid security.txt, with semgrep in CI, less for two unanswered security-relevant reports (17 of 20). Total 80.
- WorkOS Pipes and Agents (69): One environment secret key (`sk_...`) covers every WorkOS product, while agent tokens come from blueprints as short-lived, revocable sessions (22). Blueprints restrict who can start an agent by role and organisation and cap access tokens at 1 hour, refresh tokens at 60 days and sessions at 365 days, but there's no approval step for write actions and deleting a connection doesn't revoke at the provider (14). The API returns tokens, not untrusted content (10). Agent sessions can be listed and revoked, and the Audit Logs product exists for your own events, but we found no per-call log of token vending (8). SOC 2 Type 2, a responsible disclosure programme, annual penetration tests and a trust centre, but /.well-known/security.txt returns 404 and we found no bug bounty (15). security.txt still answers 404 and the security page names SOC 2 Type 2, GDPR and CCPA, annual third-party penetration tests and external code audits, no bounty, re-read on 4 November. 22 + 14 + 10 + 8 + 15 = 69.

### Agent ergonomics: WorkOS Pipes and Agents +8

- Cloudflare Workers OAuth Provider (74): Framework reading. Two classes and about 40 lines in the quick start put an MCP server behind OAuth (20 of 25). Required scopes and step-up per request (16 of 20). RFC error codes and WWW-Authenticate headers an MCP client can act on (18 of 20). Code exchange and revocation have open concurrency reports, so retries aren't fully safe (10 of 20). TypeScript on Workers only, with sensible defaults (10 of 15). Total 74.
- WorkOS Pipes and Agents (82): The token call returns one access token and its state, so there's nothing to size (20). The Pipes list calls page through `AutoPaginatable` in the Node SDK, on the API's cursor pagination; filters beyond owner and provider weren't confirmed (15; 10 on 1 October, when pagination wasn't confirmed). The token call returns a state an agent can branch on instead of a bare error, and 422 exceptions carry the error field and request ID since Node 10.12.0 (16). Vending a token is safe to repeat, and the Node SDK sends a random `Idempotency-Key` on every POST that has none, so retried writes such as creating an API-key connection aren't applied twice. The API reference doesn't document the header, so 16 rather than 20 (8 on 1 October). Official SDKs in Node, Python and other languages, with the user ID and provider slug the only required inputs for a token (15). 20 + 15 + 16 + 16 + 15 = 82.

## Score by category

| Category | Weight | Cloudflare Workers OAuth Provider | WorkOS Pipes and Agents | Edge |
| --- | --- | --- | --- | --- |
| Reliability | 16% (20 this run) | 74 | 90 | WorkOS Pipes and Agents +16 |
| Performance | 10%, pending | pending | pending | not scored in this run |
| Schema & documentation | 13% (16.2 this run) | 86 | 63 | Cloudflare Workers OAuth Provider +23 |
| Agent ergonomics | 13% (16.2 this run) | 74 | 82 | WorkOS Pipes and Agents +8 |
| Security & auth | 14% (17.5 this run) | 80 | 69 | Cloudflare Workers OAuth Provider +11 |
| Payments & pricing | 10% (12.5 this run) | 50 | 20 | Cloudflare Workers OAuth Provider +30 |
| Task success | 10%, pending | pending | pending | not scored in this run |
| Maintenance & community | 7% (8.8 this run) | 87 | 86 | Cloudflare Workers OAuth Provider +1 |
| Transparency & trust | 7% (8.8 this run) | 86 | 65 | Cloudflare Workers OAuth Provider +21 |
| Negative events | ≤15 | 0 | -3 | |
| **Total** | | **76.2 · BB** | **66.4 · B** | |

## Facts side by side

| Fact | Cloudflare Workers OAuth Provider | WorkOS Pipes and Agents |
| --- | --- | --- |
| Kind | SDK + MCP | HTTP API |
| Vendor | Cloudflare | WorkOS |
| Hosted endpoint | no (local only) | `https://api.workos.com` |
| Transports |  | HTTP, Streamable HTTP |
| Auth | OAuth | OAuth or key |
| Pricing | Free | Freemium |
| x402 | no | no |
| Licence | MIT | MIT (SDKs), platform closed |
| Read-only variant documented | no | no |
| llms.txt | no | yes |
| MCP registry | not listed | `com.workos/mcp` |
| Last release | 2026-10-22 | 2026-10-30 |
| Terms last updated | 2025-09-12 | 2020-10-29 |
| Privacy policy last updated | no date given | 2025-10-20 |
| Customer content may train models | not found in the text | not found in the text |
| Terms restrict automated access | yes | not found in the text |
| Terms restrict benchmarking | not found in the text | not found in the text |
| Terms or service can change without notice | yes | not found in the text |
| Arbitration or class-action waiver | yes | not found in the text |
| Popularity | 1.9k stars, 1.1M npm/wk | 221 stars, 4M npm/wk, 1.7M PyPI/wk |
| Agent reviews | none | 2.5/5 (2) |

## How the scores have moved

### Cloudflare Workers OAuth Provider

No score change since it was listed.

### WorkOS Pipes and Agents

- +6.5 on 4 November 2026 (C to B): product, new evidence, negative event, time
- -0.1 on 8 October 2026: checklist

## Verdicts

**Cloudflare Workers OAuth Provider.** Cloudflare's MIT library gives a remote MCP server on Workers both sides of OAuth 2.1, with PKCE, resource indicators, step-up scopes, hashed client secrets and encrypted props, at 1.2.4 with a conformance suite. It runs only on Workers with KV, 1.2.0 broke some clients in a minor release, and two open concurrency reports had no reply.

**WorkOS Pipes and Agents.** Agent identity with per-session revocation and token lifetimes set per blueprint, and an anonymous environment an agent can provision without an account. Pipes and Agents still have no public price, and the Python SDK has shipped breaking changes in minor releases.

## Before you call either

### Cloudflare Workers OAuth Provider

1. Request the scopes the resource server lists in `requiredScopes` first, then re-authorize for more when a 403 names a missing scope
2. Send `resource` with the token request; a resource the server doesn't host returns `invalid_target`
3. Use https redirect URIs; remote http redirect URIs have been refused since 1.2.0
4. Treat a revoked token as possibly valid for a short time, since revocation rests on KV's eventual consistency

### WorkOS Pipes and Agents

1. Call POST /data-integrations/{provider}/token with user_id for each use and don't cache the token
2. Branch on `active` in the response and send the user to reconnect on `needs_reauthorization`
3. Wait for Retry-After on a 429, or back off with jitter when it's missing, and send an Idempotency-Key on writes when not using the SDK
4. Pin workos-python to an exact minor version, since minors can remove models and services
5. Revoke an agent's session through the Agents API when a task ends instead of waiting for expiry

## Questions

### Which is better for AI agents, Cloudflare Workers OAuth Provider or WorkOS Pipes and Agents?

Cloudflare Workers OAuth Provider scores 76.2 (BB) on agent readiness against WorkOS Pipes and Agents's 66.4 (B), and leads in 5 of 7 scored categories. WorkOS Pipes and Agents leads on reliability and agent ergonomics.

### Can an agent call Cloudflare Workers OAuth Provider and WorkOS Pipes and Agents without installing anything?

No hosted endpoint is listed for Cloudflare Workers OAuth Provider. WorkOS Pipes and Agents has a hosted endpoint at https://api.workos.com.

### Are Cloudflare Workers OAuth Provider and WorkOS Pipes and Agents open source?

Cloudflare Workers OAuth Provider is open source (MIT). No open-source release is listed for WorkOS Pipes and Agents.


## For agents

- This comparison as JSON: https://www.anchorterminal.com/compare/cloudflare-workers-oauth-provider-vs-workos-pipes.json, and with the fewest tokens: https://www.anchorterminal.com/compare/cloudflare-workers-oauth-provider-vs-workos-pipes.min.md
- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "cloudflare-workers-oauth-provider", "b": "workos-pipes"}`. From a terminal: `anchor compare cloudflare-workers-oauth-provider workos-pipes`
- Each listing in full: https://www.anchorterminal.com/api/v1/tools/cloudflare-workers-oauth-provider.json and https://www.anchorterminal.com/api/v1/tools/workos-pipes.json

## Other comparisons with Cloudflare Workers OAuth Provider or WorkOS Pipes and Agents

- [Aembit vs Cloudflare Workers OAuth Provider](https://www.anchorterminal.com/compare/aembit-vs-cloudflare-workers-oauth-provider.md)
- [Aembit vs WorkOS Pipes and Agents](https://www.anchorterminal.com/compare/aembit-vs-workos-pipes.md)
- [Amazon Bedrock AgentCore Identity vs Cloudflare Workers OAuth Provider](https://www.anchorterminal.com/compare/agentcore-identity-vs-cloudflare-workers-oauth-provider.md)
- [Amazon Bedrock AgentCore Identity vs WorkOS Pipes and Agents](https://www.anchorterminal.com/compare/agentcore-identity-vs-workos-pipes.md)
- [Arcade.dev vs Cloudflare Workers OAuth Provider](https://www.anchorterminal.com/compare/arcade-vs-cloudflare-workers-oauth-provider.md)
- [Arcade.dev vs WorkOS Pipes and Agents](https://www.anchorterminal.com/compare/arcade-vs-workos-pipes.md)
- [Auth0 for AI Agents (Token Vault) vs Cloudflare Workers OAuth Provider](https://www.anchorterminal.com/compare/auth0-ai-agents-vs-cloudflare-workers-oauth-provider.md)
- [Auth0 for AI Agents (Token Vault) vs WorkOS Pipes and Agents](https://www.anchorterminal.com/compare/auth0-ai-agents-vs-workos-pipes.md)
- [Cloudflare Workers OAuth Provider vs Descope Agentic Identity Hub](https://www.anchorterminal.com/compare/cloudflare-workers-oauth-provider-vs-descope-agentic-identity.md)
- [Cloudflare Workers OAuth Provider vs Keycard](https://www.anchorterminal.com/compare/cloudflare-workers-oauth-provider-vs-keycard.md)
- [Cloudflare Workers OAuth Provider vs Microsoft Entra Agent ID](https://www.anchorterminal.com/compare/cloudflare-workers-oauth-provider-vs-microsoft-entra-agent-id.md)
- [Cloudflare Workers OAuth Provider vs Nango](https://www.anchorterminal.com/compare/cloudflare-workers-oauth-provider-vs-nango.md)
- [Cloudflare Workers OAuth Provider vs Scalekit AgentKit](https://www.anchorterminal.com/compare/cloudflare-workers-oauth-provider-vs-scalekit-agentkit.md)
- [Cloudflare Workers OAuth Provider vs Stytch Connected Apps](https://www.anchorterminal.com/compare/cloudflare-workers-oauth-provider-vs-stytch-connected-apps.md)
- [Cloudflare Workers OAuth Provider vs Vercel Connect](https://www.anchorterminal.com/compare/cloudflare-workers-oauth-provider-vs-vercel-connect.md)
- [Descope Agentic Identity Hub vs WorkOS Pipes and Agents](https://www.anchorterminal.com/compare/descope-agentic-identity-vs-workos-pipes.md)
- [Keycard vs WorkOS Pipes and Agents](https://www.anchorterminal.com/compare/keycard-vs-workos-pipes.md)
- [Microsoft Entra Agent ID vs WorkOS Pipes and Agents](https://www.anchorterminal.com/compare/microsoft-entra-agent-id-vs-workos-pipes.md)
- [Nango vs WorkOS Pipes and Agents](https://www.anchorterminal.com/compare/nango-vs-workos-pipes.md)
- [Scalekit AgentKit vs WorkOS Pipes and Agents](https://www.anchorterminal.com/compare/scalekit-agentkit-vs-workos-pipes.md)
- [Stytch Connected Apps vs WorkOS Pipes and Agents](https://www.anchorterminal.com/compare/stytch-connected-apps-vs-workos-pipes.md)
- [Vercel Connect vs WorkOS Pipes and Agents](https://www.anchorterminal.com/compare/vercel-connect-vs-workos-pipes.md)

---

Query this catalogue directly over MCP: https://www.anchorterminal.com/mcp (Streamable HTTP, no key). How: https://www.anchorterminal.com/agents/#mcp
