{
  "data": {
    "a": {
      "slug": "azure-devops-mcp",
      "name": "Azure DevOps MCP Server",
      "vendor": "Microsoft",
      "vendorUrl": "https://azure.microsoft.com/en-us/products/devops",
      "kind": "mcp",
      "category": "code",
      "summary": "Microsoft's official MCP server for Azure DevOps Services. It gives agents work items, repositories, pull requests, pipelines, wikis, test plans and Advanced Security alerts, through a hosted endpoint with Microsoft Entra sign-in or a local npm package.",
      "url": "https://www.anchorterminal.com/tools/azure-devops-mcp",
      "markdownUrl": "https://www.anchorterminal.com/tools/azure-devops-mcp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/azure-devops-mcp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/azure-devops-mcp.json",
      "dns": "azure-devops-mcp.grade.anchorterminal.com",
      "repo": "https://github.com/microsoft/azure-devops-mcp",
      "license": "MIT for the local server in the repository. The hosted remote server is a Microsoft online service under the customer's Azure DevOps terms",
      "transports": [
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://mcp.dev.azure.com/{organization}",
      "packages": [
        {
          "registry": "npm",
          "name": "@azure-devops/mcp"
        }
      ],
      "auth": "mixed",
      "authNotes": "Remote server: Microsoft Entra ID OAuth only, with the bearer token in the `Authorization` header. Personal access tokens aren't accepted, and the organisation must be backed by an Entra tenant. Visual Studio Code, Visual Studio, Microsoft Foundry, Copilot Studio and the GitHub Copilot clients sign in directly. Claude Code and Cursor need a custom Entra app registration with delegated Azure DevOps scopes and admin consent, because Entra has no dynamic client registration. Claude Desktop and Codex can't use the remote server. Local server: interactive Entra sign-in by default, or `azcli`, `env` (DefaultAzureCredential), `envvar` (bearer token in `ADO_MCP_AUTH_TOKEN`) or `pat` (base64 of email and PAT in `PERSONAL_ACCESS_TOKEN`). Personal Microsoft accounts aren't supported (checked 2026-10-08).",
      "pricing": "freemium",
      "pricingNotes": "The MCP server is free, and standard Azure DevOps pricing applies to the organisation behind it. The Basic plan is free for the first five users, then $6 a user a month. Basic + Test Plans is $52 a user a month with a 30-day trial. An agent can start on the five free users without a contract, but a person has to create the organisation and sign in (checked 2026-10-08).",
      "priceSummary": "$6 / seat-mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Learn docs, the repository or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 48,
      "popularity": {
        "githubStars": 2000,
        "npmWeekly": 120075,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://learn.microsoft.com/en-us/azure/devops/mcp-server/mcp-server-overview",
      "capabilities": [
        "code.repo",
        "work.issues",
        "code.deploy",
        "work.docs"
      ],
      "tags": [
        "official",
        "hosted",
        "mcp",
        "oauth",
        "entra-id",
        "read-only-mode",
        "toolsets",
        "open-source",
        "npm"
      ],
      "lastRelease": "2026-10-22",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63.4,
        "grade": "B",
        "agentReady": false,
        "rank": 514,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 10,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 70,
          "maintenance": 80,
          "payments": 40,
          "reliability": 72,
          "schema": 64,
          "security": 81,
          "transparency": 80
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-01"
        },
        "negative": -6,
        "negativeNotes": [
          "2026-07-29: version 2.9.0 of the local package renamed its tools in a minor release while consolidating them to match the remote server. The README warning and the advice to pin 2.8.1 were added on 31 July, and no aliases were kept. Documented since, so the deduction is small (https://github.com/microsoft/azure-devops-mcp/pull/1476).",
          "2026-10-22 and 2026-09-09: released fixes to the package's own code with no advisory. 2.11.0 carries \"fix for msrc case on attachment downloads\" (commit ea8a7f6, 9 October), which rejects attachment file names that allowed path traversal and null byte exploits, and 2.10.0 carries the untrusted-content wrapping and the stricter policy bypass of commit a289161 (2 September, citing MSRC-135517). OSV and NVD list nothing for @azure-devops/mcp on 1 November. Repeats of one kind, one term (-3) (https://github.com/microsoft/azure-devops-mcp/commit/ea8a7f6b378881c07525ab58cecec69dc13fdb46)."
        ],
        "verdict": "The hosted endpoint takes Entra OAuth with Azure DevOps scopes, an `X-MCP-Readonly` header and toolset or per-tool filters, and the MIT local package annotates every tool. Microsoft announced the remote server as generally available on 5 August 2026. Two MSRC fixes in the local package shipped in September and October with no advisory.",
        "bestFor": "Agents working in an Azure DevOps organisation on work items, pull requests, pipelines and test plans, most easily from Microsoft's own clients.",
        "strengths": [
          "`X-MCP-Readonly`, `X-MCP-Toolsets` and `X-MCP-Tools` headers trim the remote server to read tools, eight toolsets or named tools",
          "Remote access uses Microsoft Entra OAuth with Azure DevOps scopes, and a call needs both the app scope and the user's own permission",
          "All 45 tools in the local package carry read-only, destructive, idempotent and open-world hints, checked by a test",
          "Since 2.10.0 the local package wraps every tool response in random delimiters marked untrusted before it reaches the model",
          "2.11.0 on 22 October 2026, with nightly npm builds and pull requests merged up to 30 October"
        ],
        "weaknesses": [
          "Azure DevOps' status history page lists no resolved incidents, so the 90-day record couldn't be read",
          "Claude Code and Cursor need a custom Entra app registration with admin consent, and Claude Desktop and Codex can't use the remote server",
          "Version 2.9.0 renamed the local tools in a minor release on 29 July 2026, with the README warning added two days later",
          "Fixes for two MSRC cases, including an attachment path traversal, shipped in 2.10.0 and 2.11.0 with no published advisory",
          "No entry under a Microsoft namespace in the official MCP registry. The only listing naming this repository is a third party's"
        ],
        "agentNotes": [
          "Put the organisation in the URL (`https://mcp.dev.azure.com/{organization}`). Without it every call must name the organisation, and guest users can't connect at all",
          "Send `X-MCP-Readonly: true` for read tasks and `X-MCP-Toolsets: repos,wit` to cut the tool list. Don't combine `X-MCP-Toolsets` with `X-MCP-Tools`",
          "Name the project in each call. Since 2.11.0 a pull request lookup by repository name fails without it",
          "For headless runs use the local package at 2.11.0 or later with `--authentication envvar` and a token in `ADO_MCP_AUTH_TOKEN`. The default interactive sign-in fails without a browser",
          "On HTTP 429 wait for `Retry-After`. Azure DevOps delays or blocks a user above 200 TSTUs in a sliding five-minute window"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "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": 63.4
          }
        ],
        "editorialScores": {
          "ergonomics": 70,
          "maintenance": 80,
          "payments": 40,
          "reliability": 72,
          "schema": 64,
          "security": 81,
          "transparency": 72
        },
        "provenanceScore": 88,
        "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": {
        "install": "npx -y @azure-devops/mcp \u003corganization\u003e",
        "claudeCode": "claude mcp add --transport http ado https://mcp.dev.azure.com/{organization} --client-id {client-id} --callback-port 3118",
        "config": {
          "inputs": [],
          "servers": {
            "ado-remote-mcp": {
              "headers": {
                "X-MCP-Readonly": "true",
                "X-MCP-Toolsets": "repos,wiki,wit"
              },
              "type": "http",
              "url": "https://mcp.dev.azure.com/{organization}"
            }
          }
        },
        "headless": {
          "mcpServers": {
            "ado": {
              "args": [
                "-y",
                "@azure-devops/mcp",
                "\u003corganization\u003e",
                "--authentication",
                "envvar"
              ],
              "command": "npx",
              "env": {
                "ADO_MCP_AUTH_TOKEN": "${ADO_MCP_AUTH_TOKEN}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/code.repo",
        "tool": "https://letme.dev/azure-devops-mcp"
      },
      "sameCompany": [
        "azure-openai",
        "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",
        "bing-grounding",
        "azure-document-intelligence",
        "microsoft-learn-mcp",
        "tokeneconomizer",
        "playwright-mcp",
        "azure-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"
      ],
      "area": "developer",
      "unitPrices": [
        {
          "item": "Azure DevOps Basic plan",
          "unit": "seat-month",
          "usd": 6,
          "note": "first five users free. The MCP server adds no charge"
        },
        {
          "item": "Azure DevOps Basic + Test Plans",
          "unit": "seat-month",
          "usd": 52,
          "note": "30-day trial"
        }
      ],
      "provenance": {
        "legalEntity": "Microsoft Corporation",
        "domain": "microsoft.com",
        "domainRegistered": "1991-05-02",
        "domainNote": "The hosted server answers at mcp.dev.azure.com, a Microsoft domain. microsoft.com publishes a security.txt, but it passed its Expires date on 2026-09-23.",
        "endpointOnVendorDomain": true,
        "terms": "https://www.microsoft.com/licensing/terms/product/ForOnlineServices/all",
        "privacy": "https://www.microsoft.com/en-us/privacy/privacystatement",
        "statusPage": "https://status.dev.azure.com",
        "changelog": "https://github.com/microsoft/azure-devops-mcp/releases",
        "securityTxt": "expired",
        "checked": "2026-10-08",
        "notes": [
          "The remote endpoint is on mcp.dev.azure.com and the status page on status.dev.azure.com. azure.com and microsoft.com are Microsoft domains, and the docs are on learn.microsoft.com.",
          "The Product Terms page loaded on 8 October 2026 but draws its content by script, so the Azure DevOps entry and the SLA reference were not read. Self-serve Azure accounts also accept the Microsoft Online Subscription Agreement at https://azure.microsoft.com/en-us/support/legal/subscription-agreement/.",
          "The local package's own terms are the MIT licence in the repository.",
          "https://www.microsoft.com/.well-known/security.txt shows Expires 2026-09-23T16:00:00.000Z, so it had expired when read on 8 October 2026. It points to the MSRC researcher portal, the bounty policy and the coordinated disclosure policy.",
          "The remote server has no changelog of its own. The repository's releases cover the local package, and the Azure DevOps sprint release notes carried the preview announcement.",
          "Domain registration date carried from our other Microsoft listings (RDAP, 1991-05-02), not looked up again today."
        ],
        "score": 88
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/azure-devops-mcp.json",
      "live": {
        "slug": "azure-devops-mcp",
        "probe": {
          "target": "https://mcp.dev.azure.com/{organization}",
          "method": "mcp-initialize",
          "lastAt": "2026-11-07T19:21:54.121412137Z",
          "lastOk": true,
          "lastStatus": 400,
          "lastMs": 160,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 72,
          "p95ms24h": 177,
          "samples24h": 238,
          "samples30d": 7450,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 70,
              "ok": 70
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-30",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 197,
              "ok": 197
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.dev.azure.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:47:09.013772077Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "microsoft/azure-devops-mcp",
            "version": "v2.11.0",
            "released": "2026-10-22",
            "seenAt": "2026-11-06T23:09:05.724491693Z"
          },
          {
            "registry": "npm",
            "name": "@azure-devops/mcp",
            "version": "2.11.0",
            "seenAt": "2026-11-06T23:09:05.327476603Z"
          }
        ],
        "githubStars": 2083,
        "npmWeekly": 143892,
        "securityTxt": {
          "url": "https://microsoft.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-10-27T16:00:00.000Z",
          "checkedAt": "2026-11-07T16:02:01.196666056Z"
        },
        "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://www.microsoft.com/en-us/privacy/privacystatement",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:29:10.811041134Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a053fc7ce233"
          },
          {
            "url": "https://www.microsoft.com/licensing/terms/product/ForOnlineServices/all",
            "kind": "terms",
            "status": 502,
            "checkedAt": "2026-10-08T18:29:15.375311486Z",
            "changedAt": "0001-01-01T00:00:00Z"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.dev.azure.com/{organization}",
          "checkedAt": "2026-11-07T01:42:39.814524667Z",
          "status": "error",
          "note": "initialize: HTTP 400",
          "changedAt": "2026-10-08T21:33:25.928932132Z"
        },
        "github": {
          "repo": "microsoft/azure-devops-mcp",
          "checkedAt": "2026-11-02T09:06:03.308024205Z",
          "stars": 2075,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-30T15:16:13Z",
          "openIssues": 4,
          "openPRs": 11,
          "issuesOpened90d": 130,
          "issuesClosed90d": 131,
          "prsMerged90d": 74,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 50,
            "failure": 0,
            "other": 0,
            "latest": "success",
            "latestAt": "2026-10-30T15:14:58Z"
          },
          "replies": {
            "sampled": 25,
            "unanswered": 1,
            "medianDays": 0.3
          }
        },
        "updatedAt": "2026-11-07T19:21:54.121412137Z"
      }
    },
    "answer": "GitLab MCP Server scores 67.3 (B) on agent readiness against Azure DevOps MCP Server's 63.4 (B), and leads in 3 of 7 scored categories. Azure DevOps MCP Server leads on reliability, security \u0026 auth and payments \u0026 pricing.",
    "b": {
      "slug": "gitlab-mcp",
      "name": "GitLab MCP Server",
      "vendor": "GitLab Inc.",
      "vendorUrl": "https://about.gitlab.com",
      "kind": "mcp",
      "category": "code",
      "summary": "GitLab's official MCP server, built into GitLab at /api/v4/mcp, gives MCP clients tools for projects, merge requests, work items, repositories, CI/CD pipelines and GitLab Duo agents, on GitLab.com, Self-Managed and Dedicated.",
      "url": "https://www.anchorterminal.com/tools/gitlab-mcp",
      "markdownUrl": "https://www.anchorterminal.com/tools/gitlab-mcp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/gitlab-mcp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/gitlab-mcp.json",
      "dns": "gitlab-mcp.grade.anchorterminal.com",
      "repo": "https://gitlab.com/gitlab-org/gitlab",
      "transports": [
        "streamable-http"
      ],
      "remoteUrl": "https://gitlab.com/api/v4/mcp",
      "packages": [],
      "auth": "oauth",
      "authNotes": "OAuth 2.0 access token with the `mcp` scope, through dynamic client registration (10 registrations an hour per IP) or a pre-registered OAuth application, or a fine-grained personal access token with the MCP tool resource and Execute permission. Legacy, project and group access tokens are refused with 403 `insufficient_scope`. An administrator must first allow MCP access for the top-level group (GitLab.com) or the instance. Pre-registered apps created through the REST API don't enforce PKCE. The endpoint answers 401 with RFC 9728 resource metadata naming gitlab.com as authorisation server.",
      "pricing": "freemium",
      "pricingNotes": "The MCP server is on Free, Premium and Ultimate since GitLab 19.2. GitLab.com Free is $0 for up to 5 users per top-level group with no card; Premium is $29 a user a month billed annually; Ultimate is by quote. Duo Agent Platform tools need Premium or Ultimate with Duo, or GitLab Credits at $1 each.",
      "priceSummary": "$1 / credit",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on the MCP server or the pricing page (checked 2026-11-06).",
        "endpoints": []
      },
      "toolCount": 47,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://docs.gitlab.com/user/model_context_protocol/mcp_server/",
      "llmsTxt": "https://docs.gitlab.com/llms.txt",
      "registryName": "com.gitlab/mcp",
      "capabilities": [
        "code.repo",
        "code.git",
        "code.deploy"
      ],
      "tags": [
        "hosted",
        "self-hosted",
        "freemium",
        "mcp",
        "remote-mcp",
        "oauth",
        "mcp-registry",
        "llms-txt",
        "toolsets",
        "gitlab",
        "ci-cd"
      ],
      "lastRelease": "2026-10-15",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 67.3,
        "grade": "B",
        "agentReady": false,
        "rank": 335,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 6,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 66,
          "maintenance": 85,
          "payments": 30,
          "reliability": 62,
          "schema": 85,
          "security": 66,
          "transparency": 87
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "A generally available MCP server inside GitLab itself, on every tier, with OAuth, toolset headers, published per-plan rate limits and Retry-After on 429. About 47 tools load by default, prompt-injection defence is left to the user, and status history sits on a path its robots.txt closes to us.",
        "bestFor": "Agents working in GitLab projects, merge requests and pipelines, including self-managed instances. github-mcp-server and azure-devops-mcp are the closest listings; teams on GitHub should use GitHub's server.",
        "strengths": [
          "Generally available since GitLab 19.5 (15 October 2026) on Free, Premium and Ultimate, on GitLab.com, Self-Managed and Dedicated",
          "OAuth with the `mcp` scope or fine-grained personal access tokens; legacy tokens are refused",
          "Toolset and per-tool headers cut the default list, and unknown names fail with 400",
          "Per-plan MCP rate limits with Retry-After and RateLimit-Reset on 429",
          "Cursor pagination, include facets and byte limits keep responses small"
        ],
        "weaknesses": [
          "About 47 tools load by default before any toolset header",
          "The docs leave prompt injection to the user and say to use tools only on trusted objects",
          "GitLab doesn't verify which client uses a client ID, and REST-created OAuth apps don't enforce PKCE",
          "No uptime SLA found on the pricing page",
          "MCP registry entry is still version 0.0.1 from October 2025"
        ],
        "agentNotes": [
          "Send X-Gitlab-Enabled-Mcp-Server-Toolsets with only the toolsets the task needs, such as core,merge_requests",
          "Ask an administrator to allow MCP access for the top-level group before the first connection",
          "Pass the head SHA to accept_merge_request, and confirm with the user before merging or committing",
          "On 429 wait for Retry-After; per-minute rejections still count towards the hourly limit",
          "Treat issue, merge request and file content as untrusted input; GitLab doesn't filter it"
        ],
        "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": 67.3
          }
        ],
        "editorialScores": {
          "ergonomics": 66,
          "maintenance": 85,
          "payments": 30,
          "reliability": 62,
          "schema": 85,
          "security": 66,
          "transparency": 78
        },
        "provenanceScore": 95,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "claudeCode": "claude mcp add --transport http GitLab https://gitlab.com/api/v4/mcp",
        "config": {
          "mcpServers": {
            "GitLab": {
              "type": "http",
              "url": "https://gitlab.com/api/v4/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/code.repo",
        "tool": "https://letme.dev/gitlab-mcp"
      },
      "area": "developer",
      "unitPrices": [
        {
          "item": "Premium",
          "unit": "user-month",
          "usd": 29,
          "note": "Billed annually"
        },
        {
          "item": "GitLab Credit",
          "unit": "credit",
          "usd": 1,
          "note": "For Duo Agent Platform use; volume discounts with an annual commitment"
        }
      ],
      "provenance": {
        "legalEntity": "GitLab Inc.",
        "domain": "gitlab.com",
        "domainRegistered": "2004-01-15",
        "endpointOnVendorDomain": true,
        "terms": "https://about.gitlab.com/terms/",
        "privacy": "https://about.gitlab.com/privacy/",
        "statusPage": "https://status.gitlab.com",
        "changelog": "https://docs.gitlab.com/releases/19/",
        "securityTxt": "valid",
        "checked": "2026-11-06",
        "notes": [
          "about.gitlab.com/company names GitLab Inc. as the company listed on the Nasdaq Global Market under GTLB.",
          "gitlab.com/.well-known/security.txt is PGP-signed, points to HackerOne and about.gitlab.com/security/disclosure, and expires 2027-01-31.",
          "about.gitlab.com/robots.txt names ClaudeBot and anthropic-ai and disallows only /search/, /api/, /exp/ and one resources folder for them.",
          "The sub-processor page lists 63 entries, including Google, AWS, Anthropic, OpenAI and Fireworks.ai for AI functions and HiddenLayer for prompt-injection security, with locations, and no visible update date.",
          "RDAP gives gitlab.com a registration date of 15 January 2004."
        ],
        "score": 95
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/gitlab-mcp.json",
      "live": {
        "slug": "gitlab-mcp",
        "probe": {
          "target": "https://gitlab.com/api/v4/mcp",
          "method": "mcp-initialize",
          "lastAt": "2026-11-07T19:22:08.765215305Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 181,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 195,
          "p95ms24h": 315,
          "samples24h": 210,
          "samples30d": 210,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 197,
              "ok": 197
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.gitlab.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:47:50.529753137Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "com.gitlab/mcp",
            "version": "0.0.1",
            "seenAt": "2026-11-07T18:16:28.95801333Z"
          }
        ],
        "securityTxt": {
          "url": "https://gitlab.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-01-31T05:00:00.000Z",
          "checkedAt": "2026-11-07T16:00:35.978160451Z"
        },
        "llmsTxt": {
          "url": "https://docs.gitlab.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:35.836590435Z"
        },
        "pages": [
          {
            "url": "https://docs.gitlab.com/releases/19/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:06:25.949810739Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e555fad0fadb"
          },
          {
            "url": "https://about.gitlab.com/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T13:58:29.597957724Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "205ffc09f256"
          },
          {
            "url": "https://about.gitlab.com/terms/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T13:58:31.769260175Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "33bec44fb3b9"
          }
        ],
        "mcpTools": {
          "url": "https://gitlab.com/api/v4/mcp",
          "checkedAt": "2026-11-07T01:44:49.273162786Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-11-07T01:44:49.273162786Z"
        },
        "updatedAt": "2026-11-07T19:22:08.765215305Z"
      }
    },
    "edges": [
      {
        "by": 21,
        "category": "schema",
        "leads": "gitlab-mcp",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "Every tool in the local package has a zod schema turned into JSON Schema. The remote server's own definitions sit behind Entra sign-in and weren't read, and the docs list its tools and actions only (20). learn.microsoft.com has no llms.txt (404) but returns Markdown when asked with `Accept: text/markdown` (10). Descriptions are short, with a median of 89 characters across 45 tools, and most say only to use the `action` parameter. A few, such as `repo_pull_request_org`, say when to choose them (8). Enums, bounds and required organisation fields are present and no tool takes a free-form object. The dispatcher design leaves most parameters optional with a note such as \"Used for update\", so the schema can't mark what each action needs (10). TOOLSET.md lists parameters per tool and EXAMPLES.md gives prompts. Errors are plain-text tool results, and the troubleshooting page covers Entra error codes (8). The local package has semver releases (2.11.0 on 22 October 2026). The remote server is updated separately with no changelog found, and its tool page warns that the list may lag (8). 20 + 10 + 8 + 10 + 8 + 8 = 64.",
          "b": "The tools reference documents every parameter with its type, required flag and enum values, and the server exposes JSON Schema through MCP; we read the reference, not the source (22). docs.gitlab.com/llms.txt is served (10). Each tool says what it does, and superseded tools name their replacement (`Use get_merge_request with include: commits`), though few say when not to use one (14). Enums for include facets, states, scopes and methods, with documented maximums such as first up to 100 and byte_limit up to 1 MB (13). The docs cover 403 insufficient_scope, 400 for an unknown toolset, 429 headers and troubleshooting for Windows and Claude Code, but give few example responses (11). Per-tool version history and monthly release notes (15). 22 + 10 + 14 + 13 + 11 + 15 = 85."
        },
        "scores": {
          "a": 64,
          "b": 85
        }
      },
      {
        "by": 15,
        "category": "security",
        "leads": "azure-devops-mcp",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "The remote server accepts only Microsoft Entra OAuth with delegated Azure DevOps scopes, in the `Authorization` header, and a call needs both the app scope and the user's own permission. Conditional Access applies. The local package also takes PATs, which can be scoped and revoked (30). `X-MCP-Readonly`, toolset and per-tool headers, and guidance to grant read scopes only. No confirmation step for write tools was found. Since 2.10.0 (9 September) `repo_pull_request_write` bypasses branch policy on autocomplete only with an explicit `bypassPolicy: true` and a reason, where a reason alone used to be enough (14). Since 2.10.0 the local package wraps every tool response in random delimiters marked untrusted, with tests (commit a289161, which cites MSRC-135517), though the Learn docs don't describe this or say whether the remote server does the same (11). Azure DevOps auditing exists for Entra-backed organisations and is itself labelled preview. Its event list has no MCP-specific events (8). SECURITY.md routes reports to MSRC, Azure DevOps is in Microsoft's bounty programme, and the data protection page lists SOC 2 Type 2 and ISO 27001:2022. OSV and NVD list no advisory for the package on 1 November, and www.microsoft.com/.well-known/security.txt still had Expires 2026-09-23 on 1 November (18). 30 + 14 + 11 + 8 + 18 = 81.",
          "b": "OAuth with dynamic registration and a single `mcp` scope that carries the user's own GitLab permissions, or fine-grained personal access tokens scoped to the MCP tool resource. The docs say GitLab doesn't verify which client uses a client ID and that REST-created apps don't enforce PKCE (22). Toolset and tool headers narrow the surface, an administrator must enable MCP for the group or instance, 19.4 governance defaults writes to Always Ask in Duo settings and 19.6 adds group rules enforced for every client, in beta (16). The docs leave prompt injection to the user (\"use MCP tools only on GitLab objects you trust\") (5). GitLab audit events exist on paid tiers, but we didn't read whether MCP calls are recorded (8). security.txt is valid until 31 January 2027 and points at a public HackerOne programme; certifications weren't read this run (15). 22 + 16 + 5 + 8 + 15 = 66."
        },
        "scores": {
          "a": 81,
          "b": 66
        }
      },
      {
        "by": 10,
        "category": "reliability",
        "leads": "azure-devops-mcp",
        "name": "Reliability",
        "reasons": {
          "a": "Scored with the hosted lines, because the remote endpoint is the one Microsoft recommends. status.dev.azure.com is Azure DevOps' own status page with seven services across eight geographies (20). Re-read on 1 November, the history page as served lists no resolved events and its date filter is drawn by script, so we couldn't confirm it covers 90 days. Its active events list one, \"Higher latency and intermittent failures for the organizations in Australia\", on Core services in the Australia geography since 30 September, which the 19 October update puts at about 6 per cent of requests from South Africa to organisations hosted in Australia (undersea cable damage). That touches one geography, so it reads as minor. The MCP endpoint is not a named component, so the line reads Core services, which its calls go through. The 8 October award of 15 isn't a checklist value. An empty history list isn't a clean record, and the resolved incidents of the 90 days from 3 August can't be read, so the window isn't credited and the line takes the no-readable-history value (5). Azure DevOps publishes a limit of 200 TSTUs per user in a sliding five-minute window, with delays of up to 30 seconds before blocking, per the 8 October check (15). Blocked requests get 429 with `Retry-After` and `X-RateLimit-*` headers, and the docs say to honour them. No retry guidance for writes was found (12). The data protection page states a 99.9 per cent SLA with refunds for Azure DevOps, per the 8 October check. (10). Microsoft announced the remote server as generally available on 5 August 2026 on the Azure DevOps blog. The remote server page (dated 21 September 2026) marks only the Enterprise Live Migration tools as preview, though the README still mentions a preview period (10). 20 + 5 + 15 + 12 + 10 + 10 = 72.",
          "b": "Hosted reading for GitLab.com. Status page at status.gitlab.com (status.io) with an API and a GitLab Duo component (20). Its incident history lives under /pages/, which the site's robots.txt disallows; our reader fetched that history page once before the rule was checked, so its contents are set aside and not scored. The front page shows only the current state, all operational on 6 November, so there is no readable history (5). MCP limits are published per plan, 60 a minute and 3,600 an hour on Free, 600 and 5,000 on Premium and Ultimate (15). 429 responses carry Retry-After and RateLimit-Reset, and a rate-limited upstream API comes back as a `rate_limited` tool result; accept_merge_request requires the head SHA, but we found no general idempotency guidance for writes (12). No uptime SLA on the pricing page (0). Generally available since 19.5 (10). 20 + 5 + 15 + 12 + 0 + 10 = 62."
        },
        "scores": {
          "a": 72,
          "b": 62
        }
      },
      {
        "by": 10,
        "category": "payments",
        "leads": "azure-devops-mcp",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). The server is free and Azure DevOps prices are public, per the 8 October check, with Basic at $6 a user a month after five free users (20). The first five users are free and the pricing page states no card requirement for them (20). A person has to create the organisation and sign in through Entra, and outside Microsoft's clients an administrator has to register an app (0). 0 + 20 + 20 + 0 = 40.",
          "b": "No x402, MPP or L402 (0). Plan prices are public for Free and Premium, Ultimate is by quote and GitLab Credits are $1 each, but the MCP server has no per-call price (10). GitLab.com Free needs no card, and the MCP server is on every tier (20). A person signs up, and an administrator must enable MCP and a user must authorise in a browser (0). 0 + 10 + 20 + 0 = 30."
        },
        "scores": {
          "a": 40,
          "b": 30
        }
      },
      {
        "by": 7,
        "category": "transparency",
        "leads": "gitlab-mcp",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "The local server is MIT, and the hosted service runs under Microsoft's online service terms (30). Azure DevOps documents encryption, replication, a 28-day recovery window for deleted organisations and its data locations. Nothing says what the remote MCP server logs or keeps, and the overview's privacy section says project information never leaves the customer's network, which doesn't fit a hosted endpoint (18). The README says the remote server will eventually replace the local one and asks users to plan migration, with no date. Dated notices exist for global PATs (1 December 2026) and Azure DevOps OAuth (10). Eight data geographies and the remote server's two outbound IP addresses are published. We didn't read a subprocessor list. The local source has no telemetry beyond a user agent string naming the MCP client (14). 30 + 18 + 10 + 14 = 72.",
          "b": "GitLab's code is public in gitlab-org/gitlab, with the core under MIT and enterprise functions under GitLab's own licence; we didn't establish which licence covers the MCP server code (20). The privacy statement and a sub-processor page of 63 entries name AI providers and their purposes, but that page shows no update date and links no DPA (20). A dated deprecations and removals page and per-tool version history, with superseded tools kept as callable aliases (20). Sub-processors and their locations are disclosed, and Dedicated customers choose their AWS region (18). 20 + 20 + 20 + 18 = 78."
        },
        "scores": {
          "a": 80,
          "b": 87
        }
      },
      {
        "by": 5,
        "category": "maintenance",
        "leads": "gitlab-mcp",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "2.11.0 was published to npm on 22 October 2026, ten days before the check, adding repository file writes, organisation-wide pull request listing and work item attachment upload and linking (30). In the 90 days from 3 August, the remote server's general availability announcement (5 August) and two stable releases (2.10.0 on 9 September, 2.11.0 on 22 October). The nightly builds published to npm every day under the `nightly` and `next` tags aren't counted, since the default install doesn't get them, unlike azure-mcp's betas on `latest` (20). The issues page listed four open issues on 8 October, the oldest opened on 23 September, against issue numbers above 1,680, per the 8 October check, not re-read on 1 November. Pull requests merged up to 30 October (20). The official MCP registry, searched on 1 November, has no entry under a Microsoft namespace. The repository's server.json names `com.microsoft/azure-devops` at 2.4.0, but the registry returns only a third party's listing (io.github.PremierInc/azure-devops) for this repository (0). Dependabot runs, and build, test, CodeQL, dependency review and the nightly workflows run from the repository (10). 30 + 20 + 20 + 0 + 10 = 80.",
          "b": "GitLab 19.5 made the server generally available on 15 October 2026, 22 days before this check, and 19.6 changes are already on GitLab.com (30). Monthly releases 19.3, 19.4 (17 September) and 19.5 each changed MCP tools (20). Issues are public on gitlab.com, with a feedback issue (630189) for the server, but we didn't measure reply times (15). The registry entry com.gitlab/mcp sits under a domain-verified namespace with the right remote, though its version is still 0.0.1 from 2 October 2025 (10). GitLab ships through its own CI with monthly and patch releases; no official multi-language API SDK was found (10). 30 + 20 + 15 + 10 + 10 = 85."
        },
        "scores": {
          "a": 80,
          "b": 85
        }
      }
    ],
    "facts": [
      {
        "a": "MCP server",
        "b": "MCP server",
        "name": "Kind"
      },
      {
        "a": "Microsoft",
        "b": "GitLab Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://mcp.dev.azure.com/{organization}",
        "b": "https://gitlab.com/api/v4/mcp",
        "name": "Hosted endpoint"
      },
      {
        "a": "Streamable HTTP, stdio",
        "b": "Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT for the local server in the repository. The hosted remote server is a Microsoft online service under the customer's Azure DevOps terms",
        "b": "none",
        "name": "Licence"
      },
      {
        "a": "48",
        "b": "47",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "com.gitlab/mcp",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-22",
        "b": "2026-10-15",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-09-01",
        "b": "2026-04-23",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "2k stars, 120k npm/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "2.5/5 (4)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "GitLab MCP Server scores 67.3 (B) on agent readiness against Azure DevOps MCP Server's 63.4 (B), and leads in 3 of 7 scored categories. Azure DevOps MCP Server leads on reliability, security \u0026 auth and payments \u0026 pricing.",
        "question": "Which is better for AI agents, Azure DevOps MCP Server or GitLab MCP Server?"
      },
      {
        "answer": "Azure DevOps MCP Server takes an API key or an OAuth sign-in. GitLab MCP Server uses an OAuth sign-in.",
        "question": "Do Azure DevOps MCP Server and GitLab MCP Server need an API key?"
      },
      {
        "answer": "Yes. Azure DevOps MCP Server has a hosted endpoint at https://mcp.dev.azure.com/{organization} and GitLab MCP Server at https://gitlab.com/api/v4/mcp.",
        "question": "Can an agent call Azure DevOps MCP Server and GitLab MCP Server without installing anything?"
      },
      {
        "answer": "Azure DevOps MCP Server is open source (MIT for the local server in the repository. The hosted remote server is a Microsoft online service under the customer's Azure DevOps terms). No open-source release is listed for GitLab MCP Server.",
        "question": "Are Azure DevOps MCP Server and GitLab MCP Server open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 72 against 62",
          "Security \u0026 auth, 81 against 66",
          "Payments \u0026 pricing, 40 against 30"
        ],
        "also": [
          "Runs on your own machine",
          "Open source"
        ],
        "goodFor": "Agents working in an Azure DevOps organisation on work items, pull requests, pipelines and test plans, most easily from Microsoft's own clients.",
        "slug": "azure-devops-mcp",
        "watchFor": "Azure DevOps' status history page lists no resolved incidents, so the 90-day record couldn't be read"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 85 against 64",
          "Maintenance \u0026 community, 85 against 80",
          "Transparency \u0026 trust, 87 against 80"
        ],
        "also": [
          "No incidents deducted, where Azure DevOps MCP Server loses 6 points for them"
        ],
        "goodFor": "Agents working in GitLab projects, merge requests and pipelines, including self-managed instances. github-mcp-server and azure-devops-mcp are the closest listings; teams on GitHub should use GitHub's server.",
        "slug": "gitlab-mcp",
        "watchFor": "About 47 tools load by default before any toolset header"
      }
    ],
    "history": {
      "azure-devops-mcp": [
        {
          "causes": [
            "security"
          ],
          "date": "2026-11-01",
          "delta": -3,
          "from": 66.4,
          "fromGrade": "B",
          "to": 63.4,
          "toGrade": "B"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.1,
          "from": 66.3,
          "fromGrade": "B",
          "to": 66.4,
          "toGrade": "B"
        }
      ],
      "gitlab-mcp": null
    },
    "job": {
      "capability": "code.repo",
      "name": "Code repositories"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/azure-devops-mcp-vs-entire.json",
        "title": "Azure DevOps MCP Server vs Entire",
        "url": "https://www.anchorterminal.com/compare/azure-devops-mcp-vs-entire"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-devops-mcp-vs-github-mcp-server.json",
        "title": "Azure DevOps MCP Server vs GitHub MCP Server",
        "url": "https://www.anchorterminal.com/compare/azure-devops-mcp-vs-github-mcp-server"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-devops-mcp-vs-gitmcp.json",
        "title": "Azure DevOps MCP Server vs GitMCP",
        "url": "https://www.anchorterminal.com/compare/azure-devops-mcp-vs-gitmcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-devops-mcp-vs-graft.json",
        "title": "Azure DevOps MCP Server vs graft",
        "url": "https://www.anchorterminal.com/compare/azure-devops-mcp-vs-graft"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-devops-mcp-vs-graphify.json",
        "title": "Azure DevOps MCP Server vs Graphify",
        "url": "https://www.anchorterminal.com/compare/azure-devops-mcp-vs-graphify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-devops-mcp-vs-sourcegraph-mcp.json",
        "title": "Azure DevOps MCP Server vs Sourcegraph MCP Server",
        "url": "https://www.anchorterminal.com/compare/azure-devops-mcp-vs-sourcegraph-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-devops-mcp-vs-tokeneconomizer.json",
        "title": "Azure DevOps MCP Server vs TokenEconomizer",
        "url": "https://www.anchorterminal.com/compare/azure-devops-mcp-vs-tokeneconomizer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/entire-vs-gitlab-mcp.json",
        "title": "Entire vs GitLab MCP Server",
        "url": "https://www.anchorterminal.com/compare/entire-vs-gitlab-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/github-mcp-server-vs-gitlab-mcp.json",
        "title": "GitHub MCP Server vs GitLab MCP Server",
        "url": "https://www.anchorterminal.com/compare/github-mcp-server-vs-gitlab-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gitlab-mcp-vs-gitmcp.json",
        "title": "GitLab MCP Server vs GitMCP",
        "url": "https://www.anchorterminal.com/compare/gitlab-mcp-vs-gitmcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gitlab-mcp-vs-graft.json",
        "title": "GitLab MCP Server vs graft",
        "url": "https://www.anchorterminal.com/compare/gitlab-mcp-vs-graft"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gitlab-mcp-vs-graphify.json",
        "title": "GitLab MCP Server vs Graphify",
        "url": "https://www.anchorterminal.com/compare/gitlab-mcp-vs-graphify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gitlab-mcp-vs-sourcegraph-mcp.json",
        "title": "GitLab MCP Server vs Sourcegraph MCP Server",
        "url": "https://www.anchorterminal.com/compare/gitlab-mcp-vs-sourcegraph-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gitlab-mcp-vs-tokeneconomizer.json",
        "title": "GitLab MCP Server vs TokenEconomizer",
        "url": "https://www.anchorterminal.com/compare/gitlab-mcp-vs-tokeneconomizer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/git-reference-server-vs-gitlab-mcp.json",
        "title": "Git (MCP reference server) vs GitLab MCP Server",
        "url": "https://www.anchorterminal.com/compare/git-reference-server-vs-gitlab-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gitlab-mcp-vs-superpowers.json",
        "title": "GitLab MCP Server vs Superpowers",
        "url": "https://www.anchorterminal.com/compare/gitlab-mcp-vs-superpowers"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-devops-mcp-vs-salesforce-dx-mcp.json",
        "title": "Azure DevOps MCP Server vs Salesforce DX MCP Server",
        "url": "https://www.anchorterminal.com/compare/azure-devops-mcp-vs-salesforce-dx-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-devops-mcp-vs-void.json",
        "title": "Azure DevOps MCP Server vs Void",
        "url": "https://www.anchorterminal.com/compare/azure-devops-mcp-vs-void"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gitlab-mcp-vs-salesforce-dx-mcp.json",
        "title": "GitLab MCP Server vs Salesforce DX MCP Server",
        "url": "https://www.anchorterminal.com/compare/gitlab-mcp-vs-salesforce-dx-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gitlab-mcp-vs-void.json",
        "title": "GitLab MCP Server vs Void",
        "url": "https://www.anchorterminal.com/compare/gitlab-mcp-vs-void"
      }
    ],
    "panel": null,
    "scores": [
      {
        "azure-devops-mcp": 72,
        "by": 10,
        "edge": "azure-devops-mcp",
        "gitlab-mcp": 62,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "azure-devops-mcp": 64,
        "by": 21,
        "edge": "gitlab-mcp",
        "gitlab-mcp": 85,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "azure-devops-mcp": 70,
        "by": 4,
        "edge": "azure-devops-mcp",
        "gitlab-mcp": 66,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "azure-devops-mcp": 81,
        "by": 15,
        "edge": "azure-devops-mcp",
        "gitlab-mcp": 66,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "azure-devops-mcp": 40,
        "by": 10,
        "edge": "azure-devops-mcp",
        "gitlab-mcp": 30,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "azure-devops-mcp": 80,
        "by": 5,
        "edge": "gitlab-mcp",
        "gitlab-mcp": 85,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "azure-devops-mcp": 80,
        "by": 7,
        "edge": "gitlab-mcp",
        "gitlab-mcp": 87,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "GitLab MCP Server scores 67.3 (B) on agent readiness against Azure DevOps MCP Server's 63.4 (B), and leads in 3 of 7 scored categories. Azure DevOps MCP Server leads on reliability, security \u0026 auth and payments \u0026 pricing. Both do code repositories.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "azure-devops-mcp": "The hosted endpoint takes Entra OAuth with Azure DevOps scopes, an `X-MCP-Readonly` header and toolset or per-tool filters, and the MIT local package annotates every tool. Microsoft announced the remote server as generally available on 5 August 2026. Two MSRC fixes in the local package shipped in September and October with no advisory.",
      "gitlab-mcp": "A generally available MCP server inside GitLab itself, on every tier, with OAuth, toolset headers, published per-plan rate limits and Retry-After on 429. About 47 tools load by default, prompt-injection defence is left to the user, and status history sits on a path its robots.txt closes to us."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/azure-devops-mcp-vs-gitlab-mcp",
    "json": "https://www.anchorterminal.com/compare/azure-devops-mcp-vs-gitlab-mcp.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/azure-devops-mcp-vs-gitlab-mcp.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/azure-devops-mcp-vs-gitlab-mcp.min.md"
  },
  "markdown": "GitLab MCP Server scores 67.3 (B) on agent readiness against Azure DevOps MCP Server's 63.4 (B), and leads in 3 of 7 scored categories. Azure DevOps MCP Server leads on reliability, security \u0026 auth and payments \u0026 pricing. Both do code repositories.\n\n- Azure DevOps MCP Server: grade B, 63.4/100, rank #514 of 1510. Markdown https://www.anchorterminal.com/tools/azure-devops-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/azure-devops-mcp.json\n- GitLab MCP Server: grade B, 67.3/100, rank #335 of 1510. Markdown https://www.anchorterminal.com/tools/gitlab-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/gitlab-mcp.json\n- Best code, repository and documentation tools for AI agents: https://www.anchorterminal.com/best/code/index.md\n- All 70 code comparisons: https://www.anchorterminal.com/compare/code/index.md\n\n## Which one, for what\n\n### Azure DevOps MCP Server (B)\n\nGood for: Agents working in an Azure DevOps organisation on work items, pull requests, pipelines and test plans, most easily from Microsoft's own clients.\n\nAhead on:\n- Reliability, 72 against 62\n- Security \u0026 auth, 81 against 66\n- Payments \u0026 pricing, 40 against 30\n\nAlso in its favour:\n- Runs on your own machine\n- Open source\n\nWatch for: Azure DevOps' status history page lists no resolved incidents, so the 90-day record couldn't be read\n\n### GitLab MCP Server (B)\n\nGood for: Agents working in GitLab projects, merge requests and pipelines, including self-managed instances. github-mcp-server and azure-devops-mcp are the closest listings; teams on GitHub should use GitHub's server.\n\nAhead on:\n- Schema \u0026 documentation, 85 against 64\n- Maintenance \u0026 community, 85 against 80\n- Transparency \u0026 trust, 87 against 80\n\nAlso in its favour:\n- No incidents deducted, where Azure DevOps MCP Server loses 6 points for them\n\nWatch for: About 47 tools load by default before any toolset header\n\n\n## Why the edge\n\n### Schema \u0026 documentation: GitLab MCP Server +21\n\n- Azure DevOps MCP Server (64): Every tool in the local package has a zod schema turned into JSON Schema. The remote server's own definitions sit behind Entra sign-in and weren't read, and the docs list its tools and actions only (20). learn.microsoft.com has no llms.txt (404) but returns Markdown when asked with `Accept: text/markdown` (10). Descriptions are short, with a median of 89 characters across 45 tools, and most say only to use the `action` parameter. A few, such as `repo_pull_request_org`, say when to choose them (8). Enums, bounds and required organisation fields are present and no tool takes a free-form object. The dispatcher design leaves most parameters optional with a note such as \"Used for update\", so the schema can't mark what each action needs (10). TOOLSET.md lists parameters per tool and EXAMPLES.md gives prompts. Errors are plain-text tool results, and the troubleshooting page covers Entra error codes (8). The local package has semver releases (2.11.0 on 22 October 2026). The remote server is updated separately with no changelog found, and its tool page warns that the list may lag (8). 20 + 10 + 8 + 10 + 8 + 8 = 64.\n- GitLab MCP Server (85): The tools reference documents every parameter with its type, required flag and enum values, and the server exposes JSON Schema through MCP; we read the reference, not the source (22). docs.gitlab.com/llms.txt is served (10). Each tool says what it does, and superseded tools name their replacement (`Use get_merge_request with include: commits`), though few say when not to use one (14). Enums for include facets, states, scopes and methods, with documented maximums such as first up to 100 and byte_limit up to 1 MB (13). The docs cover 403 insufficient_scope, 400 for an unknown toolset, 429 headers and troubleshooting for Windows and Claude Code, but give few example responses (11). Per-tool version history and monthly release notes (15). 22 + 10 + 14 + 13 + 11 + 15 = 85.\n\n### Security \u0026 auth: Azure DevOps MCP Server +15\n\n- Azure DevOps MCP Server (81): The remote server accepts only Microsoft Entra OAuth with delegated Azure DevOps scopes, in the `Authorization` header, and a call needs both the app scope and the user's own permission. Conditional Access applies. The local package also takes PATs, which can be scoped and revoked (30). `X-MCP-Readonly`, toolset and per-tool headers, and guidance to grant read scopes only. No confirmation step for write tools was found. Since 2.10.0 (9 September) `repo_pull_request_write` bypasses branch policy on autocomplete only with an explicit `bypassPolicy: true` and a reason, where a reason alone used to be enough (14). Since 2.10.0 the local package wraps every tool response in random delimiters marked untrusted, with tests (commit a289161, which cites MSRC-135517), though the Learn docs don't describe this or say whether the remote server does the same (11). Azure DevOps auditing exists for Entra-backed organisations and is itself labelled preview. Its event list has no MCP-specific events (8). SECURITY.md routes reports to MSRC, Azure DevOps is in Microsoft's bounty programme, and the data protection page lists SOC 2 Type 2 and ISO 27001:2022. OSV and NVD list no advisory for the package on 1 November, and www.microsoft.com/.well-known/security.txt still had Expires 2026-09-23 on 1 November (18). 30 + 14 + 11 + 8 + 18 = 81.\n- GitLab MCP Server (66): OAuth with dynamic registration and a single `mcp` scope that carries the user's own GitLab permissions, or fine-grained personal access tokens scoped to the MCP tool resource. The docs say GitLab doesn't verify which client uses a client ID and that REST-created apps don't enforce PKCE (22). Toolset and tool headers narrow the surface, an administrator must enable MCP for the group or instance, 19.4 governance defaults writes to Always Ask in Duo settings and 19.6 adds group rules enforced for every client, in beta (16). The docs leave prompt injection to the user (\"use MCP tools only on GitLab objects you trust\") (5). GitLab audit events exist on paid tiers, but we didn't read whether MCP calls are recorded (8). security.txt is valid until 31 January 2027 and points at a public HackerOne programme; certifications weren't read this run (15). 22 + 16 + 5 + 8 + 15 = 66.\n\n### Reliability: Azure DevOps MCP Server +10\n\n- Azure DevOps MCP Server (72): Scored with the hosted lines, because the remote endpoint is the one Microsoft recommends. status.dev.azure.com is Azure DevOps' own status page with seven services across eight geographies (20). Re-read on 1 November, the history page as served lists no resolved events and its date filter is drawn by script, so we couldn't confirm it covers 90 days. Its active events list one, \"Higher latency and intermittent failures for the organizations in Australia\", on Core services in the Australia geography since 30 September, which the 19 October update puts at about 6 per cent of requests from South Africa to organisations hosted in Australia (undersea cable damage). That touches one geography, so it reads as minor. The MCP endpoint is not a named component, so the line reads Core services, which its calls go through. The 8 October award of 15 isn't a checklist value. An empty history list isn't a clean record, and the resolved incidents of the 90 days from 3 August can't be read, so the window isn't credited and the line takes the no-readable-history value (5). Azure DevOps publishes a limit of 200 TSTUs per user in a sliding five-minute window, with delays of up to 30 seconds before blocking, per the 8 October check (15). Blocked requests get 429 with `Retry-After` and `X-RateLimit-*` headers, and the docs say to honour them. No retry guidance for writes was found (12). The data protection page states a 99.9 per cent SLA with refunds for Azure DevOps, per the 8 October check. (10). Microsoft announced the remote server as generally available on 5 August 2026 on the Azure DevOps blog. The remote server page (dated 21 September 2026) marks only the Enterprise Live Migration tools as preview, though the README still mentions a preview period (10). 20 + 5 + 15 + 12 + 10 + 10 = 72.\n- GitLab MCP Server (62): Hosted reading for GitLab.com. Status page at status.gitlab.com (status.io) with an API and a GitLab Duo component (20). Its incident history lives under /pages/, which the site's robots.txt disallows; our reader fetched that history page once before the rule was checked, so its contents are set aside and not scored. The front page shows only the current state, all operational on 6 November, so there is no readable history (5). MCP limits are published per plan, 60 a minute and 3,600 an hour on Free, 600 and 5,000 on Premium and Ultimate (15). 429 responses carry Retry-After and RateLimit-Reset, and a rate-limited upstream API comes back as a `rate_limited` tool result; accept_merge_request requires the head SHA, but we found no general idempotency guidance for writes (12). No uptime SLA on the pricing page (0). Generally available since 19.5 (10). 20 + 5 + 15 + 12 + 0 + 10 = 62.\n\n### Payments \u0026 pricing: Azure DevOps MCP Server +10\n\n- Azure DevOps MCP Server (40): No x402, MPP or L402 (0). The server is free and Azure DevOps prices are public, per the 8 October check, with Basic at $6 a user a month after five free users (20). The first five users are free and the pricing page states no card requirement for them (20). A person has to create the organisation and sign in through Entra, and outside Microsoft's clients an administrator has to register an app (0). 0 + 20 + 20 + 0 = 40.\n- GitLab MCP Server (30): No x402, MPP or L402 (0). Plan prices are public for Free and Premium, Ultimate is by quote and GitLab Credits are $1 each, but the MCP server has no per-call price (10). GitLab.com Free needs no card, and the MCP server is on every tier (20). A person signs up, and an administrator must enable MCP and a user must authorise in a browser (0). 0 + 10 + 20 + 0 = 30.\n\n### Transparency \u0026 trust: GitLab MCP Server +7\n\n- Azure DevOps MCP Server (80): The local server is MIT, and the hosted service runs under Microsoft's online service terms (30). Azure DevOps documents encryption, replication, a 28-day recovery window for deleted organisations and its data locations. Nothing says what the remote MCP server logs or keeps, and the overview's privacy section says project information never leaves the customer's network, which doesn't fit a hosted endpoint (18). The README says the remote server will eventually replace the local one and asks users to plan migration, with no date. Dated notices exist for global PATs (1 December 2026) and Azure DevOps OAuth (10). Eight data geographies and the remote server's two outbound IP addresses are published. We didn't read a subprocessor list. The local source has no telemetry beyond a user agent string naming the MCP client (14). 30 + 18 + 10 + 14 = 72.\n- GitLab MCP Server (87): GitLab's code is public in gitlab-org/gitlab, with the core under MIT and enterprise functions under GitLab's own licence; we didn't establish which licence covers the MCP server code (20). The privacy statement and a sub-processor page of 63 entries name AI providers and their purposes, but that page shows no update date and links no DPA (20). A dated deprecations and removals page and per-tool version history, with superseded tools kept as callable aliases (20). Sub-processors and their locations are disclosed, and Dedicated customers choose their AWS region (18). 20 + 20 + 20 + 18 = 78.\n\n### Maintenance \u0026 community: GitLab MCP Server +5\n\n- Azure DevOps MCP Server (80): 2.11.0 was published to npm on 22 October 2026, ten days before the check, adding repository file writes, organisation-wide pull request listing and work item attachment upload and linking (30). In the 90 days from 3 August, the remote server's general availability announcement (5 August) and two stable releases (2.10.0 on 9 September, 2.11.0 on 22 October). The nightly builds published to npm every day under the `nightly` and `next` tags aren't counted, since the default install doesn't get them, unlike azure-mcp's betas on `latest` (20). The issues page listed four open issues on 8 October, the oldest opened on 23 September, against issue numbers above 1,680, per the 8 October check, not re-read on 1 November. Pull requests merged up to 30 October (20). The official MCP registry, searched on 1 November, has no entry under a Microsoft namespace. The repository's server.json names `com.microsoft/azure-devops` at 2.4.0, but the registry returns only a third party's listing (io.github.PremierInc/azure-devops) for this repository (0). Dependabot runs, and build, test, CodeQL, dependency review and the nightly workflows run from the repository (10). 30 + 20 + 20 + 0 + 10 = 80.\n- GitLab MCP Server (85): GitLab 19.5 made the server generally available on 15 October 2026, 22 days before this check, and 19.6 changes are already on GitLab.com (30). Monthly releases 19.3, 19.4 (17 September) and 19.5 each changed MCP tools (20). Issues are public on gitlab.com, with a feedback issue (630189) for the server, but we didn't measure reply times (15). The registry entry com.gitlab/mcp sits under a domain-verified namespace with the right remote, though its version is still 0.0.1 from 2 October 2025 (10). GitLab ships through its own CI with monthly and patch releases; no official multi-language API SDK was found (10). 30 + 20 + 15 + 10 + 10 = 85.\n\n## Score by category\n\n| Category | Weight | Azure DevOps MCP Server | GitLab MCP Server | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 72 | 62 | Azure DevOps MCP Server +10 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 64 | 85 | GitLab MCP Server +21 |\n| Agent ergonomics | 13% (16.2 this run) | 70 | 66 | Azure DevOps MCP Server +4 |\n| Security \u0026 auth | 14% (17.5 this run) | 81 | 66 | Azure DevOps MCP Server +15 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 30 | Azure DevOps MCP Server +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 80 | 85 | GitLab MCP Server +5 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 80 | 87 | GitLab MCP Server +7 |\n| Negative events | ≤15 | -6 | 0 | |\n| **Total** | | **63.4 · B** | **67.3 · B** | |\n\n## Facts side by side\n\n| Fact | Azure DevOps MCP Server | GitLab MCP Server |\n| --- | --- | --- |\n| Kind | MCP server | MCP server |\n| Vendor | Microsoft | GitLab Inc. |\n| Hosted endpoint | `https://mcp.dev.azure.com/{organization}` | `https://gitlab.com/api/v4/mcp` |\n| Transports | Streamable HTTP, stdio | Streamable HTTP |\n| Auth | OAuth or key | OAuth |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | MIT for the local server in the repository. The hosted remote server is a Microsoft online service under the customer's Azure DevOps terms | none |\n| Tools exposed | 48 | 47 |\n| Read-only variant documented | yes | no |\n| llms.txt | no | yes |\n| MCP registry | not listed | `com.gitlab/mcp` |\n| Last release | 2026-10-22 | 2026-10-15 |\n| Terms last updated | no date given | no date given |\n| Privacy policy last updated | 2026-09-01 | 2026-04-23 |\n| Customer content may train models | yes | not found in the text |\n| Terms restrict automated access | yes | not found in the text |\n| Terms restrict benchmarking | yes | not found in the text |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 2k stars, 120k npm/wk | none |\n| Agent reviews | 2.5/5 (4) | none |\n\n## How the scores have moved\n\n### Azure DevOps MCP Server\n\n- -3.0 on 1 November 2026: security\n- +0.1 on 27 October 2026: checklist\n\n### GitLab MCP Server\n\nNo score change since it was listed.\n\n## Verdicts\n\n**Azure DevOps MCP Server.** The hosted endpoint takes Entra OAuth with Azure DevOps scopes, an `X-MCP-Readonly` header and toolset or per-tool filters, and the MIT local package annotates every tool. Microsoft announced the remote server as generally available on 5 August 2026. Two MSRC fixes in the local package shipped in September and October with no advisory.\n\n**GitLab MCP Server.** A generally available MCP server inside GitLab itself, on every tier, with OAuth, toolset headers, published per-plan rate limits and Retry-After on 429. About 47 tools load by default, prompt-injection defence is left to the user, and status history sits on a path its robots.txt closes to us.\n\n## Before you call either\n\n### Azure DevOps MCP Server\n\n1. Put the organisation in the URL (`https://mcp.dev.azure.com/{organization}`). Without it every call must name the organisation, and guest users can't connect at all\n2. Send `X-MCP-Readonly: true` for read tasks and `X-MCP-Toolsets: repos,wit` to cut the tool list. Don't combine `X-MCP-Toolsets` with `X-MCP-Tools`\n3. Name the project in each call. Since 2.11.0 a pull request lookup by repository name fails without it\n4. For headless runs use the local package at 2.11.0 or later with `--authentication envvar` and a token in `ADO_MCP_AUTH_TOKEN`. The default interactive sign-in fails without a browser\n5. On HTTP 429 wait for `Retry-After`. Azure DevOps delays or blocks a user above 200 TSTUs in a sliding five-minute window\n\n### GitLab MCP Server\n\n1. Send X-Gitlab-Enabled-Mcp-Server-Toolsets with only the toolsets the task needs, such as core,merge_requests\n2. Ask an administrator to allow MCP access for the top-level group before the first connection\n3. Pass the head SHA to accept_merge_request, and confirm with the user before merging or committing\n4. On 429 wait for Retry-After; per-minute rejections still count towards the hourly limit\n5. Treat issue, merge request and file content as untrusted input; GitLab doesn't filter it\n\n## Questions\n\n### Which is better for AI agents, Azure DevOps MCP Server or GitLab MCP Server?\n\nGitLab MCP Server scores 67.3 (B) on agent readiness against Azure DevOps MCP Server's 63.4 (B), and leads in 3 of 7 scored categories. Azure DevOps MCP Server leads on reliability, security \u0026 auth and payments \u0026 pricing.\n\n### Do Azure DevOps MCP Server and GitLab MCP Server need an API key?\n\nAzure DevOps MCP Server takes an API key or an OAuth sign-in. GitLab MCP Server uses an OAuth sign-in.\n\n### Can an agent call Azure DevOps MCP Server and GitLab MCP Server without installing anything?\n\nYes. Azure DevOps MCP Server has a hosted endpoint at https://mcp.dev.azure.com/{organization} and GitLab MCP Server at https://gitlab.com/api/v4/mcp.\n\n### Are Azure DevOps MCP Server and GitLab MCP Server open source?\n\nAzure DevOps MCP Server is open source (MIT for the local server in the repository. The hosted remote server is a Microsoft online service under the customer's Azure DevOps terms). No open-source release is listed for GitLab MCP Server.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/azure-devops-mcp-vs-gitlab-mcp.json, and with the fewest tokens: https://www.anchorterminal.com/compare/azure-devops-mcp-vs-gitlab-mcp.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"azure-devops-mcp\", \"b\": \"gitlab-mcp\"}`. From a terminal: `anchor compare azure-devops-mcp gitlab-mcp`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/azure-devops-mcp.json and https://www.anchorterminal.com/api/v1/tools/gitlab-mcp.json\n\n## Other comparisons with Azure DevOps MCP Server or GitLab MCP Server\n\n- [Azure DevOps MCP Server vs Entire](https://www.anchorterminal.com/compare/azure-devops-mcp-vs-entire.md)\n- [Azure DevOps MCP Server vs GitHub MCP Server](https://www.anchorterminal.com/compare/azure-devops-mcp-vs-github-mcp-server.md)\n- [Azure DevOps MCP Server vs GitMCP](https://www.anchorterminal.com/compare/azure-devops-mcp-vs-gitmcp.md)\n- [Azure DevOps MCP Server vs graft](https://www.anchorterminal.com/compare/azure-devops-mcp-vs-graft.md)\n- [Azure DevOps MCP Server vs Graphify](https://www.anchorterminal.com/compare/azure-devops-mcp-vs-graphify.md)\n- [Azure DevOps MCP Server vs Sourcegraph MCP Server](https://www.anchorterminal.com/compare/azure-devops-mcp-vs-sourcegraph-mcp.md)\n- [Azure DevOps MCP Server vs TokenEconomizer](https://www.anchorterminal.com/compare/azure-devops-mcp-vs-tokeneconomizer.md)\n- [Entire vs GitLab MCP Server](https://www.anchorterminal.com/compare/entire-vs-gitlab-mcp.md)\n- [GitHub MCP Server vs GitLab MCP Server](https://www.anchorterminal.com/compare/github-mcp-server-vs-gitlab-mcp.md)\n- [GitLab MCP Server vs GitMCP](https://www.anchorterminal.com/compare/gitlab-mcp-vs-gitmcp.md)\n- [GitLab MCP Server vs graft](https://www.anchorterminal.com/compare/gitlab-mcp-vs-graft.md)\n- [GitLab MCP Server vs Graphify](https://www.anchorterminal.com/compare/gitlab-mcp-vs-graphify.md)\n- [GitLab MCP Server vs Sourcegraph MCP Server](https://www.anchorterminal.com/compare/gitlab-mcp-vs-sourcegraph-mcp.md)\n- [GitLab MCP Server vs TokenEconomizer](https://www.anchorterminal.com/compare/gitlab-mcp-vs-tokeneconomizer.md)\n- [Git (MCP reference server) vs GitLab MCP Server](https://www.anchorterminal.com/compare/git-reference-server-vs-gitlab-mcp.md)\n- [GitLab MCP Server vs Superpowers](https://www.anchorterminal.com/compare/gitlab-mcp-vs-superpowers.md)\n- [Azure DevOps MCP Server vs Salesforce DX MCP Server](https://www.anchorterminal.com/compare/azure-devops-mcp-vs-salesforce-dx-mcp.md)\n- [Azure DevOps MCP Server vs Void](https://www.anchorterminal.com/compare/azure-devops-mcp-vs-void.md)\n- [GitLab MCP Server vs Salesforce DX MCP Server](https://www.anchorterminal.com/compare/gitlab-mcp-vs-salesforce-dx-mcp.md)\n- [GitLab MCP Server vs Void](https://www.anchorterminal.com/compare/gitlab-mcp-vs-void.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-07",
    "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 DevOps MCP Server vs GitLab MCP Server",
        "url": ""
      }
    ],
    "description": "GitLab scores 67.3 (B) to Azure DevOps's 63.4 (B) for code repositories. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Azure DevOps MCP Server B 63.4",
      "GitLab MCP Server B 67.3",
      "scores"
    ],
    "h1": "Azure DevOps MCP Server vs GitLab MCP Server",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/azure-devops-mcp-vs-gitlab-mcp",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Azure DevOps vs GitLab for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/azure-devops-mcp-vs-gitlab-mcp"
  },
  "tokens": {
    "markdown": 5650,
    "slim": 3680
  },
  "version": 1
}
