Skip to content

Add "Best MCP Servers for Infrastructure and DevOps in 2026" listicle - #21210

Closed
workprentice[bot] wants to merge 9 commits into
masterfrom
content/best-mcp-servers-infrastructure-devops
Closed

workprentice[bot] wants to merge 9 commits into
masterfrom
content/best-mcp-servers-infrastructure-devops

Conversation

@workprentice

@workprentice workprentice Bot commented Aug 28, 2026 •

Copy link
Copy Markdown
Contributor

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.
  • PR Add "Best AI Agents for Infrastructure Management in 2026" blog post #21039 (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.js and ./scripts/prettier.sh --check: 0 errors on both touched files.
  • All eight internal links resolve to files that exist on 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.
  • Verified JSON-LD via an isolated Hugo harness (verbatim schema partials + real data files, not the repo's asset pipeline): confirmed unique @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.
  • Scanned for the banned "isn't X, it's Y" contrastive construction; two instances found and rewritten during review (one in the opening summary, one in a per-server section).
  • No claim that Pulumi is cheaper than any competitor; the HashiCorp Terraform/Vault entries and the comparison table are factual and neutral.

🧠 This PR was created by workprentice.

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.
@github-actions github-actions Bot added the review:triaging Claude Triage is currently classifying the PR label Aug 28, 2026
@workprentice

workprentice Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor Author

@claude #update-review

@github-actions github-actions Bot added domain:docs PR touches technical docs domain:mixed PR touches more than one domain domain:blog PR touches blog posts or customer stories review:in-progress Claude review is currently running and removed review:triaging Claude Triage is currently classifying the PR labels Aug 28, 2026
@github-actions

github-actions Bot commented Aug 28, 2026 •

Copy link
Copy Markdown
Contributor

Social Media Review

Note

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.md

X — PASS

LinkedIn — PASS

Bluesky — PASS

Note: .social-check-output.txt contained only a social-card reachability warning and no post text, so this review reads the social: block in the post's frontmatter directly.

Updated for commit faa0799975de61b80464298e8a5d03ef5fc2cbcb (short: faa0799) at 2026-10-22 22:39 UTC.

@pulumi-bot

pulumi-bot commented Aug 28, 2026 •

Copy link
Copy Markdown
Collaborator

@github-actions github-actions Bot added review:outstanding-issues Claude review completed; outstanding has author-actionable findings and removed review:in-progress Claude review is currently running labels Aug 28, 2026
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.
@workprentice

workprentice Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor Author

@claude #update-review

Addressed both Outstanding findings in commit 11c8a39:

  • Dropped GKE, Cloudflare, Azure DevOps, and Sentry from itemlist frontmatter since the post body never covered them — itemlist and the body now both have exactly 12 entries/sections, one-to-one. This also removes the dead learn.microsoft.com/azure/devops/mcp-server URL.
  • Removed the orphaned Azure DevOps mention from the "At a glance" table's CI/CD row.
  • Corrected the X and Bluesky social copy from "15+" servers to the accurate count of 12.

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.

@github-actions github-actions Bot added review:stale New commits since last Claude review; refresh on next ready-transition or @claude mention review:in-progress Claude review is currently running and removed review:outstanding-issues Claude review completed; outstanding has author-actionable findings review:stale New commits since last Claude review; refresh on next ready-transition or @claude mention labels Aug 28, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Optional style suggestions from the pre-merge review — apply or dismiss; none of them block.


Generated by Claude Code

@github-actions

Copy link
Copy Markdown
Contributor

🤖 Review updated on @pulumi-bot's request.

@github-actions github-actions Bot added review:outstanding-issues Claude review completed; outstanding has author-actionable findings and removed review:in-progress Claude review is currently running labels Aug 28, 2026
- 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.
@CamSoper

CamSoper commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

@claude #new-review

@github-actions github-actions Bot deleted a comment from pulumi-bot Oct 6, 2026
@github-actions github-actions Bot added review:in-progress Claude review is currently running review:error Workflow failed before publishing a review; see Actions logs and removed review:no-blockers Claude review completed cleanly; outstanding is empty review:in-progress Claude review is currently running labels Oct 6, 2026
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

CamSoper commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

@claude #new-review


Generated by Claude Code

@github-actions github-actions Bot added review:in-progress Claude review is currently running and removed review:error Workflow failed before publishing a review; see Actions logs labels Oct 8, 2026
@pulumi-bot
pulumi-bot requested a review from a team October 8, 2026 01:09
@github-actions github-actions Bot added review:error Workflow failed before publishing a review; see Actions logs and removed review:in-progress Claude review is currently running labels Oct 8, 2026
@CamSoper

CamSoper commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

@claude the last review run failed #new-review


Generated by Claude Code

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 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

@CamSoper

CamSoper commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

@claude the last #new-review never published (fixed in #22201) #new-review


Generated by Claude Code

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
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 |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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…

Suggested change
| 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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
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.

@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Reviewer's guide v1 — not for the author

Tip

Check the ⚠️ items, then approve. Your approval covers only those; links, shortcodes, metadata, and verified claims were checked by machine (receipts on the evidence page). Code samples are read, not compiled.

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:

ID State Claim
F1 🚨 open "Every cloud vendor and half of DevOps shipped an MCP server in 2026 (this year)." — verdict: mismatch.…
F2 🚨 open "| PagerDuty MCP Server | PagerDuty | Local | Self-run | Mostly (check scopes) | Depends…" — verdict…
F3 🚨 open "containers/kubernetes-mcp-server and GitHub's MCP server both ship a read-only mode…" — verdict…
F4 🚨 open "Docker's MCP Gateway can front several MCP servers behind one endpoint for secrets and…" — verdict…
F5 🚨 open "There is no single MCP server today that spans infrastructure as code, Kubernetes, and…" — verdict…
F6 ❓ open "Itemlist URLs for each MCP server (e.g., developer.hashicorp.com/terraform/mcp-server…" — verdict…
F7 ❓ open "The authors queried the official MCP Registry on 2026-08-28 and found 139 actively…" — verdict…
F8 ❓ open "Pulumi MCP Server comparison row: hosted and self-run, stdio + Streamable HTTP…" — verdict…

Note

What this PR changes:

  • New blog post: a 2026 buyer's guide comparing 12 MCP servers for infrastructure and DevOps work
  • New feature image for the post
  • what-is/mcp-for-infrastructure-as-code gains one line that links to the new post

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:

Dimension Level Notes
mechanics HIGH
facts MEDIUM Not yours to check: 72 claims were verified by machine. The open vendor-fact errors are on the author's card → see F2–F5.
coherence MEDIUM The social copy disagrees with the body's dates → see F1
editorial balance MEDIUM Pulumi is listed first and gets the most favorable framing in a vendor-neutral listicle. Check that the tone stays neutral → see F11

⚠️ Check these before approving

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: the containers GitHub 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-server for 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 run terraform apply or 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.

@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Author action guide v1 — 8 items block merge

⛔ 8 item(s) block merge — fix and push, or reply /update-review <your reasoning>. Details: the Sentinel status.

Important

You = the PR author. Answer every item below before this PR can merge.

To answer: push a fix, or reply /update-review F1: <what you fixed, why it's wrong, or "accepting as-is — why">. A reply without /update-review at the start of a line doesn't count. Examples: How to answer at the bottom.

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

ID Where Finding
F1 content/blog/best-mcp-servers-infrastructure-devops/index.md L47 · ✏️ edit "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 dates several of these launches to 2025. Social copy posts automatically when this merges.
F2 content/blog/best-mcp-servers-infrastructure-devops/index.md L219 · ✏️ edit "| PagerDuty MCP Server | PagerDuty | Local | Self-run | Mostly (check scopes) | Depends…" — verdict: contradicted. The repo the post cites is deprecated: development moved to PagerDuty's hosted Remote MCP Server.
F3 content/blog/best-mcp-servers-infrastructure-devops/index.md L224 · ✏️ edit "containers/kubernetes-mcp-server and GitHub's MCP server both ship a read-only mode…" — verdict: contradicted. kubernetes-mcp-server turns on read-only mode in its TOML config, not with a launch flag.
F4 content/blog/best-mcp-servers-infrastructure-devops/index.md L225 · ✏️ edit "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 routing and rate limits."
F5 content/blog/best-mcp-servers-infrastructure-devops/index.md L251 · ✏️ edit "There is no single MCP server today that spans infrastructure as code, Kubernetes, and…" — verdict: contradicted. "No single MCP server" is an absolute claim that sources contradict.

F1 · Do this

  • Line (verbatim): 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.
  • Why: 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.
  • Fix: Replace "this year" with "in the past year."
        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.

F2 · Do this

  • Line (verbatim): | PagerDuty MCP Server | PagerDuty | Local | Self-run | Mostly (check scopes) | Depends on scopes | Actively maintained |
  • Why: 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 prose at L190 makes the same claims.
  • Fix: Point this entry at PagerDuty's hosted Remote MCP Server. Update this row, the L190 prose, and the itemlist URL to match.
| PagerDuty MCP Server | PagerDuty | Remote (hosted) | Hosted | Yes (read-only by default) | Only if write tools enabled | Actively maintained (local repo deprecated) |
  • If you'd rather keep it: Keep the local server, but label it "Deprecated" in the Maturity cell and at L190.

F3 · Do this

  • Line (verbatim): 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.
  • Why: 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.
  • Fix: Change "as a launch flag" to wording that covers both servers.
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.

F4 · Do this

  • Line (verbatim): 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.
  • Why: 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.
  • Fix: Drop the unsupported capabilities.
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.

F5 · Do this

  • Line (verbatim): 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.
  • Why: 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.
  • Fix: Delete the last sentence.
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.

❓ Questions for you

ID Where Finding
F6 content/blog/best-mcp-servers-infrastructure-devops/index.md L20-43 · ✏️ edit "Itemlist URLs for each MCP server (e.g., developer.hashicorp.com/terraform/mcp-server…" — verdict: unverifiable. The itemlist URLs weren't checked one by one.
F7 content/blog/best-mcp-servers-infrastructure-devops/index.md L81 · ✏️ edit "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 because the keyword list isn't published.
F8 content/blog/best-mcp-servers-infrastructure-devops/index.md L208-209 · ✏️ edit "Pulumi MCP Server comparison row: hosted and self-run, stdio + Streamable HTTP…" — verdict: unverifiable. Confirm the Pulumi row's cells match current product behavior.

F6 · Do this

  • Line (verbatim): url: "https://developer.hashicorp.com/terraform/mcp-server"
  • Why: The verifier fetched the Pulumi page instead of the 12 vendor URLs. These URLs feed the ItemList structured data, so a broken one hurts search results.
  • Fix: Open each of the 12 itemlist URLs (L20-43) and confirm each one resolves to that server's official page. Then reply with the result.

F7 · Do this

  • Line (verbatim): Separately, we queried the [official MCP Registry](https://registry.modelcontextprotocol.io) on 2026-08-28 and found 139 actively listed servers whose name or description matched a curated set of infrastructure and DevOps keywords (Kubernetes, Terraform, AWS, Azure, GitOps, observability, and similar terms), deduplicated to the latest version of each.
  • Why: The number depends on a keyword list and filter rules that the post doesn't publish, so no reader or reviewer can check it.
  • Fix: Confirm you still have the query and the full keyword list, and reply with them so a reviewer can rerun it.
  • If you'd rather keep it: Reply with "accepting as-is" and a reason. The sentence already hedges the number as a "keyword-biased lower bound."

F8 · Do this

  • Line (verbatim): | Pulumi MCP Server | Pulumi | stdio + Streamable HTTP | Both | Registry/Cloud tools yes; CLI tools no | Yes (gated by preview) | Shipping |
  • Why: The verifier couldn't confirm that the CLI tools (pulumi-cli-up) are "gated by preview," or that the registry and Cloud tools are all read-only.
  • Fix: Check this row against /docs/ai/mcp-server/, and reply to confirm or correct it.

Editing in the browser? ✏️ opens the file in GitHub's editor; Ctrl+F for the quoted line.

Style suggestions

Optional polish from pattern-based linting and the review's own read; never blocking.

content/blog/best-mcp-servers-infrastructure-devops/index.md
  • line 79: [style] style — 'for Infrastructure as Code' overcapitalizes a generic concept -- use lowercase except at the start of a sentence or heading (brand guide: Names & terminology, general terminology rules).
  • line 100: [style] heading capitalization — Heading 'Pulumi MCP Server' should use sentence case (capitalize only the first word and proper nouns).
  • line 108: [style] heading capitalization — Heading 'HashiCorp Terraform MCP Server' should use sentence case (capitalize only the first word and proper nouns).
  • line 118: [style] heading capitalization — Heading 'AWS Knowledge MCP Server' should use sentence case (capitalize only the first word and proper nouns).

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:

  1. Fix it — push the change. If your push lines up with the flagged lines, this card shows a 🔄 banner within a minute and then refreshes itself. No banner? Comment:

    /update-review I pushed a fix for F1
    
  2. Disagree with it — say which item and why; the review re-checks with your input:

    /update-review F2: <your reasoning — e.g. where the figure comes from>
    

    Either way your answer counts: the review marks the item resolved, or keeps it with a 🛡️ note for your human reviewer to weigh — it stops blocking merge in both cases.

  3. Accept it as-is — you own the PR; a one-line reason is a valid answer, and your reviewer sees it beside the finding:

    /update-review F2: accepting as-is — <your reason>
    

    To accept every open item at once: /update-review accepting all open items — <reason>.

/update-review has to start a line of your comment — it routes your reply to this review, and (besides pushing a fix) it is the only reply that unblocks merge. A bare @claude gets you ad-hoc help and leaves this card — and the merge block — untouched.

Full mechanics: CONTRIBUTING.md §AI-assisted contributions.

Please don't edit or delete this comment; it's the review's record.

@CamSoper CamSoper left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • content/blog/best-mcp-servers-infrastructure-devops/index.md L47: "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.md L219: "| 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.md L224: "containers/kubernetes-mcp-server and 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.md L225: "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.md L251: "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.md L20-43: "Itemlist URLs for each MCP server (e.g., developer.hashicorp.com/terraform/mcp-server…" — verdict: unverifiable. The itemlist URLs weren't checked one by…
  • content/blog/best-mcp-servers-infrastructure-devops/index.md L81: "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.md L208-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.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.…
  • 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…
  • 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…

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
@CamSoper

Copy link
Copy Markdown
Contributor

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

This branch was successfully deployed

1 active and 1 inactive deployments
testing — faa07999 Deployed Oct 23, 2026 by CamSoper via Do cleanup #14924
production — faa07999 Deployed Oct 23, 2026 by CamSoper via Record review outcome #14924
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

domain:blog PR touches blog posts or customer stories domain:docs PR touches technical docs domain:mixed PR touches more than one domain needs-author-response review:stale New commits since last Claude review; refresh on next ready-transition or @claude mention

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants