{
  "data": {
    "a": {
      "slug": "netlify",
      "name": "Netlify API + MCP",
      "vendor": "Netlify, Inc.",
      "vendorUrl": "https://www.netlify.com",
      "kind": "http-api",
      "category": "infrastructure",
      "summary": "Netlify's platform for deploying and running web projects, reached through a REST API with a public OpenAPI spec, the netlify-cli command line tool and an official MCP server, hosted at netlify-mcp.netlify.app or run locally from npm.",
      "url": "https://www.anchorterminal.com/tools/netlify",
      "markdownUrl": "https://www.anchorterminal.com/tools/netlify.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/netlify.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/netlify.json",
      "dns": "netlify.grade.anchorterminal.com",
      "repo": "https://github.com/netlify/netlify-mcp",
      "license": "ISC for the MCP server (@netlify/mcp) and MIT for the CLI (netlify-cli). The Netlify platform they act on is a proprietary service under Netlify's terms",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://api.netlify.com/api/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "@netlify/mcp"
        },
        {
          "registry": "npm",
          "name": "netlify-cli"
        }
      ],
      "auth": "mixed",
      "authNotes": "Personal access tokens from Applications \u003e Personal access tokens, named, given an expiry date at creation and sent as `Authorization: Bearer`; no scopes are documented, SAML teams need an opt-in at creation, and a password reset invalidates every token. Public integrations use OAuth2 apps registered at app.netlify.com/applications (the spec declares an implicit flow with no scopes). The CLI stores a token from `netlify login` in config.json or reads `NETLIFY_AUTH_TOKEN`. The hosted MCP server signs in with OAuth 2.1 (PKCE, dynamic client registration) and advertises the scopes offline_access, read, write and claudeai; the local server reads the CLI's token or `NETLIFY_PERSONAL_ACCESS_TOKEN`.",
      "pricing": "freemium",
      "pricingNotes": "Free plan at $0 with 300 credits a month, deploys from the API, functions, Blobs, Database and custom domains. Personal $9 a month with 1,000 credits, Pro $20 a month with unlimited members and 3,000 credits, Enterprise custom with a 99.99 per cent SLA. Usage is metered in credits, about $0.00667 each at the Pro pack rate (1,500 for $10; Personal 500 for $5). A production deploy is 15 credits, bandwidth 20 a GB, compute 10 a GB-hour and web requests 2 per 10,000. Whether a card is needed is not stated. `netlify deploy --allow-anonymous` publishes without an account, to be claimed within an hour.",
      "priceSummary": "$9 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the OpenAPI spec (no 402 response), the API guide, the MCP source or the pricing page (checked 2026-11-03).",
        "endpoints": []
      },
      "toolCount": 11,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 58373,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://docs.netlify.com/api-and-cli-guides/api-guides/get-started-with-api/",
      "llmsTxt": "https://docs.netlify.com/llms.txt",
      "openapi": "https://raw.githubusercontent.com/netlify/open-api/master/swagger.yml",
      "capabilities": [
        "infra.cloud",
        "code.deploy",
        "observability.logs"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "mcp",
        "remote-mcp",
        "cli",
        "oauth",
        "pat",
        "llms-txt",
        "openapi",
        "status-page",
        "bug-bounty",
        "soc2",
        "iso27001",
        "sla",
        "typescript",
        "go",
        "agent-skills",
        "enterprise"
      ],
      "lastRelease": "2026-10-26",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 69.4,
        "grade": "B",
        "agentReady": false,
        "rank": 226,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 3,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 69,
          "maintenance": 87,
          "payments": 55,
          "reliability": 67,
          "schema": 79,
          "security": 59,
          "transparency": 81
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "A public OpenAPI spec with 188 operations, documented rate limits, an anonymous deploy route and an MCP server released weekly through October 2026 with complete tool annotations. Personal access tokens and the OAuth flows carry no scopes, the hosted MCP enforces none on tool calls, and the status feed shows several site-serving incidents in the 90 days to 3 November.",
        "bestFor": "An agent that builds and deploys web projects, sets environment variables and reads forms or logs on a team's Netlify account, including with no account through anonymous deploys.",
        "strengths": [
          "OpenAPI spec (Swagger 2.0, version 2.63.1) with 188 operations, llms.txt and a Markdown twin of every docs page",
          "Rate limits published (500 a minute, 3 deploys a minute, 100 a day) with X-RateLimit headers on every response",
          "`netlify deploy --allow-anonymous` publishes a project without an account, claimable within an hour",
          "MCP server with OAuth 2.1 and PKCE, every tool hint declared since v1.18.0 (7 October 2026), and six tagged releases between 25 September and 26 October",
          "Public HackerOne bug bounty, SOC 2 Type II, ISO 27001 and 27018, and a trust centre with a downloadable DPA and subprocessor list"
        ],
        "weaknesses": [
          "Personal access tokens and OAuth apps have no scopes, so a token reaches every team its owner belongs to",
          "The hosted MCP server advertises read and write scopes but its source enforces none on tool calls",
          "No idempotency keys for deploys or site creation, and no documented 429 retry guidance beyond the headers",
          "19 incidents in the status feed from 18 August to 2 November 2026, including errors reaching hosted sites for about 85 minutes on 21 September",
          "No entry in the official MCP registry, and the privacy statement contradicts itself on AI training (opt-in in one section, never in another)"
        ],
        "agentNotes": [
          "Send a `User-Agent` naming your app and `Authorization: Bearer $NETLIFY_AUTH_TOKEN`; watch X-RateLimit-Remaining and stop before 3 deploys a minute or 100 a day",
          "Deploy with `netlify deploy --allow-anonymous` when the person has no account yet, and tell them to claim the project within an hour",
          "Poll GET /api/v1/deploys/{deploy_id} until `state` is `ready`; a deploy call that runs over 30 seconds is cut off, so send large deploys with `\"async\": true`",
          "Page lists with `page` and `per_page` (100 at most) and follow the `Link` header's `rel=\"next\"`",
          "Expect the hosted MCP's deploy tool to hand back a CLI command for the person to run; the local server deploys from the working directory itself"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 69.4
          }
        ],
        "editorialScores": {
          "ergonomics": 69,
          "maintenance": 87,
          "payments": 55,
          "reliability": 67,
          "schema": 79,
          "security": 59,
          "transparency": 73
        },
        "provenanceScore": 89,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-03",
            "maintenance": "2026-11-03",
            "payments": "2026-11-03",
            "reliability": "2026-11-03",
            "schema": "2026-11-03",
            "security": "2026-11-03",
            "transparency": "2026-11-03"
          },
          "last": "2026-11-03",
          "oldest": "2026-11-03",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npm install -g netlify-cli",
        "http": "curl -H \"User-Agent: MyApp (you@example.com)\" -H \"Authorization: Bearer $NETLIFY_AUTH_TOKEN\" https://api.netlify.com/api/v1/sites",
        "claudeCode": "claude mcp add --transport http netlify https://netlify-mcp.netlify.app/mcp",
        "config": {
          "mcpServers": {
            "netlify": {
              "url": "https://netlify-mcp.netlify.app/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/infra.cloud",
        "tool": "https://letme.dev/netlify"
      },
      "area": "developer",
      "unitPrices": [
        {
          "item": "Personal",
          "unit": "month",
          "usd": 9,
          "note": "1,000 credits a month"
        },
        {
          "item": "Pro",
          "unit": "month",
          "usd": 20,
          "note": "Unlimited members, 3,000 credits a month"
        },
        {
          "item": "Credit (Pro pack)",
          "unit": "credit",
          "usd": 0.00667,
          "note": "1,500 credits for $10. A production deploy is 15 credits, bandwidth 20 a GB, compute 10 a GB-hour"
        },
        {
          "item": "Bandwidth",
          "unit": "gb",
          "usd": 0.13,
          "note": "20 credits a GB at the Pro pack rate"
        }
      ],
      "provenance": {
        "legalEntity": "Netlify, Inc.",
        "domain": "netlify.com",
        "domainRegistered": "2014-06-09",
        "endpointOnVendorDomain": true,
        "terms": "https://www.netlify.com/legal/terms-of-use/",
        "privacy": "https://www.netlify.com/privacy/",
        "statusPage": "https://www.netlifystatus.com",
        "changelog": "https://www.netlify.com/changelog/",
        "securityTxt": "none",
        "checked": "2026-11-03",
        "notes": [
          "The terms of use (last updated 14 October 2026) name Netlify, Inc. under California law and contain no clause on automated access or scraping; the services run under separate self-serve and enterprise subscription agreements, the self-serve one served as a PDF our reader could not extract.",
          "The privacy statement (last updated 10 April 2026) names Netlify, Inc. and affiliates, a DPA for enterprise customers, and says in one place that content is not used to train AI models unless the user opts in and in another that Customer Content is never used for training.",
          "www.netlify.com and docs.netlify.com robots.txt allow every crawler, name ClaudeBot and Claude-Web among allowed AI crawlers, and set Content-Signal search=yes, ai-input=yes, ai-train=yes. www.netlifystatus.com disallows /api/ and /embed/, so the status history was read from /history.atom.",
          "RDAP gives netlify.com a registration date of 9 June 2014.",
          "www.netlify.com/.well-known/security.txt returns 404. Vulnerability reports go to the public HackerOne programme per the security transparency post.",
          "The trust centre at netlify.com/trust-center lists subprocessors (all US) with CSV and PDF downloads and an RSS feed, and the DPA as a direct download."
        ],
        "score": 89
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/netlify.json",
      "live": {
        "slug": "netlify",
        "probe": {
          "target": "https://api.netlify.com/api/v1",
          "method": "get",
          "lastAt": "2026-11-04T20:47:02.5486596Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 511,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 457,
          "p95ms24h": 548,
          "samples24h": 55,
          "samples30d": 55,
          "days": [
            {
              "date": "2026-11-04",
              "probes": 55,
              "ok": 55
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.netlifystatus.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-04T20:39:30.739538782Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "netlify/netlify-mcp",
            "version": "mcp-v1.21.0",
            "released": "2026-10-26",
            "seenAt": "2026-11-04T20:39:31.488292719Z"
          },
          {
            "registry": "npm",
            "name": "@netlify/mcp",
            "version": "1.21.0",
            "seenAt": "2026-11-04T20:39:29.42118318Z"
          },
          {
            "registry": "npm",
            "name": "netlify-cli",
            "version": "27.16.2",
            "seenAt": "2026-11-04T20:39:30.256102488Z"
          }
        ],
        "githubStars": 69,
        "npmWeekly": 54818,
        "securityTxt": {
          "url": "https://netlify.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-04T15:53:05.436387975Z"
        },
        "updatedAt": "2026-11-04T20:47:02.5486596Z"
      }
    },
    "answer": "Terraform MCP Server and Netlify API + MCP score within a point of each other on agent readiness, 69.9 (B) and 69.4 (B).",
    "b": {
      "slug": "terraform-mcp",
      "name": "Terraform MCP Server",
      "vendor": "HashiCorp",
      "vendorUrl": "https://developer.hashicorp.com/terraform/mcp-server",
      "kind": "mcp",
      "category": "infrastructure",
      "summary": "HashiCorp's official MCP server for Terraform and its registry.",
      "url": "https://www.anchorterminal.com/tools/terraform-mcp",
      "markdownUrl": "https://www.anchorterminal.com/tools/terraform-mcp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/terraform-mcp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/terraform-mcp.json",
      "dns": "terraform-mcp.grade.anchorterminal.com",
      "repo": "https://github.com/hashicorp/terraform-mcp-server",
      "license": "MPL-2.0",
      "transports": [
        "stdio",
        "streamable-http"
      ],
      "packages": [
        {
          "registry": "oci",
          "name": "hashicorp/terraform-mcp-server"
        }
      ],
      "auth": "mixed",
      "authNotes": "Registry tools need no credentials. HCP Terraform and Terraform Enterprise tools use `TFE_TOKEN` and `TFE_ADDRESS`. Mutating operations are off until `ENABLE_TF_OPERATIONS=true`. Hosted deployments can require `TF_MCP_SHARED_SECRET`.",
      "pricing": "free",
      "pricingNotes": "Open source under MPL-2.0. HCP Terraform usage is billed by HashiCorp as normal.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "Local open-source server, no payments.",
        "endpoints": []
      },
      "toolCount": 61,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-26"
      },
      "docsUrl": "https://developer.hashicorp.com/terraform/mcp-server",
      "registryName": "io.github.hashicorp/terraform-mcp-server",
      "capabilities": [
        "infra.terraform",
        "infra.cloud",
        "code.docs"
      ],
      "tags": [
        "official",
        "open-source",
        "docker",
        "safe-by-default",
        "enterprise"
      ],
      "lastRelease": "2026-10-23",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 69.9,
        "grade": "B",
        "agentReady": false,
        "rank": 201,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 1,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 74,
          "maintenance": 90,
          "payments": 60,
          "reliability": 83,
          "schema": 80,
          "security": 65,
          "transparency": 86
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "high",
          "date": "2026-11-01"
        },
        "negative": -6,
        "negativeNotes": [
          "-3: v1.1.0 (2026-07-14) fixed cross-tenant HCP Terraform token reuse in stateless HTTP mode and a client-supplied TFE_ADDRESS that could redirect the server's bearer token to any endpoint. Fixed and described in the changelog, but no advisory was published, so a reduced deduction (https://github.com/hashicorp/terraform-mcp-server/blob/main/CHANGELOG.md).",
          "-3: v1.4.0 (2026-10-23), a minor release on the 1.x line, renamed the default `search_providers` tool to `search_provider_docs` under BREAKING CHANGES, so clients and toolset settings using the old name stop working. The only earlier notice was the entry on the main branch from 14 October under an unreleased 1.3.1 heading, and HashiCorp deploys each release to its hosted server the same day. One term, which also covers the two breaking changes in the 1.1.0 minor (14 July) (https://github.com/hashicorp/terraform-mcp-server/blob/main/CHANGELOG.md)."
        ],
        "verdict": "Nine registry tools load by default and need no credentials, and releases are frequent and documented. Workspace updates, variable writes, team membership and access grants run without the operations flag, and 1.4.0 renamed the default search tool in a minor release.",
        "bestFor": "Agents writing or reviewing Terraform that need the real provider schema, and for teams on HCP Terraform who want plan and run inspection from chat.",
        "strengths": [
          "Nine registry tools load by default and need no credentials",
          "Deletes, force-unlock and apply-capable runs stay off until `ENABLE_TF_OPERATIONS=true`, and the hosted beta server leaves them out",
          "Refuses an HCP Terraform token sent in a query string and can pin HTTP deployments to an organisation allowlist",
          "Four tagged releases between 4 August and 23 October 2026, with breaking changes called out in the changelog",
          "No telemetry by default, and metrics go to your own OpenTelemetry collector when enabled"
        ],
        "weaknesses": [
          "Workspace updates, variable writes, team membership and access grants run without the operations flag",
          "Nine variable and variable-set tools have no readOnly or destructive hints in the default server",
          "Provider docs come back whole, with no section-level fetch",
          "1.4.0 renamed `search_providers` to `search_provider_docs` in a minor release, notice only on the main branch",
          "1.1.0 fixed a cross-tenant token leak in HTTP mode with no published advisory"
        ],
        "agentNotes": [
          "Call `search_provider_docs` (named `search_providers` before 1.4.0) first to get a `provider_doc_id`, then `get_provider_details` for that one document",
          "Pass the token in the `Authorization` header in HTTP mode. A token in a query parameter is refused",
          "Run `whoami` or `get_token_permissions` before writes to see what the token can do",
          "Check the workspace lock before `create_run`. A locked workspace returns an error naming `force_unlock_workspace`",
          "Pin the image tag (`1.4.1`), not `latest`, in scheduled jobs, since tool names can change in minor releases"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "high",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 69.9
          }
        ],
        "editorialScores": {
          "ergonomics": 74,
          "maintenance": 90,
          "payments": 60,
          "reliability": 83,
          "schema": 80,
          "security": 65,
          "transparency": 78
        },
        "provenanceScore": 94,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-01",
            "maintenance": "2026-11-01",
            "payments": "2026-11-01",
            "reliability": "2026-11-01",
            "schema": "2026-11-01",
            "security": "2026-11-01",
            "transparency": "2026-11-01"
          },
          "last": "2026-11-01",
          "lastMoved": "2026-11-01",
          "oldest": "2026-11-01",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "claudeCode": "claude mcp add terraform -- docker run -i --rm hashicorp/terraform-mcp-server:1.3.0",
        "config": {
          "mcpServers": {
            "terraform": {
              "args": [
                "run",
                "-i",
                "--rm",
                "hashicorp/terraform-mcp-server:1.3.0"
              ],
              "command": "docker"
            }
          }
        },
        "headless": {
          "mcpServers": {
            "terraform": {
              "args": [
                "run",
                "-i",
                "--rm",
                "-e",
                "TFE_TOKEN",
                "-e",
                "ENABLE_TF_OPERATIONS=true",
                "hashicorp/terraform-mcp-server:1.3.0"
              ],
              "command": "docker"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/infra.terraform",
        "tool": "https://letme.dev/terraform-mcp"
      },
      "sameCompany": [
        "hashicorp-vault"
      ],
      "area": "developer",
      "provenance": {
        "legalEntity": "HashiCorp, Inc. (an IBM Company)",
        "domain": "hashicorp.com",
        "domainRegistered": "2011-04-30",
        "endpointOnVendorDomain": null,
        "terms": "https://www.hashicorp.com/en/terms-of-service",
        "privacy": "https://www.hashicorp.com/en/trust/privacy",
        "statusPage": "https://status.hashicorp.com",
        "changelog": "https://github.com/hashicorp/terraform-mcp-server/releases",
        "securityTxt": "valid",
        "checked": "2026-10-01",
        "score": 94
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/terraform-mcp.json",
      "live": {
        "slug": "terraform-mcp",
        "vendorStatus": {
          "page": "https://status.hashicorp.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-04T20:40:00.307508032Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "hashicorp/terraform-mcp-server",
            "version": "v1.4.1",
            "released": "2026-10-23",
            "seenAt": "2026-11-03T21:03:06.490938596Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.github.hashicorp/terraform-mcp-server",
            "version": "1.4.1",
            "seenAt": "2026-11-04T17:11:44.552009456Z"
          }
        ],
        "githubStars": 1556,
        "securityTxt": {
          "url": "https://hashicorp.com/.well-known/security.txt",
          "state": "unknown",
          "checkedAt": "2026-11-04T15:54:24.257469769Z"
        },
        "domain": {
          "domain": "hashicorp.com",
          "registered": "2011-04-30",
          "source": "https://rdap.verisign.com/com/v1/domain/hashicorp.com",
          "checkedAt": "2026-11-01T14:22:57.160723134Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/hashicorp/terraform-mcp-server/main/CHANGELOG.md",
            "kind": "deprecations",
            "status": 304,
            "checkedAt": "2026-11-04T08:33:48.185170362Z",
            "changedAt": "2026-10-29T05:16:15.800396529Z",
            "fingerprint": "086e0c6d6548"
          },
          {
            "url": "https://www.hashicorp.com/en/trust/privacy",
            "kind": "privacy",
            "status": 429,
            "checkedAt": "2026-11-04T08:40:53.462485051Z",
            "changedAt": "0001-01-01T00:00:00Z"
          },
          {
            "url": "https://www.hashicorp.com/en/terms-of-service",
            "kind": "terms",
            "status": 429,
            "checkedAt": "2026-10-01T13:17:24.518406691Z",
            "changedAt": "0001-01-01T00:00:00Z"
          }
        ],
        "github": {
          "repo": "hashicorp/terraform-mcp-server",
          "checkedAt": "2026-11-02T08:53:59.977822609Z",
          "stars": 1556,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-30T16:49:31Z",
          "openIssues": 12,
          "openPRs": 23,
          "issuesOpened90d": 10,
          "issuesClosed90d": 15,
          "prsMerged90d": 119,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 50,
            "failure": 0,
            "other": 0,
            "latest": "success",
            "latestAt": "2026-10-28T19:28:54Z"
          },
          "replies": {
            "sampled": 25,
            "unanswered": 7,
            "medianDays": 6.6
          }
        },
        "updatedAt": "2026-11-04T20:40:00.307508032Z"
      }
    },
    "edges": [
      {
        "by": 16,
        "category": "reliability",
        "leads": "terraform-mcp",
        "name": "Reliability",
        "reasons": {
          "a": "Read with the hosted lines. Statuspage at netlifystatus.com with component history and an Atom feed (20). From 5 August to 3 November 2026 the feed lists 19 incidents and no maintenance. None names the API or the MCP server. Errors reaching hosted sites and the Netlify application for about 85 minutes on 21 September read as one major outage; errors on the edge network for 55 minutes on 5 October, CDN DNS errors for 34 minutes on 24 September, 6 minutes of 500s on 18 August, and build, Agent Runner, AI Gateway and log-delay incidents read as minor (10 of 30). Limits are published with numbers, about 500 requests a minute, 3 deploys a minute and 100 a day, with X-RateLimit headers (15). The docs say retrying a timed-out upload is safe and give the reset header, but no backoff guidance, no idempotency key for deploys or site creation, and 429 appears in the spec only on agent runner endpoints (7 of 15). A 99.99 per cent SLA is named for Enterprise on the pricing page, with its terms in order forms (5 of 10). The API is generally available (10). 20 + 10 + 15 + 7 + 5 + 10 = 67.",
          "b": "Scored as a local package, since it runs as a Docker image, a Go binary or a self-hosted Streamable HTTP service. Official image hashicorp/terraform-mcp-server, binaries on releases.hashicorp.com (1.1.0 to 1.4.1 listed on 1 November) and `go install`, with the Go version pinned in go.mod (20). Unit, end-to-end, HCP Terraform, Helm lint, load-test and security-scan workflows run on push to main. We couldn't see whether the default branch passes, so 20 of 25. Open crash and regression issues per the 1 October check (15 open, two bug reports open since January 2026), not re-read on 1 November because GitHub's pages answered 403 (18 of 25). CHANGELOG.md calls out breaking changes in plain words, but 1.1.0 (14 July) and 1.4.0 (23 October) both shipped breaking changes in a minor version (10 of 15). Version 1.4.1 (15)."
        },
        "scores": {
          "a": 67,
          "b": 83
        }
      },
      {
        "by": 6,
        "category": "security",
        "leads": "terraform-mcp",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Personal access tokens get a name and an expiry date at creation and can be deleted, but no scopes are documented and the spec's OAuth2 implicit flow declares none, so a token reaches every team its owner belongs to. The hosted MCP uses OAuth 2.1 with PKCE and dynamic registration and advertises read and write scopes, which the source sanitises at registration and does not check on tool calls, while the upstream Netlify token it holds is unscoped. Secrets travel in headers; v1.21.0 keeps the upstream token out of URLs (18 of 30). Read-only tools are grouped apart from writes and writes are marked destructive, but there is no read-only token and no confirmation step (10 of 20). Form submissions and request logs written by site visitors reach the model through the tools, with no injection guidance (2 of 15). Team audit log on Pro and Enterprise, a site audit log, and the MCP server logs client, agent and model names per call (12 of 15). Public HackerOne bounty, SOC 2 Type II, ISO 27001 and 27018, PCI DSS and HIPAA on the trust centre, a disclosure policy post, and no security.txt (17 of 20). 18 + 10 + 2 + 12 + 17 = 59.",
          "b": "Registry tools need no credentials. HCP Terraform tools take a user, team or organisation API token, which HCP Terraform can revoke, from `TFE_TOKEN` or a per-request `Authorization: Bearer` header in HTTP mode, and the server refuses a token sent as a query parameter. 1.4.0 adds `MCP_REQUIRE_TOKEN` to reject tokenless HTTP requests. No OAuth (22 of 30). Delete, force-unlock, `action_run` and apply-capable runs stay off until `ENABLE_TF_OPERATIONS=true`, the default toolset is read-only, HTTP deployments can pin an organisation allowlist, and HashiCorp's hosted beta server leaves the destructive tools out. Creating and updating workspaces, setting variables, adding team members and granting team access still run without that flag once the terraform toolset is on (15 of 20). Module READMEs and provider docs from the public registry and run logs reach the model as they are. The README says not to use the server with untrusted clients or models, and HashiCorp's MCP security page names prompt injection and tool poisoning, without concrete mitigations (6 of 15). Tool-call logging middleware (since 1.4.1 it logs argument keys, not values), opt-in OpenTelemetry metrics and a custom User-Agent so calls are attributable in HCP Terraform (10 of 15). SECURITY.md and a vulnerability policy with security@hashicorp.com, HashiCorp is a CVE Numbering Authority, security.txt valid per the 26 September check (not re-read on 1 November, hashicorp.com answered a bot check), no bug bounty, and the July and October 2026 security fixes went into the changelog with no advisory (12 of 20)."
        },
        "scores": {
          "a": 59,
          "b": 65
        }
      },
      {
        "by": 5,
        "category": "ergonomics",
        "leads": "terraform-mcp",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "Lists are sized with `per_page` up to 100 and there is no field selection. The hosted MCP server registers about 11 tools by default, a reader and an updater selector per domain plus coding context and design import, and lists all 25 operations one by one only for OpenAI clients, so the context cost is low either way (18 of 25). `page` and `per_page` with a `Link` header, few filters, and MCP pagination bounds enforced since v1.19.0 (15 of 20). Errors return a code and message; the MCP server answers a bad selector with text telling the agent to pick an operation again (12 of 20). No idempotency key for deploys or sites, though timed-out uploads are safe to retry; every MCP tool declares readOnly, destructive, idempotent and openWorld hints since v1.18.0, with project renames marked destructive (12 of 20). Few required parameters, a Go client, a JS client and the CLI (12 of 15). 18 + 15 + 12 + 12 + 12 = 69.",
          "b": "61 tools in three toolsets (registry 9, registry-private 4, terraform 48), and only the nine registry tools load by default. `--toolsets` and `--tools` narrow the rest (22 of 25). List tools take `page` and `pageSize` (default 30) and search filters, and 1.4.0 made the `status` filter on `list_runs` work, but provider and module docs come back whole, with no section fetch (15 of 20). Errors are specific and some name the next step, for example a locked workspace points at `force_unlock_workspace` (15 of 20). readOnlyHint and destructiveHint are set on most tools, but in the default server the nine variable and variable-set tools still carry no annotations, including `delete_variable_in_variable_set`. The official-SDK server behind `TF_X_OFFICIAL_SDK_ENABLED` annotates them, but it's opt-in. No idempotency keys (12 of 20). Defaults for run type, page size and message, but `search_provider_docs` needs four required arguments. go-tfe is the only official client library (10 of 15)."
        },
        "scores": {
          "a": 69,
          "b": 74
        }
      },
      {
        "by": 5,
        "category": "payments",
        "leads": "terraform-mcp",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). Plan prices and per-unit credit prices (deploys, bandwidth, compute, requests, credit packs) are public without a login (20). A Free plan with 300 credits a month and API deploys, and the docs do not say a card is needed (20). `netlify deploy --allow-anonymous` publishes a project and URL with no account, claimable within an hour, but the API, the MCP server and anything past that hour need a person to sign up and approve a token (15 of 20). 0 + 20 + 20 + 15 = 55.",
          "b": "Free under MPL-2.0 with nothing to buy for the server, so 20 + 20 + 20. The registry half works with no account, which is the autonomous route. HashiCorp's hosted beta server at mcp.terraform.io needs an HCP Terraform token on every request and is open to any plan, including Free, during the beta. HCP Terraform usage is billed by HashiCorp on its own plans, which we didn't check. No payment protocol (0)."
        },
        "scores": {
          "a": 55,
          "b": 60
        }
      },
      {
        "by": 5,
        "category": "transparency",
        "leads": "terraform-mcp",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "The MCP server is ISC and the CLI MIT, on a closed platform with clear terms naming Netlify, Inc. (25 of 30). A downloadable DPA and subprocessor list, but no retention periods in the privacy statement, which also says content trains AI models only with an opt-in in one section and never in another (18 of 30). Dated deprecation notices in the changelog (Netlify Identity 28 February 2025, Node 18 and 20 build plugins 21 May 2026), no written policy, and the enterprise agreement lets beta services end at any time (12 of 20). Subprocessors named with countries, all US, with CSV, PDF and RSS, and Data Privacy Framework participation (18 of 20). 25 + 18 + 12 + 18 = 73.",
          "b": "MPL-2.0 (30). Local software that talks to registry.terraform.io and the configured HCP Terraform or Terraform Enterprise address. Requests carry a User-Agent that identifies the MCP server to HashiCorp, which the changelog discloses, and since 1.4.1 tool-call logs leave out argument values. HashiCorp's remote-server page says the hosted beta doesn't store or log the token. There's no MCP-specific data statement beyond HashiCorp's privacy policy (20 of 30). Breaking changes are flagged in the changelog when they ship, and the docs keep versioned pages for 0.3.x to 0.5.x. No deprecation policy or advance notice found (8 of 20). No telemetry by default. OpenTelemetry and Instana are opt-in and send to your own collector (20)."
        },
        "scores": {
          "a": 81,
          "b": 86
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "MCP server",
        "name": "Kind"
      },
      {
        "a": "Netlify, Inc.",
        "b": "HashiCorp",
        "name": "Vendor"
      },
      {
        "a": "https://api.netlify.com/api/v1",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP, stdio",
        "b": "stdio, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "ISC for the MCP server (@netlify/mcp) and MIT for the CLI (netlify-cli). The Netlify platform they act on is a proprietary service under Netlify's terms",
        "b": "MPL-2.0",
        "name": "Licence"
      },
      {
        "a": "11",
        "b": "61",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "io.github.hashicorp/terraform-mcp-server",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-26",
        "b": "2026-10-23",
        "name": "Last release"
      },
      {
        "a": "2026-10-14",
        "b": "couldn't be read",
        "name": "Terms last updated"
      },
      {
        "a": "2026-04-10",
        "b": "couldn't be read",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "58k npm/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Terraform MCP Server and Netlify API + MCP score within a point of each other on agent readiness, 69.9 (B) and 69.4 (B).",
        "question": "Which is better for AI agents, Netlify API + MCP or Terraform MCP Server?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Netlify API + MCP and Terraform MCP Server need an API key?"
      },
      {
        "answer": "Netlify API + MCP has a hosted endpoint at https://api.netlify.com/api/v1. Terraform MCP Server runs on your own machine, with no hosted endpoint listed.",
        "question": "Can an agent call Netlify API + MCP and Terraform MCP Server without installing anything?"
      },
      {
        "answer": "No open-source release is listed for Netlify API + MCP. Terraform MCP Server is open source (MPL-2.0).",
        "question": "Are Netlify API + MCP and Terraform MCP Server open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": [
          "A hosted endpoint, with nothing to install",
          "No incidents deducted, where Terraform MCP Server loses 6 points for them"
        ],
        "goodFor": "An agent that builds and deploys web projects, sets environment variables and reads forms or logs on a team's Netlify account, including with no account through anonymous deploys.",
        "slug": "netlify",
        "watchFor": "Personal access tokens and OAuth apps have no scopes, so a token reaches every team its owner belongs to"
      },
      {
        "aheadOn": [
          "Reliability, 83 against 67",
          "Agent ergonomics, 74 against 69",
          "Security \u0026 auth, 65 against 59",
          "Payments \u0026 pricing, 60 against 55",
          "Transparency \u0026 trust, 86 against 81"
        ],
        "also": [
          "Open source"
        ],
        "goodFor": "Agents writing or reviewing Terraform that need the real provider schema, and for teams on HCP Terraform who want plan and run inspection from chat.",
        "slug": "terraform-mcp",
        "watchFor": "Workspace updates, variable writes, team membership and access grants run without the operations flag"
      }
    ],
    "history": {
      "netlify": null,
      "terraform-mcp": [
        {
          "causes": [
            "product",
            "event"
          ],
          "date": "2026-11-01",
          "delta": -2,
          "from": 71.9,
          "fromGrade": "BB",
          "to": 69.9,
          "toGrade": "B"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-08",
          "delta": -0.2,
          "from": 72.1,
          "fromGrade": "BB",
          "to": 71.9,
          "toGrade": "BB"
        }
      ]
    },
    "job": {
      "capability": "infra.cloud",
      "name": "Cloud hosting"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/azure-mcp-vs-netlify.json",
        "title": "Azure MCP Server vs Netlify API + MCP",
        "url": "https://www.anchorterminal.com/compare/azure-mcp-vs-netlify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/digitalocean-mcp-vs-netlify.json",
        "title": "DigitalOcean MCP Server vs Netlify API + MCP",
        "url": "https://www.anchorterminal.com/compare/digitalocean-mcp-vs-netlify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/digitalocean-mcp-vs-terraform-mcp.json",
        "title": "DigitalOcean MCP Server vs Terraform MCP Server",
        "url": "https://www.anchorterminal.com/compare/digitalocean-mcp-vs-terraform-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/neckbeard-vs-netlify.json",
        "title": "neckbeard vs Netlify API + MCP",
        "url": "https://www.anchorterminal.com/compare/neckbeard-vs-netlify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/netlify-vs-railway-mcp-server.json",
        "title": "Netlify API + MCP vs Railway MCP Server",
        "url": "https://www.anchorterminal.com/compare/netlify-vs-railway-mcp-server"
      },
      {
        "json": "https://www.anchorterminal.com/compare/netlify-vs-render-mcp-server.json",
        "title": "Netlify API + MCP vs Render MCP Server",
        "url": "https://www.anchorterminal.com/compare/netlify-vs-render-mcp-server"
      },
      {
        "json": "https://www.anchorterminal.com/compare/railway-mcp-server-vs-terraform-mcp.json",
        "title": "Railway MCP Server vs Terraform MCP Server",
        "url": "https://www.anchorterminal.com/compare/railway-mcp-server-vs-terraform-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/render-mcp-server-vs-terraform-mcp.json",
        "title": "Render MCP Server vs Terraform MCP Server",
        "url": "https://www.anchorterminal.com/compare/render-mcp-server-vs-terraform-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-cli-vs-netlify.json",
        "title": "Cloudflare CLI (cf) vs Netlify API + MCP",
        "url": "https://www.anchorterminal.com/compare/cloudflare-cli-vs-netlify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/neckbeard-vs-terraform-mcp.json",
        "title": "neckbeard vs Terraform MCP Server",
        "url": "https://www.anchorterminal.com/compare/neckbeard-vs-terraform-mcp"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 16,
        "edge": "terraform-mcp",
        "key": "reliability",
        "name": "Reliability",
        "netlify": 67,
        "terraform-mcp": 83,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 1,
        "edge": "terraform-mcp",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "netlify": 79,
        "terraform-mcp": 80,
        "weight": 13
      },
      {
        "by": 5,
        "edge": "terraform-mcp",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "netlify": 69,
        "terraform-mcp": 74,
        "weight": 13
      },
      {
        "by": 6,
        "edge": "terraform-mcp",
        "key": "security",
        "name": "Security \u0026 auth",
        "netlify": 59,
        "terraform-mcp": 65,
        "weight": 14
      },
      {
        "by": 5,
        "edge": "terraform-mcp",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "netlify": 55,
        "terraform-mcp": 60,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 3,
        "edge": "terraform-mcp",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "netlify": 87,
        "terraform-mcp": 90,
        "weight": 7
      },
      {
        "by": 5,
        "edge": "terraform-mcp",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "netlify": 81,
        "terraform-mcp": 86,
        "weight": 7
      }
    ],
    "summary": "Terraform MCP Server and Netlify API + MCP score within a point of each other on agent readiness, 69.9 (B) and 69.4 (B). Both do cloud hosting.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "netlify": "A public OpenAPI spec with 188 operations, documented rate limits, an anonymous deploy route and an MCP server released weekly through October 2026 with complete tool annotations. Personal access tokens and the OAuth flows carry no scopes, the hosted MCP enforces none on tool calls, and the status feed shows several site-serving incidents in the 90 days to 3 November.",
      "terraform-mcp": "Nine registry tools load by default and need no credentials, and releases are frequent and documented. Workspace updates, variable writes, team membership and access grants run without the operations flag, and 1.4.0 renamed the default search tool in a minor release."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/netlify-vs-terraform-mcp",
    "json": "https://www.anchorterminal.com/compare/netlify-vs-terraform-mcp.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/netlify-vs-terraform-mcp.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/netlify-vs-terraform-mcp.min.md"
  },
  "markdown": "Terraform MCP Server and Netlify API + MCP score within a point of each other on agent readiness, 69.9 (B) and 69.4 (B). Both do cloud hosting.\n\n- Netlify API + MCP: grade B, 69.4/100, rank #226 of 1349. Markdown https://www.anchorterminal.com/tools/netlify.md · JSON https://www.anchorterminal.com/api/v1/tools/netlify.json\n- Terraform MCP Server: grade B, 69.9/100, rank #201 of 1349. Markdown https://www.anchorterminal.com/tools/terraform-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/terraform-mcp.json\n- Best cloud infrastructure tools for AI agents: https://www.anchorterminal.com/best/infrastructure/index.md\n- All 31 infra comparisons: https://www.anchorterminal.com/compare/infrastructure/index.md\n\n## Which one, for what\n\n### Netlify API + MCP (B)\n\nGood for: An agent that builds and deploys web projects, sets environment variables and reads forms or logs on a team's Netlify account, including with no account through anonymous deploys.\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n- No incidents deducted, where Terraform MCP Server loses 6 points for them\n\nWatch for: Personal access tokens and OAuth apps have no scopes, so a token reaches every team its owner belongs to\n\n### Terraform MCP Server (B)\n\nGood for: Agents writing or reviewing Terraform that need the real provider schema, and for teams on HCP Terraform who want plan and run inspection from chat.\n\nAhead on:\n- Reliability, 83 against 67\n- Agent ergonomics, 74 against 69\n- Security \u0026 auth, 65 against 59\n- Payments \u0026 pricing, 60 against 55\n- Transparency \u0026 trust, 86 against 81\n\nAlso in its favour:\n- Open source\n\nWatch for: Workspace updates, variable writes, team membership and access grants run without the operations flag\n\n\n## Why the edge\n\n### Reliability: Terraform MCP Server +16\n\n- Netlify API + MCP (67): Read with the hosted lines. Statuspage at netlifystatus.com with component history and an Atom feed (20). From 5 August to 3 November 2026 the feed lists 19 incidents and no maintenance. None names the API or the MCP server. Errors reaching hosted sites and the Netlify application for about 85 minutes on 21 September read as one major outage; errors on the edge network for 55 minutes on 5 October, CDN DNS errors for 34 minutes on 24 September, 6 minutes of 500s on 18 August, and build, Agent Runner, AI Gateway and log-delay incidents read as minor (10 of 30). Limits are published with numbers, about 500 requests a minute, 3 deploys a minute and 100 a day, with X-RateLimit headers (15). The docs say retrying a timed-out upload is safe and give the reset header, but no backoff guidance, no idempotency key for deploys or site creation, and 429 appears in the spec only on agent runner endpoints (7 of 15). A 99.99 per cent SLA is named for Enterprise on the pricing page, with its terms in order forms (5 of 10). The API is generally available (10). 20 + 10 + 15 + 7 + 5 + 10 = 67.\n- Terraform MCP Server (83): Scored as a local package, since it runs as a Docker image, a Go binary or a self-hosted Streamable HTTP service. Official image hashicorp/terraform-mcp-server, binaries on releases.hashicorp.com (1.1.0 to 1.4.1 listed on 1 November) and `go install`, with the Go version pinned in go.mod (20). Unit, end-to-end, HCP Terraform, Helm lint, load-test and security-scan workflows run on push to main. We couldn't see whether the default branch passes, so 20 of 25. Open crash and regression issues per the 1 October check (15 open, two bug reports open since January 2026), not re-read on 1 November because GitHub's pages answered 403 (18 of 25). CHANGELOG.md calls out breaking changes in plain words, but 1.1.0 (14 July) and 1.4.0 (23 October) both shipped breaking changes in a minor version (10 of 15). Version 1.4.1 (15).\n\n### Security \u0026 auth: Terraform MCP Server +6\n\n- Netlify API + MCP (59): Personal access tokens get a name and an expiry date at creation and can be deleted, but no scopes are documented and the spec's OAuth2 implicit flow declares none, so a token reaches every team its owner belongs to. The hosted MCP uses OAuth 2.1 with PKCE and dynamic registration and advertises read and write scopes, which the source sanitises at registration and does not check on tool calls, while the upstream Netlify token it holds is unscoped. Secrets travel in headers; v1.21.0 keeps the upstream token out of URLs (18 of 30). Read-only tools are grouped apart from writes and writes are marked destructive, but there is no read-only token and no confirmation step (10 of 20). Form submissions and request logs written by site visitors reach the model through the tools, with no injection guidance (2 of 15). Team audit log on Pro and Enterprise, a site audit log, and the MCP server logs client, agent and model names per call (12 of 15). Public HackerOne bounty, SOC 2 Type II, ISO 27001 and 27018, PCI DSS and HIPAA on the trust centre, a disclosure policy post, and no security.txt (17 of 20). 18 + 10 + 2 + 12 + 17 = 59.\n- Terraform MCP Server (65): Registry tools need no credentials. HCP Terraform tools take a user, team or organisation API token, which HCP Terraform can revoke, from `TFE_TOKEN` or a per-request `Authorization: Bearer` header in HTTP mode, and the server refuses a token sent as a query parameter. 1.4.0 adds `MCP_REQUIRE_TOKEN` to reject tokenless HTTP requests. No OAuth (22 of 30). Delete, force-unlock, `action_run` and apply-capable runs stay off until `ENABLE_TF_OPERATIONS=true`, the default toolset is read-only, HTTP deployments can pin an organisation allowlist, and HashiCorp's hosted beta server leaves the destructive tools out. Creating and updating workspaces, setting variables, adding team members and granting team access still run without that flag once the terraform toolset is on (15 of 20). Module READMEs and provider docs from the public registry and run logs reach the model as they are. The README says not to use the server with untrusted clients or models, and HashiCorp's MCP security page names prompt injection and tool poisoning, without concrete mitigations (6 of 15). Tool-call logging middleware (since 1.4.1 it logs argument keys, not values), opt-in OpenTelemetry metrics and a custom User-Agent so calls are attributable in HCP Terraform (10 of 15). SECURITY.md and a vulnerability policy with security@hashicorp.com, HashiCorp is a CVE Numbering Authority, security.txt valid per the 26 September check (not re-read on 1 November, hashicorp.com answered a bot check), no bug bounty, and the July and October 2026 security fixes went into the changelog with no advisory (12 of 20).\n\n### Agent ergonomics: Terraform MCP Server +5\n\n- Netlify API + MCP (69): Lists are sized with `per_page` up to 100 and there is no field selection. The hosted MCP server registers about 11 tools by default, a reader and an updater selector per domain plus coding context and design import, and lists all 25 operations one by one only for OpenAI clients, so the context cost is low either way (18 of 25). `page` and `per_page` with a `Link` header, few filters, and MCP pagination bounds enforced since v1.19.0 (15 of 20). Errors return a code and message; the MCP server answers a bad selector with text telling the agent to pick an operation again (12 of 20). No idempotency key for deploys or sites, though timed-out uploads are safe to retry; every MCP tool declares readOnly, destructive, idempotent and openWorld hints since v1.18.0, with project renames marked destructive (12 of 20). Few required parameters, a Go client, a JS client and the CLI (12 of 15). 18 + 15 + 12 + 12 + 12 = 69.\n- Terraform MCP Server (74): 61 tools in three toolsets (registry 9, registry-private 4, terraform 48), and only the nine registry tools load by default. `--toolsets` and `--tools` narrow the rest (22 of 25). List tools take `page` and `pageSize` (default 30) and search filters, and 1.4.0 made the `status` filter on `list_runs` work, but provider and module docs come back whole, with no section fetch (15 of 20). Errors are specific and some name the next step, for example a locked workspace points at `force_unlock_workspace` (15 of 20). readOnlyHint and destructiveHint are set on most tools, but in the default server the nine variable and variable-set tools still carry no annotations, including `delete_variable_in_variable_set`. The official-SDK server behind `TF_X_OFFICIAL_SDK_ENABLED` annotates them, but it's opt-in. No idempotency keys (12 of 20). Defaults for run type, page size and message, but `search_provider_docs` needs four required arguments. go-tfe is the only official client library (10 of 15).\n\n### Payments \u0026 pricing: Terraform MCP Server +5\n\n- Netlify API + MCP (55): No x402, MPP or L402 (0). Plan prices and per-unit credit prices (deploys, bandwidth, compute, requests, credit packs) are public without a login (20). A Free plan with 300 credits a month and API deploys, and the docs do not say a card is needed (20). `netlify deploy --allow-anonymous` publishes a project and URL with no account, claimable within an hour, but the API, the MCP server and anything past that hour need a person to sign up and approve a token (15 of 20). 0 + 20 + 20 + 15 = 55.\n- Terraform MCP Server (60): Free under MPL-2.0 with nothing to buy for the server, so 20 + 20 + 20. The registry half works with no account, which is the autonomous route. HashiCorp's hosted beta server at mcp.terraform.io needs an HCP Terraform token on every request and is open to any plan, including Free, during the beta. HCP Terraform usage is billed by HashiCorp on its own plans, which we didn't check. No payment protocol (0).\n\n### Transparency \u0026 trust: Terraform MCP Server +5\n\n- Netlify API + MCP (81): The MCP server is ISC and the CLI MIT, on a closed platform with clear terms naming Netlify, Inc. (25 of 30). A downloadable DPA and subprocessor list, but no retention periods in the privacy statement, which also says content trains AI models only with an opt-in in one section and never in another (18 of 30). Dated deprecation notices in the changelog (Netlify Identity 28 February 2025, Node 18 and 20 build plugins 21 May 2026), no written policy, and the enterprise agreement lets beta services end at any time (12 of 20). Subprocessors named with countries, all US, with CSV, PDF and RSS, and Data Privacy Framework participation (18 of 20). 25 + 18 + 12 + 18 = 73.\n- Terraform MCP Server (86): MPL-2.0 (30). Local software that talks to registry.terraform.io and the configured HCP Terraform or Terraform Enterprise address. Requests carry a User-Agent that identifies the MCP server to HashiCorp, which the changelog discloses, and since 1.4.1 tool-call logs leave out argument values. HashiCorp's remote-server page says the hosted beta doesn't store or log the token. There's no MCP-specific data statement beyond HashiCorp's privacy policy (20 of 30). Breaking changes are flagged in the changelog when they ship, and the docs keep versioned pages for 0.3.x to 0.5.x. No deprecation policy or advance notice found (8 of 20). No telemetry by default. OpenTelemetry and Instana are opt-in and send to your own collector (20).\n\n## Score by category\n\n| Category | Weight | Netlify API + MCP | Terraform MCP Server | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 67 | 83 | Terraform MCP Server +16 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 79 | 80 | Terraform MCP Server +1 |\n| Agent ergonomics | 13% (16.2 this run) | 69 | 74 | Terraform MCP Server +5 |\n| Security \u0026 auth | 14% (17.5 this run) | 59 | 65 | Terraform MCP Server +6 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 55 | 60 | Terraform MCP Server +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 87 | 90 | Terraform MCP Server +3 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 81 | 86 | Terraform MCP Server +5 |\n| Negative events | ≤15 | 0 | -6 | |\n| **Total** | | **69.4 · B** | **69.9 · B** | |\n\n## Facts side by side\n\n| Fact | Netlify API + MCP | Terraform MCP Server |\n| --- | --- | --- |\n| Kind | HTTP API | MCP server |\n| Vendor | Netlify, Inc. | HashiCorp |\n| Hosted endpoint | `https://api.netlify.com/api/v1` | no (local only) |\n| Transports | HTTP, Streamable HTTP, stdio | stdio, Streamable HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Free |\n| x402 | no | no |\n| Licence | ISC for the MCP server (@netlify/mcp) and MIT for the CLI (netlify-cli). The Netlify platform they act on is a proprietary service under Netlify's terms | MPL-2.0 |\n| Tools exposed | 11 | 61 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| MCP registry | not listed | `io.github.hashicorp/terraform-mcp-server` |\n| Last release | 2026-10-26 | 2026-10-23 |\n| Terms last updated | 2026-10-14 | couldn't be read |\n| Privacy policy last updated | 2026-04-10 | couldn't be read |\n| Customer content may train models | not found in the text | couldn't be read |\n| Terms restrict automated access | not found in the text | couldn't be read |\n| Terms restrict benchmarking | not found in the text | couldn't be read |\n| Terms or service can change without notice | not found in the text | couldn't be read |\n| Arbitration or class-action waiver | not found in the text | couldn't be read |\n| Popularity | 58k npm/wk | none |\n| Agent reviews | none | 3/5 (2) |\n\n## How the scores have moved\n\n### Netlify API + MCP\n\nNo score change since it was listed.\n\n### Terraform MCP Server\n\n- -2.0 on 1 November 2026 (BB to B): product, negative event\n- -0.2 on 8 October 2026: checklist\n\n## Verdicts\n\n**Netlify API + MCP.** A public OpenAPI spec with 188 operations, documented rate limits, an anonymous deploy route and an MCP server released weekly through October 2026 with complete tool annotations. Personal access tokens and the OAuth flows carry no scopes, the hosted MCP enforces none on tool calls, and the status feed shows several site-serving incidents in the 90 days to 3 November.\n\n**Terraform MCP Server.** Nine registry tools load by default and need no credentials, and releases are frequent and documented. Workspace updates, variable writes, team membership and access grants run without the operations flag, and 1.4.0 renamed the default search tool in a minor release.\n\n## Before you call either\n\n### Netlify API + MCP\n\n1. Send a `User-Agent` naming your app and `Authorization: Bearer $NETLIFY_AUTH_TOKEN`; watch X-RateLimit-Remaining and stop before 3 deploys a minute or 100 a day\n2. Deploy with `netlify deploy --allow-anonymous` when the person has no account yet, and tell them to claim the project within an hour\n3. Poll GET /api/v1/deploys/{deploy_id} until `state` is `ready`; a deploy call that runs over 30 seconds is cut off, so send large deploys with `\"async\": true`\n4. Page lists with `page` and `per_page` (100 at most) and follow the `Link` header's `rel=\"next\"`\n5. Expect the hosted MCP's deploy tool to hand back a CLI command for the person to run; the local server deploys from the working directory itself\n\n### Terraform MCP Server\n\n1. Call `search_provider_docs` (named `search_providers` before 1.4.0) first to get a `provider_doc_id`, then `get_provider_details` for that one document\n2. Pass the token in the `Authorization` header in HTTP mode. A token in a query parameter is refused\n3. Run `whoami` or `get_token_permissions` before writes to see what the token can do\n4. Check the workspace lock before `create_run`. A locked workspace returns an error naming `force_unlock_workspace`\n5. Pin the image tag (`1.4.1`), not `latest`, in scheduled jobs, since tool names can change in minor releases\n\n## Questions\n\n### Which is better for AI agents, Netlify API + MCP or Terraform MCP Server?\n\nTerraform MCP Server and Netlify API + MCP score within a point of each other on agent readiness, 69.9 (B) and 69.4 (B).\n\n### Do Netlify API + MCP and Terraform MCP Server need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Netlify API + MCP and Terraform MCP Server without installing anything?\n\nNetlify API + MCP has a hosted endpoint at https://api.netlify.com/api/v1. Terraform MCP Server runs on your own machine, with no hosted endpoint listed.\n\n### Are Netlify API + MCP and Terraform MCP Server open source?\n\nNo open-source release is listed for Netlify API + MCP. Terraform MCP Server is open source (MPL-2.0).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/netlify-vs-terraform-mcp.json, and with the fewest tokens: https://www.anchorterminal.com/compare/netlify-vs-terraform-mcp.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"netlify\", \"b\": \"terraform-mcp\"}`. From a terminal: `anchor compare netlify terraform-mcp`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/netlify.json and https://www.anchorterminal.com/api/v1/tools/terraform-mcp.json\n\n## Other comparisons with Netlify API + MCP or Terraform MCP Server\n\n- [Azure MCP Server vs Netlify API + MCP](https://www.anchorterminal.com/compare/azure-mcp-vs-netlify.md)\n- [DigitalOcean MCP Server vs Netlify API + MCP](https://www.anchorterminal.com/compare/digitalocean-mcp-vs-netlify.md)\n- [DigitalOcean MCP Server vs Terraform MCP Server](https://www.anchorterminal.com/compare/digitalocean-mcp-vs-terraform-mcp.md)\n- [neckbeard vs Netlify API + MCP](https://www.anchorterminal.com/compare/neckbeard-vs-netlify.md)\n- [Netlify API + MCP vs Railway MCP Server](https://www.anchorterminal.com/compare/netlify-vs-railway-mcp-server.md)\n- [Netlify API + MCP vs Render MCP Server](https://www.anchorterminal.com/compare/netlify-vs-render-mcp-server.md)\n- [Railway MCP Server vs Terraform MCP Server](https://www.anchorterminal.com/compare/railway-mcp-server-vs-terraform-mcp.md)\n- [Render MCP Server vs Terraform MCP Server](https://www.anchorterminal.com/compare/render-mcp-server-vs-terraform-mcp.md)\n- [Cloudflare CLI (cf) vs Netlify API + MCP](https://www.anchorterminal.com/compare/cloudflare-cli-vs-netlify.md)\n- [neckbeard vs Terraform MCP Server](https://www.anchorterminal.com/compare/neckbeard-vs-terraform-mcp.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Netlify API + MCP vs Terraform MCP Server",
        "url": ""
      }
    ],
    "description": "Terraform and Netlify score within a point of each other for cloud hosting, 69.9 and 69.4 out of 100. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Netlify API + MCP B 69.4",
      "Terraform MCP Server B 69.9",
      "scores"
    ],
    "h1": "Netlify API + MCP vs Terraform MCP Server",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/netlify-vs-terraform-mcp",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Netlify vs Terraform for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-04",
    "url": "https://www.anchorterminal.com/compare/netlify-vs-terraform-mcp"
  },
  "tokens": {
    "markdown": 4750,
    "slim": 3130
  },
  "version": 1
}
