Repository navigation
Add "Best MCP Servers for Infrastructure and DevOps in 2026" listicle - #21210
workprentice[bot] wants to merge 9 commits into
Conversation
Ranks MCP servers as products across IaC, cloud control planes, Kubernetes/GitOps, CI/CD, observability, and secrets, evaluated on transport, auth model, read-only mode, and maturity, with the read/write mutation boundary as the lead evaluation axis and an operational hardening checklist for running one against production. Cross-links the canonical /what-is/mcp-for-infrastructure-as-code/ page both ways, and defers to it for MCP definition and threat model rather than restating either.
|
@claude #update-review |
Social Media ReviewNote Pulumi's accounts post this copy after the blog goes live — you don't need a social account of your own. Only a character-limit FAIL fails a check; everything else here is optional. content/blog/best-mcp-servers-infrastructure-devops/index.mdX — PASSLinkedIn — PASSBluesky — PASSNote: Updated for commit |
|
Your site preview for commit faa0799 is ready! 🎉 http://www-testing-pulumi-docs-origin-pr-21210-faa07999.s3-website.us-west-2.amazonaws.com Changed pages: |
Drops GKE, Cloudflare, Azure DevOps, and Sentry from the itemlist frontmatter since the post body never covers them (12 sections, 12 itemlist entries now), which also removes the one dead itemlist URL (learn.microsoft.com/azure/devops/mcp-server, a 404). Removes the orphaned Azure DevOps mention from the at-a-glance table and corrects the server count in the X and Bluesky social copy from '15+' to 12.
|
@claude #update-review Addressed both Outstanding findings in commit 11c8a39:
Re-verified via the isolated Hugo schema harness: all 12 ItemList entries resolve 200, FAQ has 7 clean questions, HowTo has 7 steps, lint and prettier both pass. |
There was a problem hiding this comment.
🧹 Optional style suggestions from the pre-merge review — apply or dismiss; none of them block.
Generated by Claude Code
|
🤖 Review updated on @pulumi-bot's request. |
- Terraform MCP server: there is no 'plan-only mode'. The real gate is the ENABLE_TF_OPERATIONS env var (unset/false by default), which the write toolset requires. Fixed the server card, comparison table row, hardening checklist step 4, and the FAQ mention (four places). - GitHub MCP server: the remote/hosted server went GA on 2025-09-04, not 'in public preview since June 2025' -- that was the preview stage GA superseded eleven months before this post's publish date. Fixed the server card and comparison table row. - AWS: aws-api-mcp-server is not superseded by 'narrower' servers -- AWS's own deprecation notice (entering end of development July 2026) points to the AWS MCP Server, a broader single server whose call_aws tool covers 15,000+ API operations (GA May 2026), which this post had omitted entirely. Named it and corrected the framing. Also updated the PR description's stale '16 servers' / 'ItemList (16 servers)' language to the correct count of 12, left over from the earlier itemlist/body-mismatch fix.
|
@claude #new-review |
The pre-merge review runs compose-review.py from the PR head, and this branch predates --surface v3, so fresh reviews errored. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_015EbMbem5iFw1cErRVNJXzH
|
@claude #new-review Generated by Claude Code |
|
@claude the last review run failed #new-review Generated by Claude Code |
There was a problem hiding this comment.
🔧 One-click fixes for findings that block merge — each matches a Do this block on the author card. Commit one and the card picks up the fix; you can still disagree on the card instead.
Generated by Claude Code
|
@claude the last #new-review never published (fixed in #22201) #new-review Generated by Claude Code |
There was a problem hiding this comment.
🔧 One-click fixes for findings that block merge — each matches a Do this block on the author card. Commit one and the card picks up the fix; you can still disagree on the card instead.
Generated by Claude Code
|
|
||
| social: | ||
| twitter: | | ||
| Every cloud vendor and half of DevOps shipped an MCP server this year. We ranked 12 on what matters for infrastructure: what they can mutate, and what stands in front of it. |
There was a problem hiding this comment.
F1 blocks merge — The body dates the AWS Knowledge, GitHub remote, and Flux launches to 2025, so "this year" (2026) is wrong for a post that ships in 2026. The LinkedIn copy already says "in about a year," which is accurate.
| Every cloud vendor and half of DevOps shipped an MCP server this year. We ranked 12 on what matters for infrastructure: what they can mutate, and what stands in front of it. | |
| Every cloud vendor and half of DevOps shipped an MCP server in the past year. We ranked 12 on what matters for infrastructure: what they can mutate, and what stands in front of it. |
| | Docker MCP Gateway | Docker | Local plugin | Self-run | Depends on catalog | Depends on catalog | Shipping | | ||
| | Grafana MCP Server | Grafana Labs | Local | Self-run | Yes (query-focused) | No | Actively released; patch CVE-2026-19516 before exposing | | ||
| | Datadog MCP Server | Datadog | Local or hosted | Both | Yes (query-focused) | No | Shipping | | ||
| | PagerDuty MCP Server | PagerDuty | Local | Self-run | Mostly (check scopes) | Depends on scopes | Actively maintained | |
There was a problem hiding this comment.
F2 blocks merge — The cited repo's README says: "This repository is deprecated and now read-only. Development has moved to PagerDuty's hosted Remote MCP Server." That contradicts both "Local / Self-run" and "Actively maintained." The…
| | PagerDuty MCP Server | PagerDuty | Local | Self-run | Mostly (check scopes) | Depends on scopes | Actively maintained | | |
| | PagerDuty MCP Server | PagerDuty | Remote (hosted) | Hosted | Yes (read-only by default) | Only if write tools enabled | Actively maintained (local repo deprecated) | |
| ## How to run an MCP server safely against production infrastructure | ||
|
|
||
| 1. **Scope credentials narrowly.** Give the server the smallest token, role, or ServiceAccount that does the job, not the identity you use for everyday admin work. | ||
| 2. **Prefer read-only where the task allows it.** Several servers on this list, `containers/kubernetes-mcp-server` and GitHub's server among them, ship a read-only mode as a launch flag. Default to it and only widen scope when a specific task needs it. |
There was a problem hiding this comment.
F3 blocks merge — kubernetes-mcp-server still has a read-only mode, but you turn it on with read_only = true in its TOML configuration, not with a launch flag.
| 2. **Prefer read-only where the task allows it.** Several servers on this list, `containers/kubernetes-mcp-server` and GitHub's server among them, ship a read-only mode as a launch flag. Default to it and only widen scope when a specific task needs it. | |
| 2. **Prefer read-only where the task allows it.** Several servers on this list, `containers/kubernetes-mcp-server` and GitHub's server among them, ship a read-only mode you can turn on in configuration. Default to it and only widen scope when a specific task needs it. |
|
|
||
| 1. **Scope credentials narrowly.** Give the server the smallest token, role, or ServiceAccount that does the job, not the identity you use for everyday admin work. | ||
| 2. **Prefer read-only where the task allows it.** Several servers on this list, `containers/kubernetes-mcp-server` and GitHub's server among them, ship a read-only mode as a launch flag. Default to it and only widen scope when a specific task needs it. | ||
| 3. **Put a gateway or proxy in front of anything network-reachable.** Docker's MCP Gateway pattern, or a comparable internal proxy, centralizes secrets handling and gives you one place to enforce header-based routing and rate limits instead of trusting every client's local configuration. |
There was a problem hiding this comment.
F4 blocks merge — Docker's docs support the claim about centralized secrets and a single endpoint. They don't document header-based routing or rate limits for the gateway.
| 3. **Put a gateway or proxy in front of anything network-reachable.** Docker's MCP Gateway pattern, or a comparable internal proxy, centralizes secrets handling and gives you one place to enforce header-based routing and rate limits instead of trusting every client's local configuration. | |
| 3. **Put a gateway or proxy in front of anything network-reachable.** Docker's MCP Gateway pattern, or a comparable internal proxy, centralizes secrets handling and gives you one place to enforce access policy instead of trusting every client's local configuration. |
|
|
||
| ### Do I need a separate MCP server for every tool in my stack? | ||
|
|
||
| Usually yes, at least one per major system (your IaC tool, your cluster, your observability stack), though a gateway like Docker's MCP Gateway can front several of them behind one endpoint for secrets and routing purposes. There's no single MCP server that spans infrastructure as code, Kubernetes, and observability today. |
There was a problem hiding this comment.
F5 blocks merge — The verifier found sources that contradict the absolute claim that no server spans all three areas. An absolute "no single" claim also goes stale as soon as one ships.
| Usually yes, at least one per major system (your IaC tool, your cluster, your observability stack), though a gateway like Docker's MCP Gateway can front several of them behind one endpoint for secrets and routing purposes. There's no single MCP server that spans infrastructure as code, Kubernetes, and observability today. | |
| Usually yes, at least one per major system (your IaC tool, your cluster, your observability stack), though a gateway like Docker's MCP Gateway can front several of them behind one endpoint for secrets and routing purposes. |
Reviewer's guide v1 — not for the authorTip Check the PR author: nothing here is yours. Your to-do list is the "Author action guide" comment. Review requested from: @pulumi/docs-blog-review, @pulumi/docs-marketing-review — an approval from anyone with write access satisfies the merge gate. Waiting on the author — 8 items block merge from the author's own card. Before you approve, check the final diff answers them:
Note What this PR changes:
The main risk to readers is a stale vendor fact (a deprecated repo, a renamed setting, an unsupported capability) that leads them to pick or configure a server wrongly. This run covered claim extraction and verification, a frontmatter and link sweep, editorial-balance stats, and a full read for consistency between the social copy and the body. Review confidence:
|
| ID | Where | Finding |
|---|---|---|
| F9 | content/blog/best-mcp-servers-infrastructure-devops/index.md L104 |
"Any MCP-compatible host (Cursor, Claude Code, Claude Desktop, and others) can connect to Pulumi's MCP server alongside other MCP servers in the same session." — verdict: framing-drift; framing: overclaim: the claim widens "Any other AI assistant that supports the Model Context Protocol with OAuth" to "Any MCP-compatible host". The "alongside other… The sentence is actually in the FAQ at file L267. Decide whether "Any MCP-compatible host" needs the source's qualifier, for example "Any MCP host that supports OAuth (for the remote server)". |
| F10 | content/blog/best-mcp-servers-infrastructure-devops/index.md L128 |
"The Azure MCP Server uses Azure identity and RBAC for auth, and spans dozens of Azure services (Key Vault, Cosmos DB, Monitor, RBAC) with both read and write…" — verdict: framing-drift; framing: overclaim: the docs say the server has some write tools (that's what the read-only flag removes). The claim widens this to "both read and write operations… Decide whether "with both read and write operations available per service" should become "with some write tools, which the server's read-only option removes". |
| F11 | content/blog/best-mcp-servers-infrastructure-devops/index.md L263 |
"Pulumi Neo is an AI agent that plans and applies infrastructure changes through MCP servers." — verdict: framing-drift; framing: overclaim: the source says Neo uses external MCP servers as tools for issue-tracker, observability and runbook context; the claim says Neo 'plans and applies… The actual line reads "the agents that plan and apply changes through them, Pulumi Neo and others". Decide whether that framing of Neo is acceptable, or whether it should say "agents that use them as tools". |
Not your area? Hand it to another member of @pulumi/docs-blog-review, @pulumi/docs-marketing-review rather than approving on faith.
Editorial stances introduced by this PR
Superlatives and comparisons the diff adds. Framing isn't fact-checkable, so confirm each is a stance the docs should take.
- L1-5
content/blog/best-mcp-servers-infrastructure-devops/index.md— "The post presents these as 'the best MCP servers for infrastructure and DevOps in 2026'." — positioning (found by llm-holistic) - L110
content/blog/best-mcp-servers-infrastructure-devops/index.md— "Maintainer: HashiCorp. Transport: stdio (default) or Streamable HTTP. Auth: token passthrough supported for centralized HTTP deployments; no…" — positioning (found by regex) - L114
content/blog/best-mcp-servers-infrastructure-devops/index.md— "The Terraform Registry currency benefit of the Terraform MCP server does not carry over to OpenTofu, which maintains its own separate registry." — comparison (found by llm-atomic+llm-holistic) - L138
content/blog/best-mcp-servers-infrastructure-devops/index.md— "Maintainer: thecontainersGitHub organization (Red Hat-affiliated). Transport: stdio and Streamable HTTP. Auth: whatever kubeconfig or…" — positioning (found by regex) - L146
content/blog/best-mcp-servers-infrastructure-devops/index.md— "Maintainer: ControlPlane, via the Flux Operator product (built on the CNCF Flux project). Transport: stdio. Auth: cluster credentials the…" — positioning (found by regex) - L190
content/blog/best-mcp-servers-infrastructure-devops/index.md— "Maintainer: PagerDuty (official). Transport: local server. Auth: PagerDuty API token. Read-only mode: incident and on-call query tools are…" — positioning (found by regex) - L223
content/blog/best-mcp-servers-infrastructure-devops/index.md— "1. Scope credentials narrowly. Give the server the smallest token, role, or ServiceAccount that does the job, not the identity you use for everyday admin…" — positioning (found by regex) - L62
content/blog/best-mcp-servers-infrastructure-devops/index.md— "The post recommends Pulumi/Terraform servers for IaC,containers/kubernetes-mcp-serverfor Kubernetes, Grafana and PagerDuty for on-call, and read-only…" — positioning (found by llm-holistic) - L96
content/blog/best-mcp-servers-infrastructure-devops/index.md— "A server that only answers questions carries a fundamentally different risk profile than one that can runterraform applyor delete a Kubernetes namespace." — comparison (found by llm-atomic+llm-holistic)
✅ What you can rubber-stamp
- Facts: 72 factual claims checked — 61 verified clean, 8 open on the author's card ("Waiting on the author" above), 3 flagged in the
⚠️ list. - Mechanics: frontmatter sweep ran; 8 added internal link(s) resolve.
- Style: 4 advisory suggestions left with the author; never blocking.
Pre-existing issues in touched files: 0 — details on the evidence page.
Full evidence: verification trail, investigation log, review history.
Review v1 · updated 2026-10-08T22:15:19Z · head commit 2bb2017
For the reviewer: something look wrong? Comment /update-review <your point> and the review re-checks with your input.
Author action guide v1 — 8 items block merge⛔ 8 item(s) block merge — fix and push, or reply Important You = the PR author. Answer every item below before this PR can merge. To answer: push a fix, or reply This PR adds a 2026 listicle ranking 12 MCP servers for infrastructure and DevOps work. The review fact-checked each server's transport, auth, read-only, and maturity claims against vendor docs and repos, and checked the social copy against the body. 🚨 Fix or disagree
F1 · Do this
F2 · Do this
F3 · Do this
F4 · Do this
F5 · Do this
❓ Questions for you
F6 · Do this
F7 · Do this
F8 · Do this
Editing in the browser? ✏️ opens the file in GitHub's editor; Ctrl+F for the quoted line. Style suggestionsOptional polish from pattern-based linting and the review's own read; never blocking. content/blog/best-mcp-servers-infrastructure-devops/index.md
Full evidence: verification trail, investigation log, review history. Review v1 · updated 2026-10-08T22:15:19Z · head commit 2bb2017 How to answer — fix it, disagree with it, or accept it as-is (click for the exact replies)Every 🚨 and ❓ item above needs one of these before merge:
Full mechanics: CONTRIBUTING.md §AI-assisted contributions. Please don't edit or delete this comment; it's the review's record. |
CamSoper
left a comment
There was a problem hiding this comment.
content/blog/best-mcp-servers-infrastructure-devops/index.mdL47: "Every cloud vendor and half of DevOps shipped an MCP server in 2026 (this year)." — verdict: mismatch. The social copy says "this year," but the post's body…content/blog/best-mcp-servers-infrastructure-devops/index.mdL219: "| PagerDuty MCP Server | PagerDuty | Local | Self-run | Mostly (check scopes) | Depends…" — verdict: contradicted. The repo the post cites is deprecated: de…content/blog/best-mcp-servers-infrastructure-devops/index.mdL224: "containers/kubernetes-mcp-serverand GitHub's MCP server both ship a read-only mode…" — verdict: contradicted. kubernetes-mcp-server turns on read-only mo…content/blog/best-mcp-servers-infrastructure-devops/index.mdL225: "Docker's MCP Gateway can front several MCP servers behind one endpoint for secrets and…" — verdict: contradicted. Docker's docs don't support "header-based…content/blog/best-mcp-servers-infrastructure-devops/index.mdL251: "There is no single MCP server today that spans infrastructure as code, Kubernetes, and…" — verdict: contradicted. "No single MCP server" is an absolute clai…content/blog/best-mcp-servers-infrastructure-devops/index.mdL20-43: "Itemlist URLs for each MCP server (e.g., developer.hashicorp.com/terraform/mcp-server…" — verdict: unverifiable. TheitemlistURLs weren't checked one by…content/blog/best-mcp-servers-infrastructure-devops/index.mdL81: "The authors queried the official MCP Registry on 2026-08-28 and found 139 actively…" — verdict: unverifiable. Readers can't reproduce the count of 139 becau…content/blog/best-mcp-servers-infrastructure-devops/index.mdL208-209: "Pulumi MCP Server comparison row: hosted and self-run, stdio + Streamable HTTP…" — verdict: unverifiable. Confirm the Pulumi row's cells match current produ…content/blog/best-mcp-servers-infrastructure-devops/index.mdL104: *"Any MCP-compatible host (Cursor, Claude Code, Claude Desktop, and others) can connect to Pulumi's MCP server alongside other MCP servers in the same session.…content/blog/best-mcp-servers-infrastructure-devops/index.mdL128: *"The Azure MCP Server uses Azure identity and RBAC for auth, and spans dozens of Azure services (Key Vault, Cosmos DB, Monitor, RBAC) with both read and write…content/blog/best-mcp-servers-infrastructure-devops/index.mdL263: "Pulumi Neo is an AI agent that plans and applies infrastructure changes through MCP servers." — verdict: framing-drift; framing: overclaim: the source says…
Answer each with /update-review F<n>: <reason>, or push the fix.
Resolves the conflict in content/what-is/mcp-for-infrastructure-as-code.md: keeps this PR's new "Best MCP Servers" bullet and master's new /docs/ai/guides/set-up-mcp-server/ path from #22261. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01NPURfyqXfEzFYxMVhqSMfe
/docs/ai/mcp-server/ and /docs/ai/neo/integrations/mcp/ moved in #22261 and now only resolve through aliases. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01NPURfyqXfEzFYxMVhqSMfe
|
Closing this one out: it's been open since August, the review has gone stale with 8 blocking findings still open, and the post date is long past. Feel free to reopen (or open a fresh PR) if you want to pick it back up. Generated by Claude Code |
What this adds
A new blog post, "Best MCP Servers for Infrastructure and DevOps in 2026" (will publish at
/blog/best-mcp-servers-infrastructure-devops/), ranking MCP servers as products across the toolchain jobs a platform team actually evaluates: infrastructure as code, cloud provider control planes, Kubernetes and GitOps, CI/CD and source control, observability and incident response, and secrets. Twelve servers are compared on a consistent fact shape (maintainer, transport, hosted-or-self-run, auth model, read-only mode availability, and maturity), with the read/write mutation boundary as the lead evaluation axis, plus a seven-step hardening checklist for running an MCP server against production.Also adds one reciprocal "Learn more" link from
/what-is/mcp-for-infrastructure-as-code/to the new post.Why this doesn't duplicate existing MCP content
Three live assets already own adjacent ground on this topic. This post is scoped explicitly around them, and each deferral is spelled out below with URLs so the overlap can be checked directly:
/what-is/mcp-for-infrastructure-as-code/owns the "what is MCP" definition and the MCP security threat model (tool poisoning, the MCPoison CVE, NSA guidance). This post gives MCP two sentences up top and links that page as the canonical explainer within the first ~150 words; its security section links the same page for the threat model and spends its own space on operational controls (credential scoping, gateways, preview gates, version pinning, egress, audit logging) instead of retelling the threat taxonomy./docs/ai/mcp-server/is Pulumi's own MCP server reference. This post's Pulumi entry is four sentences and links there for the tool list rather than re-enumerating it.Best AI Agents for Infrastructure Management in 2026, still open/unmerged as of this PR) treats MCP servers only as an access layer inside an agent-comparison post, and already covers HashiCorp's Terraform and Vault MCP servers in that context. This post is the deeper, protocol-focused treatment the board card for it explicitly called out as a follow-up (agents vs. the access-layer protocol itself is the stated scope boundary), and one of its FAQ entries makes that boundary explicit. Because Add "Best AI Agents for Infrastructure Management in 2026" blog post #21039 is still unmerged, this PR does not link to it, to avoid a link to unpublished content; a board follow-up card will add the reciprocal link once Add "Best AI Agents for Infrastructure Management in 2026" blog post #21039 merges.Original data point
Queried the public MCP Registry API (
registry.modelcontextprotocol.io) on 2026-08-28 for infrastructure/DevOps-relevant server counts, as a citable, dated, methodologically-described stat (no internal Pulumi data of any kind is used in this post).Verification
node ./scripts/lint/lint-markdown.jsand./scripts/prettier.sh --check: 0 errors on both touched files.master; the one anchor link (/what-is/mcp-for-infrastructure-as-code/#is-mcp-secure-enough-for-production-infrastructure) matches the target page's actual heading.@ids across BlogPosting/Article, FAQPage (7 clean questions, no table/list markup bleeding into answer text), HowTo (7-step hardening checklist), ItemList (12 servers), BreadcrumbList, WebPage, Organization, and WebSite.🧠 This PR was created by workprentice.