商店現已上線

我們打造用於網站、AI 智慧體和 LLM 訓練的 Workstation AI 機器——線上配置併購買。

獲取同行價格
AI 產品
AI 實驗室OpenAI 智慧體Claude 代理Grok BotWorkstation AI 原生 CRM營銷所有產品
AI 解決方案
應用型 AIAI 智慧體生成式 AIAI 自動化AI 技能提升中小企業 AI 套餐企業 AI 實驗室AI 工作站NVIDIA 硬體與軟體NVIDIA 加速計算私有 AIGPU 私有云GPU 叢集邊緣 AI行業 AI
AI 服務
平臺現代化數字工程資料基礎與 AI自主運營AI 諮詢DevOps 自動化網路安全軟體開發智慧體構建MLOps 搭建GPU 租賃GPU 私有云
關於我們
公司我們的故事合作伙伴客戶案例
AI 資料中心
AI 資料中心GPU 私有云GPU 叢集GPU 租賃
AI 洞察Jev 系列基準測試實驗室模型選擇
技術說明
文件
Linux 作業系統UbuntuRed Hat Enterprise LinuxSUSE LinuxAlpine LinuxDebian、Rocky 與 AlmaLinux
AI 雲平臺AWS 與 Amazon BedrockGoogle Cloud 與 Vertex AIMicrosoft Azure 與 AI FoundryGPU 雲與算力市場
私有 AI 資料中心面向律師事務所面向會計師事務所本地部署平臺全面安全的雲
工具Ring PromoterJobshout
新聞
部落格
聯絡我們登入

面向現代企業的 AI 工作站、AI 多智慧體軟體、GPU 基礎設施和智慧代理解決方案。

聯絡我們

AI 解決方案

應用型 AIAI 智慧體生成式 AIAI 自動化AI 技能提升中小企業 AI 套餐企業 AI 實驗室行業 AI

產品

所有產品Workstation AI native CRM 與 ERP營銷OpenAI 智慧體Ring PromoterJobshout

公司

關於我們公司AI 資料中心為什麼選擇Workstation合作伙伴客戶案例定價聯絡TenthMatrix

資源

AI 洞察技術說明文件Linux 作業系統AI 雲平臺私有 AI 資料中心部落格搜尋網站地圖
英國總部
77-79 Marlowes, Hemel Hempstead HP1 1LF路線指引 — 從 M25 外環倫敦 20 號出口駛出公司編號: 11641870週一至週五:上午 9:00 - 下午 6:00 GMT
+44 7515 356 146
比利時辦公室
Workstation SRL, Rue Vanderkindere 34, 1180 Uccle, BrusselsBE 0751.518.683週一至週五:上午 9:00 - 下午 6:00 CET
+32 492 45 67 46
印度辦公室
#159 Sector 9, Pocket 1, DDA Flats, 110077 Dwarka, New Delhi
+91 98881 98841
台灣辦公室
3F, No. 2-4, Aisi Rd., Ren'ai Dist., Keelung City 200, Taiwan基隆市仁愛區愛四路2之4號3樓週一至週五:上午 9:00 - 下午 6:00 臺灣時間(GMT+8)
+886 926 892 701+32 492 45 67 46

© 2026 Workstation AI。保留所有權利。

隱私資料刪除Cookie服務條款網站地圖

NVIDIA、NVIDIA 標誌、RTX、RTX PRO、Blackwell、CUDA、NVLink、MGX、Omniverse、Spectrum-X、Quantum、BlueField、DGX 與 HGX 為 NVIDIA Corporation 在美國及其他國家的商標及/或註冊商標。AMD、AMD Arrow 標誌、EPYC、Instinct、Ryzen 與 Threadripper 為 Advanced Micro Devices, Inc. 的商標。Dell 與 PowerEdge 為 Dell Inc. 或其子公司的商標。Intel 與 Xeon 為 Intel Corporation 或其子公司的商標。AMAX、AceleMax 與 LiquidMax 為 AMAX Engineering Corporation 的商標。所有其他產品名稱、標誌與品牌均為其各自所有者之財產。我們使用它們僅為識別我們所描述、供應或支援的產品;使用這些名稱並不表示其所有者為我們背書。

Loading blog...

首頁 / 部落格
AI AgentsDevOpsKubernetesLLMPlatform EngineeringSecurity

MCP for DevOps: Give Agents Pipeline Context Without the Keys

JobShout AI Blog Writer Agent (opens in a new window)2026年10月18日10 min read
Cover

The Model Context Protocol (MCP) lets an AI assistant read your clusters, pipelines and tickets through one standard interface instead of a pile of custom integrations. Wired carelessly, it also hands a language model the keys to production. This post shows how DevOps and platform teams can get the context benefit first, with read-only servers, scoped identities and full tracing, and add write access only where a human signs off.

In one sentence. Use MCP to give agents read-only, least-privilege access to delivery and operations data behind a gateway you control, trace every tool call, and only then add write tools behind human approval.

What MCP gives a DevOps team

MCP is an open protocol in which servers expose tools, resources and prompts, and clients (an IDE, a chat assistant, your own agent) discover and call them. Tools are model-controlled: the model decides when to call them based on the conversation [1]. One Kubernetes server, one CI server and one ticketing server can then serve every assistant your engineers use, instead of each tool vendor building its own integration.

Adoption is broad. In December 2025 Anthropic reported more than 10,000 active public MCP servers, adoption in ChatGPT, Cursor, Gemini, Microsoft Copilot and Visual Studio Code, and deployment support from AWS, Cloudflare, Google Cloud and Microsoft Azure. The protocol now sits in the Agentic AI Foundation, a directed fund under the Linux Foundation [2]. For a platform team, that means MCP is a reasonable interface to standardise on.

It does not mean any of those 10,000 servers belong near production. The specification is clear that servers must validate inputs, enforce access control, rate-limit and sanitise outputs, and that clients should confirm sensitive operations and log tool usage for audit [1]. Those duties fall on you.

What the 2026-07-28 revision changes for operators

The current specification revision, 2026-07-28, makes several changes that matter if you run MCP servers as infrastructure [3]:

  • Stateless protocol. Protocol-level sessions, the Mcp-Session-Id header and the initialise handshake are gone; each request carries its protocol version and capabilities. Servers that need cross-call state mint explicit handles. That makes it simpler to run servers as ordinary replicas behind a load balancer.
  • Routable headers. Streamable HTTP POST requests must carry Mcp-Method and Mcp-Name headers, so a gateway or WAF can route, rate-limit or block by tool without parsing the body.
  • Cache hints. List and read results carry ttlMs and cacheScope, and servers should return tools in a deterministic order to help client caching and prompt-cache hit rates.
  • Tracing. Trace context propagation through _meta (traceparent, tracestate, baggage) is now documented, and the protocol's own Logging feature is deprecated in favour of stderr or OpenTelemetry.
  • Auth. Dynamic Client Registration is deprecated in favour of Client ID Metadata Documents, and clients must validate the iss parameter when it is present.

If your servers were built against 2025-11-25 or earlier, check your SDK's support for the new revision before you upgrade clients.

MCP requests flowing through a gateway to scoped servers. An agent sends tool calls to an MCP gateway that authenticates, routes by the Mcp-Name header and emits traces. Read-only calls flow to Kubernetes, CI and observability servers, each with its own scoped identity. A write call to the change server is held until a human approves it.
A gateway in front of narrow, separately credentialed servers gives you one place to authenticate, route, rate-limit, log and trace every tool call.

Where MCP earns its keep in operations

The pattern that works is "the agent gathers, a person decides". Good first candidates share three traits: the data is spread across several systems, the output has a known shape, and a wrong answer is caught by a human before it causes harm.

  • Incident triage. Pull recent deploys, error-rate changes, pod events and related tickets into one timeline for the on-call engineer.
  • Release readiness. Collect rollout status, pipeline results and open incidents against the change ticket.
  • Runbook lookup. Answer "how do we rotate this certificate?" from your own runbooks and current cluster state, with links.
  • Drift and hygiene reports. List workloads without resource limits, images without pinned tags, or alerts with no owner.

Poor first candidates are anything where the agent acts directly on production, or where it needs broad access to customer data to be useful. Leave those until the read-only foundations, identities and traces are in place.

The playbook: from read-only evidence to gated writes

The safest first use case is an evidence pack: the agent gathers deployment status, test results, open incidents and the change ticket, and writes a release-readiness summary for a human to approve. It never changes anything. Follow these steps:

  1. Pick one read-only job with a clear output. Release readiness or incident triage summaries are good candidates. Write down inputs, the output schema and what "done" means.
  2. Choose servers deliberately. Prefer official servers from the vendor of the system, or write your own thin ones. The MCP security guidance describes how a local server can run arbitrary commands with the client's privileges; clients should show the exact command before installing one and run servers sandboxed with minimal privileges [4].
  3. Give every server its own identity, scoped to its job. A Kubernetes server for triage needs get, list and watch on a handful of resources, not cluster-admin and not Secrets. See the RBAC example below.
  4. Get authentication right. MCP servers must not accept tokens that were not issued to them, so "token passthrough" to downstream APIs is out [4]. Start clients with minimal scopes and step up only when a privileged tool is first used [4].
  5. Design tools for the model and the auditor. Give each tool a precise description, an inputSchema, and an outputSchema so results are structured and can be validated [1]. Set annotations honestly, and remember clients must treat annotations from untrusted servers as untrusted [1]. When several servers are aggregated, prefix tool names with a server identifier to avoid collisions [1].
  6. Put a gateway in front. Terminate auth, route on Mcp-Name, rate-limit per tool and hold write tools for approval. For server-side clients, the security guidance recommends an egress proxy that blocks internal destinations such as cloud metadata endpoints [4].
  7. Trace and log every call. OpenTelemetry's MCP conventions name spans {mcp.method.name} {target}, for example tools/call get_deploy_status, with gen_ai.tool.name as an attribute [5]. They are still at "Development" status, so pin a version.
  8. Add writes last, one at a time, behind approval. The tools specification says there should always be a human able to deny tool invocations, and that clients should show tool inputs before calling the server [1]. Make the approver see the exact arguments.

A read-only identity for a Kubernetes MCP server

apiVersion: v1
kind: ServiceAccount
metadata:
  name: mcp-k8s-readonly
  namespace: mcp
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: mcp-k8s-readonly
rules:
  - apiGroups: [""]
    resources: ["pods", "pods/log", "services", "events", "nodes"]
    verbs: ["get", "list", "watch"]
  - apiGroups: ["apps"]
    resources: ["deployments", "replicasets", "statefulsets", "daemonsets"]
    verbs: ["get", "list", "watch"]
  # Deliberately no "secrets" and no "configmaps".
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: mcp-k8s-readonly
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: mcp-k8s-readonly
subjects:
  - kind: ServiceAccount
    name: mcp-k8s-readonly
    namespace: mcp

Prove the boundary before you connect an agent:

SA=system:serviceaccount:mcp:mcp-k8s-readonly
kubectl auth can-i list pods --all-namespaces --as=$SA      # yes
kubectl auth can-i get secrets --all-namespaces --as=$SA    # no
kubectl auth can-i delete pods --all-namespaces --as=$SA    # no

A tool definition that helps the model and the reviewer

{
  "name": "k8s.get_deploy_status",
  "title": "Deployment rollout status",
  "description": "Read-only. Returns rollout status for one Deployment: desired, updated and available replicas, and recent warning events.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "namespace": { "type": "string" },
      "deployment": { "type": "string" }
    },
    "required": ["namespace", "deployment"],
    "additionalProperties": false
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "desired": { "type": "integer" },
      "updated": { "type": "integer" },
      "available": { "type": "integer" },
      "warnings": { "type": "array", "items": { "type": "string" } }
    },
    "required": ["desired", "updated", "available", "warnings"]
  },
  "annotations": { "readOnlyHint": true, "openWorldHint": false }
}

A task contract for the agent

Explicit task definitions keep the agent inside its lane. This is an internal format of our own, not a standard:

task: release_readiness_check
inputs: [change_ticket_id, target_env]
output_schema: release_readiness_report.json
tools_allowed:
  - k8s.get_deploy_status
  - ci.get_pipeline_result
  - obs.query_error_rate
  - tickets.get_change
constraints:
  - read_only
  - no_production_data_in_output
limits: { max_steps: 20, max_wall_clock: 10m }
handoff: human_approver   # the agent recommends; a person decides

Before and after: a release-readiness check

StepWithout MCPWith read-only MCP servers
Gather rollout statusEngineer runs kubectl in several contextsAgent calls k8s.get_deploy_status per service
Check pipeline and testsOpen the CI UI, copy linksAgent calls the CI server and links each result
Check error budgetQuery dashboards by handAgent queries metrics through the observability server
Write the summaryFree text in the ticketStructured report against a schema, sources linked
DecisionHumanHuman, with the agent's evidence and a full trace
Audit trailWhatever was pasted inEvery tool call, argument and result in traces and logs
The lethal trifecta applied to MCP servers. Three overlapping circles: private data, untrusted content and outbound channels, each with example MCP servers. The centre where all three overlap is marked as the danger zone that no single agent should occupy.
Simon Willison's "lethal trifecta" applied to MCP: any agent with private data, untrusted input and a way to send data out can be tricked into leaking it [6].

Checklist

  • Every connected server is on an allowlist with a named owner and a pinned version.
  • Each server has its own identity with least-privilege permissions, verified with a test such as kubectl auth can-i.
  • Tokens are audience-bound to the server; no token passthrough.
  • Write tools are held at the gateway for human approval, with exact arguments shown.
  • Tool names are prefixed by server; descriptions, input and output schemas are reviewed like an API.
  • Gateway enforces rate limits and egress rules; cloud metadata endpoints are blocked.
  • Every tools/call produces a trace span and an audit log entry.
  • No agent combines private data, untrusted content and an outbound channel.
  • Your SDKs and clients are checked against the 2026-07-28 revision before upgrade.

Common mistakes

  • Reusing an admin kubeconfig "just for the pilot". Pilots become production. Start with the scoped identity.
  • Installing community servers from a one-line command. A local server runs with your privileges [4]. Read it, pin it, sandbox it.
  • Trusting a server's readOnlyHint. It is a hint from the server, not an enforced permission [1]. Enforce read-only with credentials.
  • Connecting every available tool. More tools mean more ways to go wrong. Thoughtworks' account of Bayer's PRINCE platform puts it well: reliability comes from engineering both the context the model sees and the harness it acts in [7].
  • No trace correlation. Without propagated trace context you cannot connect an agent's decision to the API call it caused.

What to do this week

  1. List every MCP server your engineers have configured in IDEs and assistants, with the credentials each uses.
  2. Create one read-only service account for a Kubernetes MCP server and prove it with kubectl auth can-i.
  3. Build a release-readiness evidence pack for one service using only read-only tools.
  4. Turn on OpenTelemetry tracing for tool calls and check you can follow one request end to end.
  5. Write down which tools would ever need write access, and who approves each.

MCP is a good standard for giving agents operational context, and the controls that make it safe are ones platform teams already know: scoped identities, gateways, audit logs and change approval. If you want a second pair of eyes on how your agents reach production systems, our security team can help.

References

  1. MCP specification: Tools (2026-07-28), Model Context Protocol.
  2. Donating the Model Context Protocol and establishing the Agentic AI Foundation, Anthropic, 9 December 2025.
  3. MCP specification 2026-07-28: Key changes, Model Context Protocol.
  4. MCP Security Best Practices, Model Context Protocol.
  5. Semantic conventions for Model Context Protocol, OpenTelemetry.
  6. The lethal trifecta for AI agents, Simon Willison, 16 June 2025.
  7. Building Reliable Agentic AI Systems, Sarang Sanjay Kulkarni, martinfowler.com, June 2026.