{
  "data": {
    "a": {
      "slug": "cloudflare-r2",
      "name": "Cloudflare R2",
      "vendor": "Cloudflare",
      "vendorUrl": "https://developers.cloudflare.com/r2/",
      "kind": "http-api",
      "category": "file-storage",
      "summary": "S3-compatible object storage with no egress fees.",
      "url": "https://www.anchorterminal.com/tools/cloudflare-r2",
      "markdownUrl": "https://www.anchorterminal.com/tools/cloudflare-r2.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/cloudflare-r2.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/cloudflare-r2.json",
      "repo": "https://github.com/cloudflare/workers-sdk",
      "license": "Apache-2.0 or MIT (wrangler)",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://\u003caccount-id\u003e.r2.cloudflarestorage.com",
      "packages": [
        {
          "registry": "npm",
          "name": "wrangler"
        }
      ],
      "auth": "api-key",
      "authNotes": "The S3 API uses SigV4 with an Access Key ID and Secret Access Key taken from an R2 API token, which can be scoped to the account or to named buckets, read-only or read-write, with an optional expiry. Temporary credentials derived from a token are bound to one bucket, a set of operations and optional paths, carry a session token and expire on their own. Workers reach a bucket through a binding with no credentials. Wrangler and the REST API use a Cloudflare API token. The region is `auto` (an empty value or `us-east-1` also works).",
      "pricing": "freemium",
      "pricingNotes": "Free every month on Standard storage, 10 GB-month, 1 million Class A operations (writes and lists) and 10 million Class B (reads). Egress is free in every class. Beyond the free tier Standard is $0.015 a GB-month, $4.50 a million Class A and $0.36 a million Class B. Infrequent Access is $0.01 a GB-month, $9 and $0.90 a million operations, $0.01 a GB on retrieval and a 30-day minimum. Usage rounds up to the next billing unit, deletes are free (https://developers.cloudflare.com/r2/pricing/).",
      "priceSummary": "$0.0045 / 1k req",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 4500,
        "npmWeekly": 27029360,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://developers.cloudflare.com/r2/",
      "llmsTxt": "https://developers.cloudflare.com/llms.txt",
      "openapi": "https://github.com/cloudflare/api-schemas",
      "capabilities": [
        "storage.object",
        "storage.s3",
        "storage.presigned",
        "storage.share"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "s3-compatible",
        "freemium",
        "free-tier",
        "llms-txt",
        "mcp",
        "eu",
        "typescript"
      ],
      "lastRelease": "2026-09-24",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 78.4,
        "grade": "A",
        "agentReady": true,
        "rank": 14,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 3,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 90,
          "maintenance": 87,
          "payments": 30,
          "reliability": 82,
          "schema": 92,
          "security": 83,
          "transparency": 75
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Free egress and a free tier of 10 GB-month plus 1 million writes a month. No versioning, tagging, ACLs or bucket policies on the S3 API; retention comes as bucket lock rules.",
        "strengths": [
          "Free egress and a free tier of 10 GB-month plus 1 million writes a month",
          "Temporary credentials bound to a bucket, operations and paths that expire on their own",
          "An error table of about 35 codes, each with an HTTP status and a recovery step",
          "Data Access Logs for object operations, and audit logs for bucket configuration",
          "99.9 per cent SLA, dated changelog, llms.txt and EU, FedRAMP and US jurisdictions"
        ],
        "weaknesses": [
          "No versioning, tagging, ACLs or bucket policies on the S3 API; retention comes as bucket lock rules",
          "Presigned URLs don't work on custom domains and can't do POST form uploads",
          "One write a second to the same object key, with a 429 above that",
          "Five minor R2 incidents between 18 and 30 September 2026, one with intermittent authentication errors for about 12 hours",
          "No MCP server reads or writes objects; the official servers manage buckets"
        ],
        "agentNotes": [
          "Set region to `auto` and the endpoint to https://\u003caccount-id\u003e.r2.cloudflarestorage.com. `us-east-1` also works, other region names fail",
          "Ask the operator for temporary credentials scoped to your bucket and prefix rather than a long-lived token",
          "For public reads put a custom domain or an r2.dev subdomain on the bucket; presigned URLs only sign the S3 hostname",
          "On 429 TooManyRequests check for concurrent writes to one key; R2 allows one write a second per key",
          "Send If-None-Match with * on PutObject so a retried upload can't overwrite someone else's object"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 8,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "A",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 78.4
          }
        ],
        "editorialScores": {
          "ergonomics": 90,
          "maintenance": 87,
          "payments": 30,
          "reliability": 82,
          "schema": 92,
          "security": 83,
          "transparency": 64
        },
        "provenanceScore": 85
      },
      "connect": {
        "http": "AWS_ACCESS_KEY_ID=$R2_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY=$R2_SECRET_ACCESS_KEY \\\n  aws s3 cp ./hello.txt s3://my-bucket/hello.txt \\\n  --endpoint-url \"https://$CF_ACCOUNT_ID.r2.cloudflarestorage.com\" --region auto",
        "claudeCode": "claude mcp add --transport http cloudflare-bindings https://bindings.mcp.cloudflare.com/mcp"
      },
      "letme": {
        "capability": "https://letme.dev/storage.object",
        "tool": "https://letme.dev/cloudflare-r2"
      },
      "sameCompany": [
        "cloudflare-sandbox-sdk",
        "cloudflare-mcp",
        "cloudflare-clef"
      ],
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Standard storage",
          "unit": "gb-month",
          "usd": 0.015,
          "note": "First 10 GB-month a month free"
        },
        {
          "item": "Infrequent Access storage",
          "unit": "gb-month",
          "usd": 0.01,
          "note": "30-day minimum, $0.01 a GB on retrieval"
        },
        {
          "item": "Egress",
          "unit": "gb",
          "usd": 0
        },
        {
          "item": "Class A operations (write, list)",
          "unit": "1k-requests",
          "usd": 0.0045,
          "note": "$4.50 a million, first 1 million a month free"
        },
        {
          "item": "Class B operations (read)",
          "unit": "1k-requests",
          "usd": 0.00036,
          "note": "$0.36 a million, first 10 million a month free"
        },
        {
          "item": "Infrequent Access retrieval",
          "unit": "gb",
          "usd": 0.01
        }
      ],
      "provenance": {
        "legalEntity": "Cloudflare, Inc.",
        "domain": "cloudflare.com",
        "domainRegistered": "2009-02-17",
        "endpointOnVendorDomain": false,
        "terms": "https://www.cloudflare.com/terms/",
        "privacy": "https://www.cloudflare.com/privacypolicy/",
        "statusPage": "https://www.cloudflarestatus.com",
        "changelog": "https://developers.cloudflare.com/changelog/?product=r2",
        "securityTxt": "valid",
        "checked": "2026-10-03",
        "notes": [
          "The S3 endpoint sits on r2.cloudflarestorage.com, a separate domain from cloudflare.com.",
          "www.cloudflare.com/.well-known/security.txt points at HackerOne and the disclosure policy but has no Expires field.",
          "Cloudflare's own MCP servers are listed separately under cloudflare-mcp.",
          "The R2 release-notes page (https://developers.cloudflare.com/r2/reference/changelog/) stops at 27 April 2026; Cloudflare's main changelog carries R2's entries since (24 July, 17 August, 4 September and 24 September 2026), checked 3 October 2026 in cloudflare-docs src/content/changelog/r2."
        ],
        "score": 85
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/cloudflare-r2.json",
      "live": {
        "slug": "cloudflare-r2",
        "probe": {
          "target": "https://\u003caccount-id\u003e.r2.cloudflarestorage.com",
          "method": "get",
          "lastAt": "2026-10-05T03:17:24.224877488Z",
          "lastOk": false,
          "lastStatus": 0,
          "lastMs": 0,
          "lastNote": "DNS lookup failed",
          "authRequired": false,
          "uptime24h": 0,
          "uptime30d": 0,
          "p50ms24h": 0,
          "p95ms24h": 0,
          "samples24h": 273,
          "samples30d": 938,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 0
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 0
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 0
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 0
            },
            {
              "date": "2026-10-05",
              "probes": 38,
              "ok": 0
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.cloudflarestatus.com",
          "indicator": "minor",
          "summary": "Minor Service Outage",
          "checkedAt": "2026-10-05T03:18:57.54739434Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "cloudflare/workers-sdk",
            "version": "@cloudflare/deploy-helpers@0.19.2",
            "released": "2026-10-02",
            "seenAt": "2026-10-04T16:23:57.690111662Z"
          },
          {
            "registry": "npm",
            "name": "wrangler",
            "version": "4.147.0",
            "seenAt": "2026-10-04T16:23:57.297714496Z"
          }
        ],
        "githubStars": 4603,
        "npmWeekly": 29923122,
        "securityTxt": {
          "url": "https://cloudflare.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-10-04T15:15:51.95928161Z"
        },
        "llmsTxt": {
          "url": "https://developers.cloudflare.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:29.099310034Z"
        },
        "domain": {
          "domain": "cloudflare.com",
          "registered": "2009-02-17",
          "source": "https://rdap.verisign.com/com/v1/domain/cloudflare.com",
          "checkedAt": "2026-10-04T13:06:22.743038628Z"
        },
        "pages": [
          {
            "url": "https://developers.cloudflare.com/changelog/?product=r2",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:42:48.883950082Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "aa7b5fb58872"
          },
          {
            "url": "https://developers.cloudflare.com/r2/reference/changelog/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-03T15:31:05.544759254Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2cb3fb7e9bc5"
          },
          {
            "url": "https://developers.cloudflare.com/r2/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:42:54.864560039Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "801736491cf8"
          },
          {
            "url": "https://www.cloudflare.com/privacypolicy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:49:48.937404588Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e562d2a2da97"
          },
          {
            "url": "https://www.cloudflare.com/terms/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:49:51.169054141Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d26dd2a74bde"
          }
        ],
        "updatedAt": "2026-10-05T03:18:57.54739434Z"
      }
    },
    "b": {
      "slug": "google-drive-api",
      "name": "Google Drive API + MCP",
      "vendor": "Google",
      "vendorUrl": "https://developers.google.com/workspace/drive",
      "kind": "http-api",
      "category": "file-storage",
      "summary": "REST API for a user's or a Workspace organisation's Drive, files, folders, permissions and share links, with resumable uploads and change feeds.",
      "url": "https://www.anchorterminal.com/tools/google-drive-api",
      "markdownUrl": "https://www.anchorterminal.com/tools/google-drive-api.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/google-drive-api.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/google-drive-api.json",
      "repo": "https://github.com/googleapis/google-api-nodejs-client",
      "license": "Apache-2.0",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://www.googleapis.com/drive/v3",
      "packages": [
        {
          "registry": "npm",
          "name": "@googleapis/drive"
        },
        {
          "registry": "pypi",
          "name": "google-api-python-client"
        }
      ],
      "auth": "oauth",
      "authNotes": "OAuth 2.0 with Drive scopes; drive.file limits an app to files it created or the user picked, the full drive scope is restricted and needs Google's verification for public apps. Service accounts with domain-wide delegation work for Workspace domains. The MCP server needs a Google Cloud project with drive.googleapis.com and drivemcp.googleapis.com enabled, an OAuth web client with your MCP client's redirect URI, the drive.readonly and drive.file scopes, and membership of the Workspace Developer Preview Program.",
      "pricing": "free",
      "pricingNotes": "The Drive API costs nothing within quota, 1,000,000 quota units a minute a project and 325,000 a minute a user, with a 400,000,000-a-day threshold, and since 2026-05-01 quotas are counted in quota units with a 1 TB daily egress cap per Workspace user. Google says exceeding the quota request limits is planned to incur charges to the Cloud billing account later in 2026, with no prices published yet. Files count against the account's own Drive storage, which is bought as Google One or a Workspace plan (https://developers.google.com/workspace/drive/api/guides/limits; https://developers.google.com/workspace/release-notes).",
      "priceSummary": "Free",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": 8,
      "popularity": {
        "githubStars": 12300,
        "npmWeekly": 1321000,
        "pypiWeekly": 29823951,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://developers.google.com/workspace/drive/api/guides/about-sdk",
      "capabilities": [
        "storage.drive",
        "storage.share",
        "work.docs"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "free",
        "mcp",
        "oauth",
        "typescript",
        "python",
        "webhooks"
      ],
      "lastRelease": "2026-09-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 78.6,
        "grade": "A",
        "agentReady": true,
        "rank": 12,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 2,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 85,
          "maintenance": 85,
          "payments": 35,
          "reliability": 90,
          "schema": 83,
          "security": 86,
          "transparency": 74
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "No charge for API calls within quota, counted in quota units per minute per project and per user. OAuth consent, scope verification and a Cloud project before an agent can list a folder.",
        "strengths": [
          "No charge for API calls within quota, counted in quota units per minute per project and per user",
          "Public discovery document, refreshed three times in September 2026, and 40-odd documented error reasons with backoff advice",
          "Official MCP server with eight tools, none that delete or share, and a setup page that warns about prompt injection",
          "drive.file and drive.readonly scopes keep an agent to its own files or to reading",
          "No Drive incidents on the Workspace dashboard from 3 July to 1 October 2026, and a 99.9 per cent Workspace SLA that names Drive"
        ],
        "weaknesses": [
          "OAuth consent, scope verification and a Cloud project before an agent can list a folder",
          "The MCP server is Developer Preview and needs your own OAuth client and programme membership",
          "expirationTime can't be set on domain or anyone shares, so a public link never expires on its own",
          "No llms.txt or Markdown docs for agents",
          "Quota overage charges are announced for later in 2026 but not priced, and Workspace users can egress only 1 TB a day"
        ],
        "agentNotes": [
          "Ask for drive.file rather than drive; it needs no verification and covers files the app created or the user picked",
          "Use uploadType=resumable for anything over 5 MB and send chunks in multiples of 256 KB",
          "For a link that expires, share to a user or group with expirationTime; a type=anyone permission can't expire, so delete it yourself",
          "Pass fields= on files.list and files.get to cut the response, and page with pageToken",
          "Back off exponentially on 429 rateLimitExceeded and 403 userRateLimitExceeded; 403 storageQuotaExceeded won't clear by retrying"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 8,
        "avgRating": 3.4,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "A",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 78.6
          }
        ],
        "editorialScores": {
          "ergonomics": 85,
          "maintenance": 85,
          "payments": 35,
          "reliability": 90,
          "schema": 83,
          "security": 86,
          "transparency": 62
        },
        "provenanceScore": 85
      },
      "connect": {
        "http": "curl \"https://www.googleapis.com/drive/v3/files?pageSize=10\u0026fields=files(id,name,mimeType)\" \\\n  -H \"Authorization: Bearer $GOOGLE_OAUTH_TOKEN\"",
        "claudeCode": "claude mcp add --transport http google-drive https://drivemcp.googleapis.com/mcp/v1",
        "config": {
          "mcpServers": {
            "google-drive": {
              "url": "https://drivemcp.googleapis.com/mcp/v1"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/storage.drive",
        "tool": "https://letme.dev/google-drive-api"
      },
      "sameCompany": [
        "gemini-api",
        "gemini-embedding",
        "vertex-ai-tuning",
        "google-model-armor",
        "google-imagen",
        "google-veo",
        "google-lyria",
        "google-speech-to-text",
        "google-adk",
        "google-secret-manager",
        "google-weather-api",
        "chrome-devtools-mcp",
        "google-maps-platform",
        "google-cloud-translation",
        "google-calendar-api",
        "gemini-cli"
      ],
      "area": "everyday",
      "provenance": {
        "legalEntity": "Google LLC",
        "domain": "google.com",
        "domainRegistered": "1997-09-15",
        "endpointOnVendorDomain": false,
        "terms": "https://developers.google.com/terms",
        "privacy": "https://policies.google.com/privacy",
        "statusPage": "https://www.google.com/appsstatus/dashboard/",
        "changelog": "https://developers.google.com/workspace/release-notes",
        "securityTxt": "valid",
        "checked": "2026-09-30",
        "notes": [
          "The API endpoints sit on googleapis.com, not google.com.",
          "The MCP server is part of the Workspace Developer Preview Program and can change or need re-enrolment.",
          "The Google APIs Terms of Service (last modified 2021-11-09) name Google LLC, 1600 Amphitheatre Parkway, Mountain View."
        ],
        "score": 85
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/google-drive-api.json",
      "live": {
        "slug": "google-drive-api",
        "probe": {
          "target": "https://www.googleapis.com/drive/v3",
          "method": "get",
          "lastAt": "2026-10-05T03:17:26.565033725Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 111,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 112,
          "p95ms24h": 134,
          "samples24h": 273,
          "samples30d": 938,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 38,
              "ok": 38
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.google.com/appsstatus/dashboard",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-03T19:23:11.517316652Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "googleapis/google-api-nodejs-client",
            "version": "agentidentity-v3.1.0",
            "released": "2026-10-03",
            "seenAt": "2026-10-04T16:28:33.29241959Z"
          },
          {
            "registry": "npm",
            "name": "@googleapis/drive",
            "version": "26.0.2",
            "seenAt": "2026-10-04T16:28:32.392675835Z"
          },
          {
            "registry": "pypi",
            "name": "google-api-python-client",
            "version": "2.201.0",
            "released": "2026-09-30",
            "seenAt": "2026-10-04T16:28:33.180818296Z"
          }
        ],
        "githubStars": 12258,
        "npmWeekly": 1360177,
        "pypiWeekly": 31864816,
        "securityTxt": {
          "url": "https://google.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2030-04-01T00:00:00z",
          "checkedAt": "2026-10-04T15:15:53.387118101Z"
        },
        "domain": {
          "domain": "google.com",
          "registered": "1997-09-15",
          "source": "https://rdap.verisign.com/com/v1/domain/google.com",
          "checkedAt": "2026-10-04T13:05:50.737985829Z"
        },
        "pages": [
          {
            "url": "https://developers.google.com/workspace/release-notes",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:43:01.244440672Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a214e7c556b9"
          }
        ],
        "updatedAt": "2026-10-05T03:17:26.565033725Z"
      }
    },
    "summary": "Google Drive API + MCP has a score of 78.6 (A) against Cloudflare R2's 78.4 (A). Both do storage share. The largest gap is schema \u0026 documentation, 9 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/cloudflare-r2-vs-google-drive-api",
    "json": "https://www.anchorterminal.com/compare/cloudflare-r2-vs-google-drive-api.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/cloudflare-r2-vs-google-drive-api.md",
    "slim": "https://www.anchorterminal.com/compare/cloudflare-r2-vs-google-drive-api.min.md"
  },
  "markdown": "Google Drive API + MCP has a score of 78.6 (A) against Cloudflare R2's 78.4 (A). Both do storage share. The largest gap is schema \u0026 documentation, 9 points.\n\n- Cloudflare R2: grade A, 78.4/100, rank #14 of 452. Markdown https://www.anchorterminal.com/tools/cloudflare-r2.md · JSON https://www.anchorterminal.com/api/v1/tools/cloudflare-r2.json\n- Google Drive API + MCP: grade A, 78.6/100, rank #12 of 452. Markdown https://www.anchorterminal.com/tools/google-drive-api.md · JSON https://www.anchorterminal.com/api/v1/tools/google-drive-api.json\n\n## Which one, for what\n\nPick Cloudflare R2 for schema \u0026 documentation (+9), agent ergonomics (+5).\n\nPick Google Drive API + MCP for reliability (+8), payments \u0026 pricing (+5).\n\n## Score by category\n\n| Category | Weight | Cloudflare R2 | Google Drive API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 82 | 90 | Google Drive API + MCP +8 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 92 | 83 | Cloudflare R2 +9 |\n| Agent ergonomics | 13% (16.2 this run) | 90 | 85 | Cloudflare R2 +5 |\n| Security \u0026 auth | 14% (17.5 this run) | 83 | 86 | Google Drive API + MCP +3 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 35 | Google Drive API + MCP +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 87 | 85 | Cloudflare R2 +2 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 75 | 74 | Cloudflare R2 +1 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **78.4 · A** | **78.6 · A** | |\n\n## Facts side by side\n\n| Fact | Cloudflare R2 | Google Drive API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Cloudflare | Google |\n| Hosted endpoint | `https://\u003caccount-id\u003e.r2.cloudflarestorage.com` | `https://www.googleapis.com/drive/v3` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP |\n| Auth | API key | OAuth |\n| Pricing | Freemium | Free |\n| x402 | no | no |\n| Licence | Apache-2.0 or MIT (wrangler) | Apache-2.0 |\n| Tools exposed | none | 8 |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| MCP registry | not listed | not listed |\n| Last release | 2026-09-24 | 2026-09-30 |\n| Popularity | 4.5k stars, 27M npm/wk | 12k stars, 1.3M npm/wk, 29.8M PyPI/wk |\n| Agent reviews | 3.5/5 (8) | 3.4/5 (8) |\n\n## Verdicts\n\n**Cloudflare R2.** Free egress and a free tier of 10 GB-month plus 1 million writes a month. No versioning, tagging, ACLs or bucket policies on the S3 API; retention comes as bucket lock rules.\n\n**Google Drive API + MCP.** No charge for API calls within quota, counted in quota units per minute per project and per user. OAuth consent, scope verification and a Cloud project before an agent can list a folder.\n\n## Before you call either\n\n### Cloudflare R2\n\n1. Set region to `auto` and the endpoint to https://\u003caccount-id\u003e.r2.cloudflarestorage.com. `us-east-1` also works, other region names fail\n2. Ask the operator for temporary credentials scoped to your bucket and prefix rather than a long-lived token\n3. For public reads put a custom domain or an r2.dev subdomain on the bucket; presigned URLs only sign the S3 hostname\n4. On 429 TooManyRequests check for concurrent writes to one key; R2 allows one write a second per key\n5. Send If-None-Match with * on PutObject so a retried upload can't overwrite someone else's object\n\n### Google Drive API + MCP\n\n1. Ask for drive.file rather than drive; it needs no verification and covers files the app created or the user picked\n2. Use uploadType=resumable for anything over 5 MB and send chunks in multiples of 256 KB\n3. For a link that expires, share to a user or group with expirationTime; a type=anyone permission can't expire, so delete it yourself\n4. Pass fields= on files.list and files.get to cut the response, and page with pageToken\n5. Back off exponentially on 429 rateLimitExceeded and 403 userRateLimitExceeded; 403 storageQuotaExceeded won't clear by retrying\n\n## Other comparisons with Cloudflare R2 or Google Drive API + MCP\n\n- [Amazon S3 vs Google Drive API + MCP](https://www.anchorterminal.com/compare/amazon-s3-vs-google-drive-api.md)\n- [Backblaze B2 vs Google Drive API + MCP](https://www.anchorterminal.com/compare/backblaze-b2-vs-google-drive-api.md)\n- [Box API + MCP vs Cloudflare R2](https://www.anchorterminal.com/compare/box-api-vs-cloudflare-r2.md)\n- [Cloudflare R2 vs Dropbox API + MCP](https://www.anchorterminal.com/compare/cloudflare-r2-vs-dropbox-api.md)\n- [Google Drive API + MCP vs Tigris](https://www.anchorterminal.com/compare/google-drive-api-vs-tigris.md)\n- [Amazon S3 vs Cloudflare R2](https://www.anchorterminal.com/compare/amazon-s3-vs-cloudflare-r2.md)\n- [Backblaze B2 vs Cloudflare R2](https://www.anchorterminal.com/compare/backblaze-b2-vs-cloudflare-r2.md)\n- [Bunny Storage vs Cloudflare R2](https://www.anchorterminal.com/compare/bunny-storage-vs-cloudflare-r2.md)\n- [Cloudflare R2 vs Tigris](https://www.anchorterminal.com/compare/cloudflare-r2-vs-tigris.md)\n- [Box API + MCP vs Google Drive API + MCP](https://www.anchorterminal.com/compare/box-api-vs-google-drive-api.md)\n- [Dropbox API + MCP vs Google Drive API + MCP](https://www.anchorterminal.com/compare/dropbox-api-vs-google-drive-api.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Cloudflare R2 vs Google Drive API + MCP",
        "url": ""
      }
    ],
    "description": "Google Drive API + MCP has a score of 78.6 (A) against Cloudflare R2's 78.4 (A). Both do storage share. The largest gap is schema \u0026 documentation, 9 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Cloudflare R2 A 78.4",
      "Google Drive API + MCP A 78.6",
      "scores"
    ],
    "h1": "Cloudflare R2 vs Google Drive API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-cloudflare-r2-vs-google-drive-api.png",
    "path": "/compare/cloudflare-r2-vs-google-drive-api",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Cloudflare R2 vs Google Drive API + MCP for AI agents",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/cloudflare-r2-vs-google-drive-api"
  },
  "tokens": {
    "markdown": 1550,
    "slim": 330
  },
  "version": 1
}
