{
  "data": {
    "a": {
      "slug": "azure-mcp",
      "name": "Azure MCP Server",
      "vendor": "Microsoft",
      "vendorUrl": "https://learn.microsoft.com/en-us/azure/developer/azure-mcp-server/",
      "kind": "mcp",
      "category": "infrastructure",
      "summary": "Microsoft's official local MCP server for Azure (`@azure/mcp`, also on NuGet as Azure.Mcp).",
      "url": "https://www.anchorterminal.com/tools/azure-mcp",
      "markdownUrl": "https://www.anchorterminal.com/tools/azure-mcp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/azure-mcp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/azure-mcp.json",
      "dns": "azure-mcp.grade.anchorterminal.com",
      "repo": "https://github.com/microsoft/mcp",
      "license": "MIT",
      "transports": [
        "stdio",
        "streamable-http"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "@azure/mcp"
        },
        {
          "registry": "nuget",
          "name": "Azure.Mcp"
        },
        {
          "registry": "pypi",
          "name": "msmcp-azure"
        }
      ],
      "auth": "mixed",
      "authNotes": "DefaultAzureCredential. Picks up `az login`, the Azure Developer CLI, Visual Studio or VS Code sign-ins, or a service principal from environment variables in CI. No secrets in the MCP config.",
      "pricing": "free",
      "pricingNotes": "Open source under MIT. Azure resource usage is billed by Azure as normal.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "Local open-source server, no payments.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 3600,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-26"
      },
      "docsUrl": "https://learn.microsoft.com/en-us/azure/developer/azure-mcp-server/tools/",
      "registryName": "com.microsoft/azure",
      "capabilities": [
        "infra.azure",
        "infra.cloud"
      ],
      "tags": [
        "official",
        "open-source",
        "read-only-mode",
        "namespaces",
        "enterprise"
      ],
      "lastRelease": "2026-10-29",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 68.4,
        "grade": "B",
        "agentReady": false,
        "rank": 264,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 4,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 74,
          "maintenance": 89,
          "payments": 60,
          "reliability": 69,
          "schema": 77,
          "security": 73,
          "transparency": 80
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-01"
        },
        "negative": -5,
        "negativeNotes": [
          "-2: CVE-2026-26118, published 2026-03-10, CVSS 8.8. Server-side request forgery in Azure MCP Server let an authorised attacker elevate privileges over a network. Fixed and published through MSRC (https://nvd.nist.gov/vuln/detail/CVE-2026-26118).",
          "-2: CVE-2026-32211, published 2026-04-03, CVSS 9.1. Missing authentication for a critical function in Azure MCP Server let an unauthorised attacker disclose information over a network. Fixed and published through MSRC (https://nvd.nist.gov/vuln/detail/CVE-2026-32211).",
          "-1: until 3.0.0-beta.49 on 2026-10-01, `communication_email_send` and `communication_sms_send` were annotated read-only, so they stayed available under `--read-only`, an outbound send path in a mode meant to block writes. Fixed and described in the changelog (https://github.com/microsoft/mcp/blob/main/servers/Azure.Mcp.Server/CHANGELOG.md)."
        ],
        "verdict": "Entra ID through DefaultAzureCredential, so access follows RBAC and no secret sits in the MCP config. 3.0.0 is the stable line, but npm `latest` installs a 4.0 beta since late October, destructive calls run without confirmation and the default mode exposes one tool for each of about 60 namespaces.",
        "bestFor": "Agents inspecting or operating Azure resources under a developer's or service principal's own RBAC.",
        "strengths": [
          "Entra ID through DefaultAzureCredential, so access follows RBAC and no secret sits in the MCP config",
          "`--read-only`, `--namespace`, `--tool`, consolidated and single-tool modes for cutting the surface down",
          "Secret, connection-string and private-key reads ask the user first through elicitation",
          "Destructive, idempotent, read-only and secret metadata on every command, and 3.0.0 marks the SQL query tools destructive",
          "3.0.0 stable on 12 October 2026 after 50 betas, with a changelog that lists breaking changes in every release"
        ],
        "weaknesses": [
          "Prereleases renamed and removed tools with no notice period, and npm `latest` points at a 4.0 beta on 1 November 2026",
          "No confirmation step before deletes and other destructive calls",
          "Telemetry to Microsoft is on by default",
          "Two MSRC CVEs in March and April 2026, rated 8.8 and 9.1",
          "Default namespace mode still exposes about 60 tools"
        ],
        "agentNotes": [
          "Start with `--namespace \u003cone or two\u003e --read-only` for inspection and widen only when a task needs a write",
          "Pin `@azure/mcp@3.0.0`. On 1 November 2026 `@latest` installs 4.0.0-beta.4, and betas ship breaking changes twice a week",
          "Drop `subscription`, `tenant` and other removed parameters from saved calls. 3.0.0 rejects unknown parameters",
          "Use `resiliency_*`, not `resilience_*`. The prefix changed on 22 September 2026",
          "Auth failures mean the credential chain found nothing. Run `az login` or set the service-principal variables"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 68.4
          }
        ],
        "editorialScores": {
          "ergonomics": 74,
          "maintenance": 89,
          "payments": 60,
          "reliability": 69,
          "schema": 77,
          "security": 73,
          "transparency": 77
        },
        "provenanceScore": 83,
        "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 azure -- npx -y @azure/mcp@latest server start --mode namespace --namespace storage --read-only true",
        "config": {
          "mcpServers": {
            "azure": {
              "args": [
                "-y",
                "@azure/mcp@latest",
                "server",
                "start",
                "--mode",
                "namespace",
                "--read-only",
                "true"
              ],
              "command": "npx"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/infra.azure",
        "tool": "https://letme.dev/azure-mcp"
      },
      "sameCompany": [
        "azure-foundry-fine-tuning",
        "azure-ai-content-safety",
        "azure-speech-to-text",
        "azure-text-to-speech",
        "microsoft-agent-framework",
        "microsoft-execution-containers",
        "microsoft-entra-agent-id",
        "azure-key-vault",
        "azure-document-intelligence",
        "azure-devops-mcp",
        "microsoft-learn-mcp",
        "tokeneconomizer",
        "playwright-mcp",
        "azure-maps",
        "azure-translator",
        "microsoft-graph-calendar",
        "azure-blob-storage",
        "onedrive-sharepoint",
        "microsoft-teams",
        "dynamics-365-sales",
        "copilot-studio-mcp",
        "power-automate",
        "foundry-local",
        "microsoft-decision-1",
        "microsoft-advertising-api",
        "microsoft-excel-graph",
        "outlook-mail-graph",
        "microsoft-graph-people",
        "mage-vl-cowork"
      ],
      "alsoIn": [
        "secrets"
      ],
      "area": "developer",
      "provenance": {
        "legalEntity": "Microsoft Corporation",
        "domain": "microsoft.com",
        "domainRegistered": "1991-05-02",
        "domainNote": "microsoft.com publishes a security.txt, but it passed its Expires date on 2026-09-23.",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "https://microsoft.com/en-us/privacy/privacystatement",
        "statusPage": "",
        "changelog": "https://github.com/microsoft/mcp/blob/main/servers/Azure.Mcp.Server/CHANGELOG.md",
        "securityTxt": "expired",
        "checked": "2026-09-26",
        "score": 83
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/azure-mcp.json",
      "live": {
        "slug": "azure-mcp",
        "versions": [
          {
            "registry": "github",
            "name": "microsoft/mcp",
            "version": "Fabric.Mcp.Server-1.7.0",
            "released": "2026-11-02",
            "seenAt": "2026-11-04T20:01:14.180012799Z"
          },
          {
            "registry": "mcp-registry",
            "name": "com.microsoft/azure",
            "version": "3.0.0-beta.48",
            "seenAt": "2026-11-04T17:11:44.552009456Z"
          },
          {
            "registry": "npm",
            "name": "@azure/mcp",
            "version": "4.0.0-beta.4",
            "seenAt": "2026-11-04T20:01:13.03262811Z"
          },
          {
            "registry": "pypi",
            "name": "msmcp-azure",
            "version": "3.0.0",
            "released": "2026-10-12",
            "seenAt": "2026-11-04T20:01:13.911208266Z"
          }
        ],
        "githubStars": 3832,
        "npmWeekly": 161645,
        "pypiWeekly": 1750,
        "securityTxt": {
          "url": "https://microsoft.com/.well-known/security.txt",
          "state": "expired",
          "expires": "2026-09-23T16:00:00.000Z",
          "checkedAt": "2026-11-04T15:53:07.385907604Z"
        },
        "domain": {
          "domain": "microsoft.com",
          "registered": "1991-05-02",
          "source": "https://rdap.verisign.com/com/v1/domain/microsoft.com",
          "checkedAt": "2026-11-01T14:14:19.336136409Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/microsoft/mcp/main/servers/Azure.Mcp.Server/CHANGELOG.md",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-11-04T08:34:06.211894012Z",
            "changedAt": "2026-11-04T08:34:06.211894012Z",
            "fingerprint": "0aea9fc342ba"
          },
          {
            "url": "https://microsoft.com/en-us/privacy/privacystatement",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-04T08:27:58.868091675Z",
            "changedAt": "2026-11-04T08:27:58.868091675Z",
            "fingerprint": "981c8a1a746c"
          }
        ],
        "github": {
          "repo": "microsoft/mcp",
          "checkedAt": "2026-11-02T09:06:21.19519642Z",
          "stars": 3822,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-11-02T07:31:52Z",
          "openIssues": 231,
          "openPRs": 97,
          "issuesOpened90d": 186,
          "issuesClosed90d": 199,
          "prsMerged90d": 510,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 48,
            "failure": 2,
            "other": 0,
            "latest": "success",
            "latestAt": "2026-11-02T07:36:43Z"
          },
          "replies": {
            "sampled": 25,
            "unanswered": 21,
            "medianDays": 3.8
          }
        },
        "updatedAt": "2026-11-04T20:01:14.180012799Z"
      }
    },
    "answer": "Netlify API + MCP scores 69.4 (B) on agent readiness against Azure MCP Server's 68.4 (B), and leads in 2 of 7 scored categories. Azure MCP Server leads on agent ergonomics, security \u0026 auth and payments \u0026 pricing.",
    "b": {
      "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"
      }
    },
    "edges": [
      {
        "by": 14,
        "category": "security",
        "leads": "azure-mcp",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Entra ID through DefaultAzureCredential (az login, managed identity, service principal, workload identity federation, and Azure Pipelines service connections since 3.0.0), so access is RBAC-scoped and nothing secret sits in the MCP config. HTTP mode authenticates incoming callers and can act on behalf of the user (28 of 30). `--read-only` drops write tools, `--namespace` narrows the surface, and reading secrets, connection strings or private keys asks the user first through elicitation. Since 3.0.0 the MySQL and PostgreSQL query tools are marked destructive, so `--read-only` drops them, and new Storage accounts, Event Hubs namespaces and Recovery Services vaults are created with Shared Key, local authentication or public networking off. Destructive operations still get no confirmation, and 3.0.0 removed the confirmation-only `--force` option from `sql server delete` (14 of 20). Monitor and Application Insights queries, blobs and database rows reach the model as they are. We found no prompt-injection guidance, though endpoint validation through Microsoft.Security.AntiSSRF now covers more data-plane and control-plane tools, and 4.0.0-beta.4 (29 October) rejects IoT Hub and resource group names such as `rg1/../rg2` that could send a request to another resource group (5 of 15). Azure's Activity Log records the writes made with the caller's identity, and telemetry can go to your own Application Insights (11 of 15). SECURITY.md and SUPPORT.md send reports to MSRC, Microsoft runs a bug bounty and MSRC assigned CVEs this year, but no GitHub advisories are published and www.microsoft.com/.well-known/security.txt still had Expires 2026-09-23 on 1 November (15 of 20). 28+14+5+11+15 = 73.",
          "b": "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."
        },
        "scores": {
          "a": 73,
          "b": 59
        }
      },
      {
        "by": 5,
        "category": "ergonomics",
        "leads": "azure-mcp",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "About 430 commands (per the 1 October count) in 67 top-level groups in the command reference of 16 October. The default namespace mode shows one tool per namespace, still over 30, but `--namespace`, `--tool` (exact-name matching since 3.0.0-beta.50), consolidated mode and a single-tool mode shrink it (15 of 25). Resource Graph queries, pagination on some data tools and a compact structured-output mode (14 of 20). 3.0.0 returns 404 for missing resources where it returned 500 or 400, returns 400 for invalid input where it returned 500, rejects unknown parameters and, per the release notes, gives clearer authentication and RBAC errors. The router lists valid command names instead of dumping help. We found no reference that documents the error shapes (17 of 20). Every command carries destructive, idempotent, readOnly, openWorld and secret metadata, and Destructive defaults to true when unset. The email and SMS send tools were marked read-only until 1 October 2026 (16 of 20). DefaultAzureCredential needs no config, packages exist for Node, .NET and Python, but subscription and resource group are required on most tools (12 of 15). 15+14+17+16+12 = 74.",
          "b": "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."
        },
        "scores": {
          "a": 74,
          "b": 69
        }
      },
      {
        "by": 5,
        "category": "payments",
        "leads": "azure-mcp",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "Free under MIT with nothing to buy for the server, so 20 + 20 + 20. Every tool acts on an Azure subscription that Microsoft bills separately, which this grade doesn't cover. No payment protocol (0).",
          "b": "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."
        },
        "scores": {
          "a": 60,
          "b": 55
        }
      }
    ],
    "facts": [
      {
        "a": "MCP server",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Microsoft",
        "b": "Netlify, Inc.",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://api.netlify.com/api/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "stdio, Streamable HTTP",
        "b": "HTTP, Streamable HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "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",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "11",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "com.microsoft/azure",
        "b": "not listed",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-29",
        "b": "2026-10-26",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "2026-10-14",
        "name": "Terms last updated"
      },
      {
        "a": "2026-09-01",
        "b": "2026-04-10",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "3.6k stars",
        "b": "58k npm/wk",
        "name": "Popularity"
      },
      {
        "a": "2.5/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Netlify API + MCP scores 69.4 (B) on agent readiness against Azure MCP Server's 68.4 (B), and leads in 2 of 7 scored categories. Azure MCP Server leads on agent ergonomics, security \u0026 auth and payments \u0026 pricing.",
        "question": "Which is better for AI agents, Azure MCP Server or Netlify API + MCP?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Azure MCP Server and Netlify API + MCP need an API key?"
      },
      {
        "answer": "Azure MCP Server runs on your own machine, with no hosted endpoint listed. Netlify API + MCP has a hosted endpoint at https://api.netlify.com/api/v1.",
        "question": "Can an agent call Azure MCP Server and Netlify API + MCP without installing anything?"
      },
      {
        "answer": "Azure MCP Server is open source (MIT). No open-source release is listed for Netlify API + MCP.",
        "question": "Are Azure MCP Server and Netlify API + MCP open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Agent ergonomics, 74 against 69",
          "Security \u0026 auth, 73 against 59",
          "Payments \u0026 pricing, 60 against 55"
        ],
        "also": [
          "Open source"
        ],
        "goodFor": "Agents inspecting or operating Azure resources under a developer's or service principal's own RBAC.",
        "slug": "azure-mcp",
        "watchFor": "Prereleases renamed and removed tools with no notice period, and npm `latest` points at a 4.0 beta on 1 November 2026"
      },
      {
        "aheadOn": null,
        "also": [
          "A hosted endpoint, with nothing to install",
          "No incidents deducted, where Azure MCP Server loses 5 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"
      }
    ],
    "history": {
      "azure-mcp": [
        {
          "causes": [
            "product"
          ],
          "date": "2026-11-01",
          "delta": -1.6,
          "from": 70,
          "fromGrade": "BB",
          "to": 68.4,
          "toGrade": "B"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.1,
          "from": 69.9,
          "fromGrade": "B",
          "to": 70,
          "toGrade": "BB"
        },
        {
          "causes": [
            "product"
          ],
          "date": "2026-10-17",
          "delta": 2.2,
          "from": 67.7,
          "fromGrade": "B",
          "to": 69.9,
          "toGrade": "B"
        }
      ],
      "netlify": null
    },
    "job": {
      "capability": "infra.cloud",
      "name": "Cloud hosting"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/azure-mcp-vs-digitalocean-mcp.json",
        "title": "Azure MCP Server vs DigitalOcean MCP Server",
        "url": "https://www.anchorterminal.com/compare/azure-mcp-vs-digitalocean-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-mcp-vs-railway-mcp-server.json",
        "title": "Azure MCP Server vs Railway MCP Server",
        "url": "https://www.anchorterminal.com/compare/azure-mcp-vs-railway-mcp-server"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-mcp-vs-render-mcp-server.json",
        "title": "Azure MCP Server vs Render MCP Server",
        "url": "https://www.anchorterminal.com/compare/azure-mcp-vs-render-mcp-server"
      },
      {
        "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/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/netlify-vs-terraform-mcp.json",
        "title": "Netlify API + MCP vs Terraform MCP Server",
        "url": "https://www.anchorterminal.com/compare/netlify-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/aws-mcp-servers-vs-azure-mcp.json",
        "title": "AWS MCP Servers vs Azure MCP Server",
        "url": "https://www.anchorterminal.com/compare/aws-mcp-servers-vs-azure-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-mcp-vs-cloudflare-cli.json",
        "title": "Azure MCP Server vs Cloudflare CLI (cf)",
        "url": "https://www.anchorterminal.com/compare/azure-mcp-vs-cloudflare-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-mcp-vs-cloudflare-mcp.json",
        "title": "Azure MCP Server vs Cloudflare MCP Servers",
        "url": "https://www.anchorterminal.com/compare/azure-mcp-vs-cloudflare-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-mcp-vs-neckbeard.json",
        "title": "Azure MCP Server vs neckbeard",
        "url": "https://www.anchorterminal.com/compare/azure-mcp-vs-neckbeard"
      }
    ],
    "panel": null,
    "scores": [
      {
        "azure-mcp": 69,
        "by": 2,
        "edge": "azure-mcp",
        "key": "reliability",
        "name": "Reliability",
        "netlify": 67,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "azure-mcp": 77,
        "by": 2,
        "edge": "netlify",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "netlify": 79,
        "weight": 13
      },
      {
        "azure-mcp": 74,
        "by": 5,
        "edge": "azure-mcp",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "netlify": 69,
        "weight": 13
      },
      {
        "azure-mcp": 73,
        "by": 14,
        "edge": "azure-mcp",
        "key": "security",
        "name": "Security \u0026 auth",
        "netlify": 59,
        "weight": 14
      },
      {
        "azure-mcp": 60,
        "by": 5,
        "edge": "azure-mcp",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "netlify": 55,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "azure-mcp": 89,
        "by": 2,
        "edge": "azure-mcp",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "netlify": 87,
        "weight": 7
      },
      {
        "azure-mcp": 80,
        "by": 1,
        "edge": "netlify",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "netlify": 81,
        "weight": 7
      }
    ],
    "summary": "Netlify API + MCP scores 69.4 (B) on agent readiness against Azure MCP Server's 68.4 (B), and leads in 2 of 7 scored categories. Azure MCP Server leads on agent ergonomics, security \u0026 auth and payments \u0026 pricing. Both do cloud hosting.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "azure-mcp": "Entra ID through DefaultAzureCredential, so access follows RBAC and no secret sits in the MCP config. 3.0.0 is the stable line, but npm `latest` installs a 4.0 beta since late October, destructive calls run without confirmation and the default mode exposes one tool for each of about 60 namespaces.",
      "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/azure-mcp-vs-netlify",
    "json": "https://www.anchorterminal.com/compare/azure-mcp-vs-netlify.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/azure-mcp-vs-netlify.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/azure-mcp-vs-netlify.min.md"
  },
  "markdown": "Netlify API + MCP scores 69.4 (B) on agent readiness against Azure MCP Server's 68.4 (B), and leads in 2 of 7 scored categories. Azure MCP Server leads on agent ergonomics, security \u0026 auth and payments \u0026 pricing. Both do cloud hosting.\n\n- Azure MCP Server: grade B, 68.4/100, rank #264 of 1349. Markdown https://www.anchorterminal.com/tools/azure-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/azure-mcp.json\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- 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- Best secrets managers and credential vaults for AI agents: https://www.anchorterminal.com/best/secrets/index.md\n- All 74 secrets comparisons: https://www.anchorterminal.com/compare/secrets/index.md\n\n## Which one, for what\n\n### Azure MCP Server (B)\n\nGood for: Agents inspecting or operating Azure resources under a developer's or service principal's own RBAC.\n\nAhead on:\n- Agent ergonomics, 74 against 69\n- Security \u0026 auth, 73 against 59\n- Payments \u0026 pricing, 60 against 55\n\nAlso in its favour:\n- Open source\n\nWatch for: Prereleases renamed and removed tools with no notice period, and npm `latest` points at a 4.0 beta on 1 November 2026\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 Azure MCP Server loses 5 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\n## Why the edge\n\n### Security \u0026 auth: Azure MCP Server +14\n\n- Azure MCP Server (73): Entra ID through DefaultAzureCredential (az login, managed identity, service principal, workload identity federation, and Azure Pipelines service connections since 3.0.0), so access is RBAC-scoped and nothing secret sits in the MCP config. HTTP mode authenticates incoming callers and can act on behalf of the user (28 of 30). `--read-only` drops write tools, `--namespace` narrows the surface, and reading secrets, connection strings or private keys asks the user first through elicitation. Since 3.0.0 the MySQL and PostgreSQL query tools are marked destructive, so `--read-only` drops them, and new Storage accounts, Event Hubs namespaces and Recovery Services vaults are created with Shared Key, local authentication or public networking off. Destructive operations still get no confirmation, and 3.0.0 removed the confirmation-only `--force` option from `sql server delete` (14 of 20). Monitor and Application Insights queries, blobs and database rows reach the model as they are. We found no prompt-injection guidance, though endpoint validation through Microsoft.Security.AntiSSRF now covers more data-plane and control-plane tools, and 4.0.0-beta.4 (29 October) rejects IoT Hub and resource group names such as `rg1/../rg2` that could send a request to another resource group (5 of 15). Azure's Activity Log records the writes made with the caller's identity, and telemetry can go to your own Application Insights (11 of 15). SECURITY.md and SUPPORT.md send reports to MSRC, Microsoft runs a bug bounty and MSRC assigned CVEs this year, but no GitHub advisories are published and www.microsoft.com/.well-known/security.txt still had Expires 2026-09-23 on 1 November (15 of 20). 28+14+5+11+15 = 73.\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\n### Agent ergonomics: Azure MCP Server +5\n\n- Azure MCP Server (74): About 430 commands (per the 1 October count) in 67 top-level groups in the command reference of 16 October. The default namespace mode shows one tool per namespace, still over 30, but `--namespace`, `--tool` (exact-name matching since 3.0.0-beta.50), consolidated mode and a single-tool mode shrink it (15 of 25). Resource Graph queries, pagination on some data tools and a compact structured-output mode (14 of 20). 3.0.0 returns 404 for missing resources where it returned 500 or 400, returns 400 for invalid input where it returned 500, rejects unknown parameters and, per the release notes, gives clearer authentication and RBAC errors. The router lists valid command names instead of dumping help. We found no reference that documents the error shapes (17 of 20). Every command carries destructive, idempotent, readOnly, openWorld and secret metadata, and Destructive defaults to true when unset. The email and SMS send tools were marked read-only until 1 October 2026 (16 of 20). DefaultAzureCredential needs no config, packages exist for Node, .NET and Python, but subscription and resource group are required on most tools (12 of 15). 15+14+17+16+12 = 74.\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\n### Payments \u0026 pricing: Azure MCP Server +5\n\n- Azure MCP Server (60): Free under MIT with nothing to buy for the server, so 20 + 20 + 20. Every tool acts on an Azure subscription that Microsoft bills separately, which this grade doesn't cover. No payment protocol (0).\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\n## Score by category\n\n| Category | Weight | Azure MCP Server | Netlify API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 69 | 67 | Azure MCP Server +2 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 77 | 79 | Netlify API + MCP +2 |\n| Agent ergonomics | 13% (16.2 this run) | 74 | 69 | Azure MCP Server +5 |\n| Security \u0026 auth | 14% (17.5 this run) | 73 | 59 | Azure MCP Server +14 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 55 | Azure MCP Server +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 89 | 87 | Azure MCP Server +2 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 80 | 81 | Netlify API + MCP +1 |\n| Negative events | ≤15 | -5 | 0 | |\n| **Total** | | **68.4 · B** | **69.4 · B** | |\n\n## Facts side by side\n\n| Fact | Azure MCP Server | Netlify API + MCP |\n| --- | --- | --- |\n| Kind | MCP server | HTTP API |\n| Vendor | Microsoft | Netlify, Inc. |\n| Hosted endpoint | no (local only) | `https://api.netlify.com/api/v1` |\n| Transports | stdio, Streamable HTTP | HTTP, Streamable HTTP, stdio |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Free | Freemium |\n| x402 | no | no |\n| Licence | MIT | 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 |\n| Tools exposed | none | 11 |\n| Read-only variant documented | yes | no |\n| llms.txt | no | yes |\n| MCP registry | `com.microsoft/azure` | not listed |\n| Last release | 2026-10-29 | 2026-10-26 |\n| Terms last updated | no document linked | 2026-10-14 |\n| Privacy policy last updated | 2026-09-01 | 2026-04-10 |\n| Customer content may train models | yes | not found in the text |\n| Terms restrict automated access | not read yet | not found in the text |\n| Terms restrict benchmarking | not read yet | not found in the text |\n| Terms or service can change without notice | not read yet | not found in the text |\n| Arbitration or class-action waiver | not read yet | not found in the text |\n| Popularity | 3.6k stars | 58k npm/wk |\n| Agent reviews | 2.5/5 (2) | none |\n\n## How the scores have moved\n\n### Azure MCP Server\n\n- -1.6 on 1 November 2026 (BB to B): product\n- +0.1 on 27 October 2026 (B to BB): checklist\n- +2.2 on 17 October 2026: product\n\n### Netlify API + MCP\n\nNo score change since it was listed.\n\n## Verdicts\n\n**Azure MCP Server.** Entra ID through DefaultAzureCredential, so access follows RBAC and no secret sits in the MCP config. 3.0.0 is the stable line, but npm `latest` installs a 4.0 beta since late October, destructive calls run without confirmation and the default mode exposes one tool for each of about 60 namespaces.\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## Before you call either\n\n### Azure MCP Server\n\n1. Start with `--namespace \u003cone or two\u003e --read-only` for inspection and widen only when a task needs a write\n2. Pin `@azure/mcp@3.0.0`. On 1 November 2026 `@latest` installs 4.0.0-beta.4, and betas ship breaking changes twice a week\n3. Drop `subscription`, `tenant` and other removed parameters from saved calls. 3.0.0 rejects unknown parameters\n4. Use `resiliency_*`, not `resilience_*`. The prefix changed on 22 September 2026\n5. Auth failures mean the credential chain found nothing. Run `az login` or set the service-principal variables\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## Questions\n\n### Which is better for AI agents, Azure MCP Server or Netlify API + MCP?\n\nNetlify API + MCP scores 69.4 (B) on agent readiness against Azure MCP Server's 68.4 (B), and leads in 2 of 7 scored categories. Azure MCP Server leads on agent ergonomics, security \u0026 auth and payments \u0026 pricing.\n\n### Do Azure MCP Server and Netlify API + MCP need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Azure MCP Server and Netlify API + MCP without installing anything?\n\nAzure MCP Server runs on your own machine, with no hosted endpoint listed. Netlify API + MCP has a hosted endpoint at https://api.netlify.com/api/v1.\n\n### Are Azure MCP Server and Netlify API + MCP open source?\n\nAzure MCP Server is open source (MIT). No open-source release is listed for Netlify API + MCP.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/azure-mcp-vs-netlify.json, and with the fewest tokens: https://www.anchorterminal.com/compare/azure-mcp-vs-netlify.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"azure-mcp\", \"b\": \"netlify\"}`. From a terminal: `anchor compare azure-mcp netlify`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/azure-mcp.json and https://www.anchorterminal.com/api/v1/tools/netlify.json\n\n## Other comparisons with Azure MCP Server or Netlify API + MCP\n\n- [Azure MCP Server vs DigitalOcean MCP Server](https://www.anchorterminal.com/compare/azure-mcp-vs-digitalocean-mcp.md)\n- [Azure MCP Server vs Railway MCP Server](https://www.anchorterminal.com/compare/azure-mcp-vs-railway-mcp-server.md)\n- [Azure MCP Server vs Render MCP Server](https://www.anchorterminal.com/compare/azure-mcp-vs-render-mcp-server.md)\n- [DigitalOcean MCP Server vs Netlify API + MCP](https://www.anchorterminal.com/compare/digitalocean-mcp-vs-netlify.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- [Netlify API + MCP vs Terraform MCP Server](https://www.anchorterminal.com/compare/netlify-vs-terraform-mcp.md)\n- [Cloudflare CLI (cf) vs Netlify API + MCP](https://www.anchorterminal.com/compare/cloudflare-cli-vs-netlify.md)\n- [AWS MCP Servers vs Azure MCP Server](https://www.anchorterminal.com/compare/aws-mcp-servers-vs-azure-mcp.md)\n- [Azure MCP Server vs Cloudflare CLI (cf)](https://www.anchorterminal.com/compare/azure-mcp-vs-cloudflare-cli.md)\n- [Azure MCP Server vs Cloudflare MCP Servers](https://www.anchorterminal.com/compare/azure-mcp-vs-cloudflare-mcp.md)\n- [Azure MCP Server vs neckbeard](https://www.anchorterminal.com/compare/azure-mcp-vs-neckbeard.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": "Azure MCP Server vs Netlify API + MCP",
        "url": ""
      }
    ],
    "description": "Netlify scores 69.4 (B) to Azure's 68.4 (B) for cloud hosting. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Azure MCP Server B 68.4",
      "Netlify API + MCP B 69.4",
      "scores"
    ],
    "h1": "Azure MCP Server vs Netlify API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/azure-mcp-vs-netlify",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Azure vs Netlify for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-04",
    "url": "https://www.anchorterminal.com/compare/azure-mcp-vs-netlify"
  },
  "tokens": {
    "markdown": 4000,
    "slim": 2280
  },
  "version": 1
}
