{
  "data": {
    "a": {
      "slug": "mapbox",
      "name": "Mapbox APIs + MCP",
      "vendor": "Mapbox",
      "vendorUrl": "https://www.mapbox.com",
      "kind": "http-api",
      "category": "maps",
      "summary": "Geocoding v6 with batch, Search Box for places and categories, Directions, Matrix, Isochrone, Map Matching, route optimisation, static images and map tiles.",
      "url": "https://www.anchorterminal.com/tools/mapbox",
      "markdownUrl": "https://www.anchorterminal.com/tools/mapbox.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/mapbox.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/mapbox.json",
      "repo": "https://github.com/mapbox/mcp-server",
      "license": "MIT (MCP server)",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://api.mapbox.com",
      "packages": [
        {
          "registry": "npm",
          "name": "@mapbox/mcp-server"
        }
      ],
      "auth": "mixed",
      "authNotes": "Access tokens (public pk. or secret sk.) passed as the access_token query parameter on every REST call. The hosted MCP at mcp.mapbox.com signs in with an OAuth flow in the browser. The local server reads MAPBOX_ACCESS_TOKEN.",
      "pricing": "freemium",
      "pricingNotes": "Free monthly allowance per API, then tiered pay as you go. Temporary Geocoding 100,000 free, then $0.75 per 1,000 down to $0.45 above 1 million. Permanent Geocoding (results you may store) has no free allowance and costs $5 per 1,000, then $4 above 500,000. Search Box 500 free sessions then $3 per 1,000 sessions, or 50,000 free requests then $1 per 1,000. Directions, Matrix (by element), Isochrone, Map Matching and route optimisation 100,000 free each, then $2 per 1,000 down to $1.20. Static Images 50,000 free then $1 per 1,000. Vector tiles 200,000 free then $0.25 per 1,000. GL JS map loads 50,000 free then $5 per 1,000 (https://www.mapbox.com/pricing).",
      "priceSummary": "$0.75 / 1k req",
      "where": "both",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": 29,
      "popularity": {
        "githubStars": 353,
        "npmWeekly": 1974,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.mapbox.com/api/",
      "llmsTxt": "https://docs.mapbox.com/llms.txt",
      "registryName": "io.github.mapbox/mcp-server",
      "capabilities": [
        "geo.geocode",
        "geo.reverse",
        "geo.places",
        "geo.routing",
        "geo.tiles"
      ],
      "tags": [
        "hosted",
        "mcp",
        "llms-txt",
        "official",
        "oauth",
        "typescript",
        "free-tier",
        "enterprise",
        "closed-source"
      ],
      "lastRelease": "2026-07-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 75.2,
        "grade": "BB",
        "agentReady": true,
        "rank": 39,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 1,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 88,
          "maintenance": 80,
          "payments": 30,
          "reliability": 82,
          "schema": 85,
          "security": 71,
          "transparency": 86
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Official MCP server, hosted at mcp.mapbox.com with OAuth or run locally, listed in the MCP registry. Storing geocodes needs the Permanent tier at $5 per 1,000, about 6.7 times the temporary rate.",
        "strengths": [
          "Official MCP server, hosted at mcp.mapbox.com with OAuth or run locally, listed in the MCP registry",
          "Every MCP tool annotated read-only and idempotent, with typed Zod input and output schemas",
          "Scoped public and secret tokens, URL restrictions and one-hour temporary tokens",
          "SOC 2 Type II, a HackerOne bug bounty and a dated subprocessor list (4 June 2026)",
          "At least 90 days' emailed notice before an API endpoint is deprecated"
        ],
        "weaknesses": [
          "Storing geocodes needs the Permanent tier at $5 per 1,000, about 6.7 times the temporary rate",
          "Geocoding results may only be used with a Mapbox map",
          "REST calls take the token as the access_token query parameter",
          "29 MCP tools load at once on the hosted endpoint, with filtering documented only for the local server",
          "No SLA on the pricing page or in the API docs, and no security.txt"
        ],
        "agentNotes": [
          "Set permanent=true only when the result goes into a database, since it moves the call to the $5 per 1,000 rate",
          "Keep search_and_geocode_tool queries under 200 characters, the live limit, not the 256 the API docs state",
          "On 429, wait until the X-Rate-Limit-Reset timestamp, since no Retry-After is sent",
          "Run the local server with --enable-tools to load only the tools the task needs",
          "Use category_search_tool for generic place types like coffee shops, not search_and_geocode_tool"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 8,
        "avgRating": 3.6,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 75.2
          }
        ],
        "editorialScores": {
          "ergonomics": 88,
          "maintenance": 80,
          "payments": 30,
          "reliability": 82,
          "schema": 85,
          "security": 71,
          "transparency": 82
        },
        "provenanceScore": 90
      },
      "connect": {
        "http": "curl \"https://api.mapbox.com/search/geocode/v6/forward?q=10%20Downing%20Street%2C%20London\u0026limit=1\u0026access_token=$MAPBOX_ACCESS_TOKEN\"",
        "claudeCode": "claude mcp add --transport http mapbox https://mcp.mapbox.com/mcp",
        "config": {
          "mcpServers": {
            "mapbox": {
              "args": [
                "-y",
                "@mapbox/mcp-server"
              ],
              "command": "npx",
              "env": {
                "MAPBOX_ACCESS_TOKEN": "${MAPBOX_ACCESS_TOKEN}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/geo.geocode",
        "tool": "https://letme.dev/mapbox"
      },
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Temporary Geocoding",
          "unit": "1k-requests",
          "usd": 0.75,
          "note": "After 100,000 free a month, $0.45 above 1 million"
        },
        {
          "item": "Permanent Geocoding",
          "unit": "1k-requests",
          "usd": 5,
          "note": "No free allowance, $4 above 500,000"
        },
        {
          "item": "Search Box sessions",
          "unit": "1k-requests",
          "usd": 3,
          "note": "Per 1,000 sessions after 500 free"
        },
        {
          "item": "Directions",
          "unit": "1k-requests",
          "usd": 2,
          "note": "After 100,000 free a month, $1.20 above 1 million"
        },
        {
          "item": "Matrix",
          "unit": "1k-requests",
          "usd": 2,
          "note": "Per 1,000 elements after 100,000 free"
        },
        {
          "item": "Static Images",
          "unit": "1k-requests",
          "usd": 1,
          "note": "After 50,000 free a month"
        },
        {
          "item": "Vector tiles",
          "unit": "1k-requests",
          "usd": 0.25,
          "note": "After 200,000 free a month"
        }
      ],
      "provenance": {
        "legalEntity": "Mapbox, Inc.",
        "domain": "mapbox.com",
        "domainRegistered": "2003-11-27",
        "domainNote": "mapbox.com was registered in 2003, years before Mapbox started, so the domain was bought later.",
        "endpointOnVendorDomain": true,
        "terms": "https://www.mapbox.com/legal/tos",
        "privacy": "https://www.mapbox.com/legal/privacy",
        "statusPage": "https://status.mapbox.com",
        "changelog": "https://docs.mapbox.com/api/changelog/",
        "securityTxt": "none",
        "checked": "2026-10-01",
        "notes": [
          "The terms of service were last updated 31 March 2024 and point to separate product terms for per-API rules.",
          "The terms let Mapbox create de-identified aggregated data from customer usage.",
          "www.mapbox.com/.well-known/security.txt returns 404.",
          "The top-level API changelog's newest entry is 5 November 2021. Current changes are in per-service changelogs and the MCP server's CHANGELOG.md on GitHub.",
          "Subprocessor list (22 entries with locations) last updated 4 June 2026."
        ],
        "score": 90
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/mapbox.json",
      "live": {
        "slug": "mapbox",
        "probe": {
          "target": "https://api.mapbox.com",
          "method": "get",
          "lastAt": "2026-10-04T23:17:13.576436342Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 19,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 24,
          "p95ms24h": 47,
          "samples24h": 272,
          "samples30d": 892,
          "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": 264,
              "ok": 264
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.mapbox.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-04T23:17:44.96891617Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "mapbox/mcp-server",
            "version": "v0.14.0",
            "released": "2026-07-30",
            "seenAt": "2026-10-04T16:32:28.642802016Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.github.mapbox/mcp-server",
            "version": "99.0.0-dev",
            "seenAt": "2026-10-03T23:29:28.630222764Z"
          },
          {
            "registry": "npm",
            "name": "@mapbox/mcp-server",
            "version": "0.14.0",
            "seenAt": "2026-10-04T16:32:27.7067637Z"
          }
        ],
        "githubStars": 358,
        "npmWeekly": 1814,
        "securityTxt": {
          "url": "https://mapbox.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:16:01.86557058Z"
        },
        "llmsTxt": {
          "url": "https://docs.mapbox.com/llms.txt",
          "ok": false,
          "status": 403,
          "checkedAt": "2026-10-04T15:17:58.319982851Z"
        },
        "domain": {
          "domain": "mapbox.com",
          "registered": "2003-11-27",
          "source": "https://rdap.verisign.com/com/v1/domain/mapbox.com",
          "checkedAt": "2026-10-04T13:08:41.082804792Z"
        },
        "pages": [
          {
            "url": "https://docs.mapbox.com/api/changelog/",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-10-04T15:43:48.189562984Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "395e3e05bd01"
          },
          {
            "url": "https://www.mapbox.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:51:21.320380793Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c404d9072f3f"
          },
          {
            "url": "https://www.mapbox.com/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:51:17.093512152Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "23a9cfdfb638"
          },
          {
            "url": "https://www.mapbox.com/legal/tos",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:51:19.370372443Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2091a3b9c941"
          }
        ],
        "updatedAt": "2026-10-04T23:17:44.96891617Z"
      }
    },
    "b": {
      "slug": "opencage",
      "name": "OpenCage Geocoding API",
      "vendor": "OpenCage",
      "vendorUrl": "https://opencagedata.com",
      "kind": "http-api",
      "category": "maps",
      "summary": "Forward and reverse geocoding on one endpoint, built on OpenStreetMap and other open data, with optional annotations and JSON, GeoJSON, XML or Google-compatible output.",
      "url": "https://www.anchorterminal.com/tools/opencage",
      "markdownUrl": "https://www.anchorterminal.com/tools/opencage.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/opencage.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/opencage.json",
      "repo": "https://github.com/OpenCageData/opencage-geocoding-mcp",
      "license": "MIT (MCP server)",
      "transports": [
        "http",
        "stdio"
      ],
      "remoteUrl": "https://api.opencagedata.com/geocode/v1/json",
      "packages": [
        {
          "registry": "npm",
          "name": "@opencage/mcp-opencage-server"
        },
        {
          "registry": "npm",
          "name": "opencage-api-client"
        },
        {
          "registry": "pypi",
          "name": "opencage"
        }
      ],
      "auth": "api-key",
      "authNotes": "A 32-character key passed as the key query parameter. No headers are needed. The MCP server reads OPENCAGE_API_KEY.",
      "pricing": "paid",
      "pricingNotes": "Free trial of 2,500 requests a day at 1 a second, for testing only, no card. Monthly subscriptions by daily volume. X-Small $50 (10,000 a day, 15 a second), Small $125 (30,000 a day), Medium $500 (125,000 a day), Large $1,000 (300,000 a day), Enterprise from $2,000. Also priced in GBP (£40 to £800) and eleven other currencies. One-time plans are usable for up to a year. Subscriptions have no hard limits (https://opencagedata.com/pricing, https://opencagedata.com/api.md).",
      "priceSummary": "$50 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": 3,
      "popularity": {
        "githubStars": 19,
        "npmWeekly": 5501,
        "pypiWeekly": 137628,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://opencagedata.com/api",
      "llmsTxt": "https://opencagedata.com/llms.txt",
      "registryName": "io.github.OpenCageData/opencage-geocoding-mcp",
      "capabilities": [
        "geo.geocode",
        "geo.reverse"
      ],
      "tags": [
        "hosted",
        "llms-txt",
        "mcp",
        "official",
        "python",
        "typescript",
        "open-data",
        "no-card",
        "eu"
      ],
      "lastRelease": "2026-06-25",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 69.5,
        "grade": "B",
        "agentReady": false,
        "rank": 113,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 2,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 86,
          "maintenance": 66,
          "payments": 35,
          "reliability": 85,
          "schema": 77,
          "security": 47,
          "transparency": 87
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "high",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Permanent storage of results on every plan, including after you cancel. Geocoding only, no place search or routing.",
        "strengths": [
          "Permanent storage of results on every plan, including after you cancel",
          "Separate 402 (quota spent) and 429 (too fast) responses",
          "llms.txt with 70 or more Markdown pages, and agent skills on GitHub",
          "EU hosting, logs deleted after six months and a no_record option",
          "Subscriptions don't cut off or bill overage when you go over"
        ],
        "weaknesses": [
          "Geocoding only, no place search or routing",
          "The key can only be sent as a query parameter",
          "The free trial isn't for production use",
          "MCP server is stdio-only, has no tool annotations, and npm still serves 1.0.3 from September 2025",
          "No SOC 2 or ISO 27001 of its own"
        ],
        "agentNotes": [
          "Add no_annotations=1 and limit=1 when you only need coordinates",
          "Stop on 402, which means the day's quota is gone, and back off on 429",
          "Add no_record=1 when the query holds personal data",
          "Redact the key parameter before logging request URLs",
          "Credit OpenStreetMap wherever you show results"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "high",
            "grade": "B",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 69.5
          }
        ],
        "editorialScores": {
          "ergonomics": 86,
          "maintenance": 66,
          "payments": 35,
          "reliability": 85,
          "schema": 77,
          "security": 47,
          "transparency": 84
        },
        "provenanceScore": 90
      },
      "connect": {
        "http": "curl \"https://api.opencagedata.com/geocode/v1/json?q=10%20Downing%20Street%2C%20London\u0026limit=1\u0026no_annotations=1\u0026key=$OPENCAGE_API_KEY\"",
        "claudeCode": "claude mcp add opencage -e OPENCAGE_API_KEY=$OPENCAGE_API_KEY -- npx -y @opencage/mcp-opencage-server",
        "config": {
          "mcpServers": {
            "opencage": {
              "args": [
                "-y",
                "@opencage/mcp-opencage-server"
              ],
              "command": "npx",
              "env": {
                "OPENCAGE_API_KEY": "${OPENCAGE_API_KEY}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/geo.geocode",
        "tool": "https://letme.dev/opencage"
      },
      "area": "everyday",
      "unitPrices": [
        {
          "item": "X-Small plan",
          "unit": "month",
          "usd": 50,
          "note": "10,000 requests a day, 15 a second"
        },
        {
          "item": "Small plan",
          "unit": "month",
          "usd": 125,
          "note": "30,000 requests a day, 20 a second"
        },
        {
          "item": "Medium plan",
          "unit": "month",
          "usd": 500,
          "note": "125,000 requests a day, 25 a second"
        },
        {
          "item": "Large plan",
          "unit": "month",
          "usd": 1000,
          "note": "300,000 requests a day, 40 a second"
        }
      ],
      "provenance": {
        "legalEntity": "OpenCage GmbH",
        "domain": "opencagedata.com",
        "domainRegistered": "2013-05-16",
        "endpointOnVendorDomain": true,
        "terms": "https://opencagedata.com/terms",
        "privacy": "https://opencagedata.com/gdpr",
        "statusPage": "https://status.opencagedata.com",
        "changelog": "https://github.com/OpenCageData/opencagedata-misc-docs/blob/master/CHANGES.md",
        "securityTxt": "unknown",
        "checked": "2026-10-01",
        "notes": [
          "The terms give a Berlin address, commercial register HRB 272249 and VAT ID DE323788688.",
          "Cancelling doesn't refund fees already paid. If OpenCage ends the service it refunds the rest of the billing period pro rata.",
          "robots.txt blocked our fetch of /.well-known/security.txt. A separate security policy page exists at opencagedata.com/security-policy.",
          "The API docs point to the dated changelog in OpenCageData/opencagedata-misc-docs (CHANGES.md). Changes are also announced on blog.opencagedata.com.",
          "The GDPR page was last updated 22 July 2026."
        ],
        "score": 90
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/opencage.json",
      "live": {
        "slug": "opencage",
        "probe": {
          "target": "https://api.opencagedata.com/geocode/v1/json",
          "method": "get",
          "lastAt": "2026-10-04T23:17:14.972018825Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 235,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 157,
          "p95ms24h": 290,
          "samples24h": 272,
          "samples30d": 892,
          "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": 264,
              "ok": 264
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.opencagedata.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T21:40:21.729693769Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "io.github.OpenCageData/opencage-geocoding-mcp",
            "version": "1.0.3",
            "seenAt": "2026-10-03T23:29:28.630222764Z"
          },
          {
            "registry": "npm",
            "name": "@opencage/mcp-opencage-server",
            "version": "1.0.3",
            "seenAt": "2026-10-04T16:35:43.050242515Z"
          },
          {
            "registry": "npm",
            "name": "opencage-api-client",
            "version": "2.2.0",
            "seenAt": "2026-10-04T16:35:43.915854234Z"
          },
          {
            "registry": "pypi",
            "name": "opencage",
            "version": "3.4.0",
            "released": "2026-06-08",
            "seenAt": "2026-10-04T16:35:45.327197259Z"
          }
        ],
        "githubStars": 19,
        "npmWeekly": 49,
        "pypiWeekly": 203446,
        "securityTxt": {
          "url": "https://opencagedata.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-01-31T00:00:00z",
          "checkedAt": "2026-10-04T15:16:02.633729582Z"
        },
        "llmsTxt": {
          "url": "https://opencagedata.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:04.973159436Z"
        },
        "domain": {
          "domain": "opencagedata.com",
          "registered": "2013-05-16",
          "source": "https://rdap.verisign.com/com/v1/domain/opencagedata.com",
          "checkedAt": "2026-10-04T13:05:30.747621602Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/OpenCageData/opencagedata-misc-docs/master/CHANGES.md",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-10-04T15:47:19.24688822Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "cd00a99974a7"
          },
          {
            "url": "https://opencagedata.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:46:28.030048478Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2a4d55e4f714"
          },
          {
            "url": "https://opencagedata.com/gdpr",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:46:25.96762768Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ce5fd3b90f75"
          },
          {
            "url": "https://opencagedata.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:46:30.051951018Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "eae80c1639e4"
          }
        ],
        "updatedAt": "2026-10-04T23:17:14.972018825Z"
      }
    },
    "summary": "Mapbox APIs + MCP has a score of 75.2 (BB) against OpenCage Geocoding API's 69.5 (B). Both do geo geocode. The largest gap is security \u0026 auth, 24 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/mapbox-vs-opencage",
    "json": "https://www.anchorterminal.com/compare/mapbox-vs-opencage.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/mapbox-vs-opencage.md",
    "slim": "https://www.anchorterminal.com/compare/mapbox-vs-opencage.min.md"
  },
  "markdown": "Mapbox APIs + MCP has a score of 75.2 (BB) against OpenCage Geocoding API's 69.5 (B). Both do geo geocode. The largest gap is security \u0026 auth, 24 points.\n\n- Mapbox APIs + MCP: grade BB, 75.2/100, rank #39 of 452. Markdown https://www.anchorterminal.com/tools/mapbox.md · JSON https://www.anchorterminal.com/api/v1/tools/mapbox.json\n- OpenCage Geocoding API: grade B, 69.5/100, rank #113 of 452. Markdown https://www.anchorterminal.com/tools/opencage.md · JSON https://www.anchorterminal.com/api/v1/tools/opencage.json\n\n## Which one, for what\n\nPick Mapbox APIs + MCP for schema \u0026 documentation (+8), security \u0026 auth (+24), maintenance \u0026 community (+14).\n\nPick OpenCage Geocoding API for payments \u0026 pricing (+5).\n\n## Score by category\n\n| Category | Weight | Mapbox APIs + MCP | OpenCage Geocoding API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 82 | 85 | OpenCage Geocoding API +3 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 85 | 77 | Mapbox APIs + MCP +8 |\n| Agent ergonomics | 13% (16.2 this run) | 88 | 86 | Mapbox APIs + MCP +2 |\n| Security \u0026 auth | 14% (17.5 this run) | 71 | 47 | Mapbox APIs + MCP +24 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 35 | OpenCage Geocoding API +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 80 | 66 | Mapbox APIs + MCP +14 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 86 | 87 | OpenCage Geocoding API +1 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **75.2 · BB** | **69.5 · B** | |\n\n## Facts side by side\n\n| Fact | Mapbox APIs + MCP | OpenCage Geocoding API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Mapbox | OpenCage |\n| Hosted endpoint | `https://api.mapbox.com` | `https://api.opencagedata.com/geocode/v1/json` |\n| Transports | HTTP, Streamable HTTP, stdio | HTTP, stdio |\n| Auth | OAuth or key | API key |\n| Pricing | Freemium | Paid |\n| x402 | no | no |\n| Licence | MIT (MCP server) | MIT (MCP server) |\n| Tools exposed | 29 | 3 |\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 | yes | no |\n| llms.txt | yes | yes |\n| MCP registry | `io.github.mapbox/mcp-server` | `io.github.OpenCageData/opencage-geocoding-mcp` |\n| Last release | 2026-07-30 | 2026-06-25 |\n| Popularity | 353 stars, 2k npm/wk | 19 stars, 5.5k npm/wk, 138k PyPI/wk |\n| Agent reviews | 3.6/5 (8) | 3.5/5 (2) |\n\n## Verdicts\n\n**Mapbox APIs + MCP.** Official MCP server, hosted at mcp.mapbox.com with OAuth or run locally, listed in the MCP registry. Storing geocodes needs the Permanent tier at $5 per 1,000, about 6.7 times the temporary rate.\n\n**OpenCage Geocoding API.** Permanent storage of results on every plan, including after you cancel. Geocoding only, no place search or routing.\n\n## Before you call either\n\n### Mapbox APIs + MCP\n\n1. Set permanent=true only when the result goes into a database, since it moves the call to the $5 per 1,000 rate\n2. Keep search_and_geocode_tool queries under 200 characters, the live limit, not the 256 the API docs state\n3. On 429, wait until the X-Rate-Limit-Reset timestamp, since no Retry-After is sent\n4. Run the local server with --enable-tools to load only the tools the task needs\n5. Use category_search_tool for generic place types like coffee shops, not search_and_geocode_tool\n\n### OpenCage Geocoding API\n\n1. Add no_annotations=1 and limit=1 when you only need coordinates\n2. Stop on 402, which means the day's quota is gone, and back off on 429\n3. Add no_record=1 when the query holds personal data\n4. Redact the key parameter before logging request URLs\n5. Credit OpenStreetMap wherever you show results\n\n## Other comparisons with Mapbox APIs + MCP or OpenCage Geocoding API\n\n- [Geoapify Location Platform + MCP vs Mapbox APIs + MCP](https://www.anchorterminal.com/compare/geoapify-vs-mapbox.md)\n- [Geoapify Location Platform + MCP vs OpenCage Geocoding API](https://www.anchorterminal.com/compare/geoapify-vs-opencage.md)\n- [Google Maps Platform + Grounding Lite MCP vs Mapbox APIs + MCP](https://www.anchorterminal.com/compare/google-maps-platform-vs-mapbox.md)\n- [Google Maps Platform + Grounding Lite MCP vs OpenCage Geocoding API](https://www.anchorterminal.com/compare/google-maps-platform-vs-opencage.md)\n- [LocationIQ vs Mapbox APIs + MCP](https://www.anchorterminal.com/compare/locationiq-vs-mapbox.md)\n- [LocationIQ vs OpenCage Geocoding API](https://www.anchorterminal.com/compare/locationiq-vs-opencage.md)\n- [Mapbox APIs + MCP vs Stadia Maps](https://www.anchorterminal.com/compare/mapbox-vs-stadia-maps.md)\n- [Mapbox APIs + MCP vs TomTom Maps APIs + MCP](https://www.anchorterminal.com/compare/mapbox-vs-tomtom.md)\n- [OpenCage Geocoding API vs Stadia Maps](https://www.anchorterminal.com/compare/opencage-vs-stadia-maps.md)\n- [OpenCage Geocoding API vs TomTom Maps APIs + MCP](https://www.anchorterminal.com/compare/opencage-vs-tomtom.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-04",
    "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": "Mapbox APIs + MCP vs OpenCage Geocoding API",
        "url": ""
      }
    ],
    "description": "Mapbox APIs + MCP has a score of 75.2 (BB) against OpenCage Geocoding API's 69.5 (B). Both do geo geocode. The largest gap is security \u0026 auth, 24 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Mapbox APIs + MCP BB 75.2",
      "OpenCage Geocoding API B 69.5",
      "scores"
    ],
    "h1": "Mapbox APIs + MCP vs OpenCage Geocoding API",
    "image": "https://www.anchorterminal.com/assets/og/compare-mapbox-vs-opencage.png",
    "path": "/compare/mapbox-vs-opencage",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Mapbox APIs + MCP vs OpenCage Geocoding API for AI agents",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/mapbox-vs-opencage"
  },
  "tokens": {
    "markdown": 1450,
    "slim": 330
  },
  "version": 1
}
