Octopus Deploy Official MCP Server

chính thức

Máy chủ MCP Octopus cung cấp cho trợ lý AI của bạn các công cụ mạnh mẽ cho phép nó kiểm tra, truy vấn và chẩn đoán vấn đề trong phiên bản Octopus của bạn, biến nó thành người bạn đồng hành DevOps tối ưu của bạn.

Tài liệu

Octopus Deploy Logo

Máy chủ MCP Chính thức của Octopus Deploy

Octopus giúp bạn dễ dàng phân phối phần mềm lên Kubernetes, đa đám mây, cơ sở hạ tầng tại chỗ và bất kỳ nơi nào khác. Tự động hóa việc phát hành, triển khai và vận hành phần mềm cũng như khối lượng công việc AI của bạn bằng một công cụ có thể xử lý CD ở quy mô lớn theo cách mà không công cụ nào khác làm được.

Model Context Protocol (MCP) cho phép các trợ lý AI bạn sử dụng hàng ngày, như Claude Code hay ChatGPT, kết nối với các hệ thống và dịch vụ bạn sở hữu theo cách thức chuẩn hóa, cho phép chúng lấy thông tin từ các hệ thống và dịch vụ đó để trả lời câu hỏi và thực hiện nhiệm vụ.

Máy chủ MCP của Octopus cung cấp cho trợ lý AI của bạn các công cụ mạnh mẽ cho phép nó kiểm tra, truy vấn và chẩn đoán sự cố trong phiên bản Octopus của bạn, biến nó thành người bạn đồng hành DevOps tối thượng của bạn. Để biết danh sách các trường hợp sử dụng được hỗ trợ và lời nhắc mẫu, hãy xem tài liệu của chúng tôi.

Khả năng tương thích với Máy chủ Octopus

Hầu hết các công cụ do Máy chủ MCP cung cấp đều sử dụng các API ổn định đã có sẵn từ ít nhất phiên bản 2021.1 của Máy chủ Octopus. Các công cụ mới hơn sẽ chỉ định phiên bản được hỗ trợ tối thiểu trong tài liệu. Ngoài ra, bạn có thể sử dụng đối số dòng lệnh --list-tools-by-version để kiểm tra cách các công cụ cụ thể liên quan đến các phiên bản của Octopus.

🚀 Cài đặt

Cài đặt qua Docker

Thông tin xác thực phải được cung cấp qua biến môi trường để tránh hiển thị chúng trong danh sách tiến trình máy chủ (ps aux / /proc/<pid>/cmdline). URL máy chủ Octopus vẫn có thể được cung cấp qua cờ --server-url.

docker run -i --rm -e OCTOPUS_API_KEY=your-key -e OCTOPUS_SERVER_URL=https://your-octopus.com octopusdeploy/mcp-server

Ví dụ cấu hình đầy đủ (cho Claude Desktop, Claude Code và Cursor):

{
  "mcpServers": {
    "octopus-deploy": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "OCTOPUS_SERVER_URL",
        "-e",
        "OCTOPUS_API_KEY",
        "octopusdeploy/mcp-server"
      ],
      "env": {
        "OCTOPUS_SERVER_URL": "https://your-octopus.com",
        "OCTOPUS_API_KEY": "YOUR_API_KEY"
      }
    },
  }
}

Đối với người dùng Apple Mac, bạn có thể cần thêm các đối số sau vào cấu hình để buộc Docker sử dụng nền tảng Linux:

"--platform",
"linux/amd64",

Chúng tôi đang lên kế hoạch phát hành bản dựng ARM gốc trong thời gian ngắn tới để không cần các đối số đó nữa.

Cài đặt qua Node

Yêu cầu

  • Node.js >= v20.0.0
  • Phiên bản Octopus Deploy mà máy chủ MCP có thể truy cập qua HTTPS
  • Khóa API hoặc Mã thông báo truy cập Octopus Deploy (xem Xác thực bên dưới)

Cấu hình

Ví dụ cấu hình đầy đủ (cho Claude Desktop, Claude Code và Cursor):

Công cụ ghi được bật (mặc định):

{
  "mcpServers": {
    "octopusdeploy": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@octopusdeploy/mcp-server"],
      "env": {
        "OCTOPUS_SERVER_URL": "https://your-octopus.com",
        "OCTOPUS_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

Chế độ chỉ đọc (khuyến nghị cho môi trường sản xuất):

{
  "mcpServers": {
    "octopusdeploy": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@octopusdeploy/mcp-server", "--read-only"],
      "env": {
        "OCTOPUS_SERVER_URL": "https://your-octopus.com",
        "OCTOPUS_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

Máy chủ MCP của Octopus thường được cấu hình trong ứng dụng khách AI bạn chọn.

Nó được đóng gói dưới dạng gói npm và thực thi qua lệnh npx của Node. Thông tin xác thực (khóa API hoặc mã thông báo truy cập) phải được cung cấp qua biến môi trường — chúng không được chấp nhận dưới dạng đối số dòng lệnh để tránh lộ bí mật trong danh sách tiến trình. URL máy chủ Octopus có thể được cung cấp qua biến môi trường OCTOPUS_SERVER_URL hoặc cờ --server-url.

OCTOPUS_API_KEY=API-KEY \
OCTOPUS_SERVER_URL=https://your-octopus.com \
npx -y @octopusdeploy/mcp-server

Hoặc với URL máy chủ trên dòng lệnh:

OCTOPUS_API_KEY=API-KEY \
npx -y @octopusdeploy/mcp-server --server-url https://your-octopus.com

Xác thực

Máy chủ MCP hỗ trợ hai phương thức xác thực. Cả hai đều được cung cấp qua biến môi trường — thông tin xác thực không được chấp nhận trên dòng lệnh vì các cờ có thể hiển thị trong danh sách tiến trình máy chủ đối với bất kỳ người dùng cục bộ nào.

Khóa API (khuyến nghị cho sử dụng tương tác)

Khóa API là phương thức xác thực tiêu chuẩn cho Octopus Deploy. Bạn có thể tạo một khóa từ hồ sơ người dùng Octopus Deploy của mình.

OCTOPUS_API_KEY=API-XXXXXXXXXXXXXXXXXXXXXXXXXX \
OCTOPUS_SERVER_URL=https://your-octopus.com \
npx -y @octopusdeploy/mcp-server

Mã thông báo truy cập / Mã thông báo Bearer (chỉ dành cho các kịch bản tự động)

Máy chủ cũng hỗ trợ mã thông báo truy cập ngắn hạn (mã thông báo Bearer) như một giải pháp thay thế cho khóa API. Phương thức xác thực này chỉ dành cho các kịch bản tự động khi một hệ thống bên ngoài cấp mã thông báo ngắn hạn cho máy chủ MCP (ví dụ: pipeline CI/CD, điều phối tự động hoặc quy trình làm việc máy-với-máy). Không sử dụng mã thông báo Bearer dài hạn — thay vào đó hãy sử dụng khóa API cho các phiên tương tác hoặc chạy dài hạn.

OCTOPUS_ACCESS_TOKEN=your-short-lived-token \
OCTOPUS_SERVER_URL=https://your-octopus.com \
npx -y @octopusdeploy/mcp-server

Ví dụ cấu hình đầy đủ với mã thông báo truy cập:

{
  "mcpServers": {
    "octopusdeploy": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@octopusdeploy/mcp-server"],
      "env": {
        "OCTOPUS_SERVER_URL": "https://your-octopus.com",
        "OCTOPUS_ACCESS_TOKEN": "YOUR_TOKEN"
      }
    }
  }
}

Nếu cả khóa API và mã thông báo truy cập đều được cung cấp, mã thông báo truy cập sẽ được ưu tiên. Phương thức xác thực đang hoạt động được ghi lại trong tệp nhật ký (có thể cấu hình bằng --log-file) để người vận hành có thể xác nhận thông tin xác thực nào đang được sử dụng.

Tùy chọn Cấu hình

Máy chủ MCP của Octopus hỗ trợ một số tùy chọn dòng lệnh để tùy chỉnh các công cụ có sẵn.

Nếu bạn không chắc mình cần công cụ nào, chúng tôi khuyên bạn nên chạy mà không có bất kỳ tùy chọn dòng lệnh bổ sung nào và sử dụng các giá trị mặc định được cung cấp.

Bộ công cụ

Sử dụng tham số --toolsets để bật các nhóm công cụ cụ thể:

# Enable all toolsets (default)
npx -y @octopusdeploy/mcp-server

# Enable only specific toolsets
npx -y @octopusdeploy/mcp-server --toolsets projects,deployments

# Enable all toolsets explicitly
npx -y @octopusdeploy/mcp-server --toolsets all

Các bộ công cụ có sẵn:

  • core - Các thao tác cơ bản (luôn được bật)
  • projects - Thao tác dự án
  • deployments - Thao tác triển khai
  • releases - Quản lý phát hành
  • runbooks - Khám phá và thực thi runbook
  • tasks - Thao tác tác vụ
  • tenants - Thao tác đa người thuê
  • kubernetes - Thao tác Kubernetes
  • machines - Thao tác mục tiêu triển khai
  • certificates - Thao tác chứng chỉ
  • accounts - Thao tác tài khoản
  • interruptions - Thao tác can thiệp thủ công và phê duyệt
  • featureToggles - Kiểm tra và điều chỉnh các nút bật/tắt tính năng của khách hàng
  • context - Ngữ cảnh người dùng và dự án đã xác thực (người dùng hiện tại, nhánh Git)

Chế độ Chỉ đọc

Máy chủ chạy với các công cụ ghi được bật theo mặc định. Truyền --read-only để vô hiệu hóa tất cả các công cụ ghi và chặn POST/PUT/PATCH/DELETE thông qua điểm chặn cuối execute. Hầu hết các công cụ được quản lý đều đã ở chế độ chỉ đọc; chỉ một nhóm nhỏ thực hiện ghi.

Các công cụ luôn ghi:

  • create_release - Tạo bản phát hành mới
  • deploy_release - Triển khai bản phát hành đến môi trường và người thuê
  • run_runbook - Chạy runbook trên một hoặc nhiều môi trường (và người thuê tùy chọn)
  • update_feature_toggle - Điều chỉnh trạng thái theo môi trường và tỷ lệ phần trăm triển khai trên một nút bật/tắt tính năng hiện có

Công cụ ghi có điều kiện: execute là một điểm chặn cuối REST có cấu trúc với cấp độ (đọc / ghi / xóa) được xác định bởi phương thức HTTP được truyền cho nó. Xem phần Danh mục API & Điểm chặn cuối để biết chi tiết.

Các công cụ ghi được kiểm soát bởi lời nhắc khơi gợi MCP: các ứng dụng khách hỗ trợ khơi gợi sẽ được yêu cầu xác nhận trước khi cuộc gọi tiếp tục. Các ứng dụng khách không hỗ trợ khơi gợi phải truyền confirm: true trong các đối số công cụ — nếu không công cụ sẽ hủy bỏ với lỗi. Đặt OCTOPUS_SKIP_ELICITATION=true để bỏ qua hoàn toàn kiểm soát (dành cho tự động hóa không cần giám sát).

Máy chủ sử dụng phân loại ba cấp đọc/ghi/xóa, được thực thi phía máy chủ dựa trên phương thức HTTP (tác nhân không thể vượt qua điều này bằng cách nói dối về ý định):

  • read — luôn được phép. Các yêu cầu GET thông qua execute, cộng với tất cả các công cụ find_* / get_* / list_*.
  • write — POST/PUT/PATCH thông qua execute và các công cụ luôn ghi ở trên. Bị chặn khi --read-only được đặt.
  • delete — DELETE thông qua execute. Yêu cầu --allow-deletes và bị chặn khi --read-only được đặt. Một nhóm nhỏ các đường dẫn xóa thảm khốc (ví dụ: DELETE /api/spaces/{id}, DELETE /api/users/{id}) và các điểm cuối khóa API nằm trong danh sách từ chối nhạy cảm cứng, bỏ qua cả hai cờ.
# Default - write tools enabled (POST/PUT/PATCH)
npx -y @octopusdeploy/mcp-server

# Additionally permit DELETE requests through the execute tool
npx -y @octopusdeploy/mcp-server --allow-deletes

# Read-only mode - write/delete tools disabled
npx -y @octopusdeploy/mcp-server --read-only

Lưu ý Bảo mật: Sử dụng khóa API với các quyền phù hợp, ít đặc quyền nhất — các thao tác ghi có thể tạo bản phát hành và kích hoạt triển khai trong phiên bản Octopus của bạn. Đối với môi trường sản xuất, hãy cân nhắc truyền --read-only trừ khi bạn có trường hợp sử dụng cụ thể, được kiểm soát cho việc ghi. --allow-deletes tắt theo mặc định; chỉ bật nó khi tác nhân phải thực hiện các yêu cầu DELETE thông qua execute. Nếu bạn truyền --allow-deletes cùng với --read-only, máy chủ sẽ in cảnh báo khởi động ra stderr — các yêu cầu DELETE vẫn bị chặn bởi cổng chỉ đọc.

Ví dụ Hoàn chỉnh

Tất cả các ví dụ dưới đây giả định OCTOPUS_API_KEY được đặt trong môi trường. Cờ --server-url được hiển thị để rõ ràng nhưng cũng có thể được cung cấp qua OCTOPUS_SERVER_URL.

# Development setup with only core and project tools
npx -y @octopusdeploy/mcp-server --toolsets core,projects --server-url https://your-octopus.com

# Production setup with all tools and read-only enforcement
npx -y @octopusdeploy/mcp-server --toolsets all --read-only --server-url https://your-octopus.com

# Default invocation - all tools and writes enabled
npx -y @octopusdeploy/mcp-server --server-url https://your-octopus.com

Các đối số dòng lệnh khác

  • --read-only - Bật chế độ chỉ đọc: vô hiệu hóa tất cả các công cụ ghi được quản lý và chặn POST/PUT/PATCH/DELETE thông qua execute. Ghi được bật theo mặc định; cờ này tắt chúng đi. Xem Chế độ Chỉ đọc.
  • --allow-deletes - Cho phép các yêu cầu DELETE thông qua công cụ execute. Bị bỏ qua (với cảnh báo khởi động) khi --read-only được đặt. Mặc định false.
  • --log-level <level> - Mức nhật ký tối thiểu (info, error)
  • --log-file <path> - Đường dẫn hoặc tên tệp nhật ký. Nếu không được chỉ định, nhật ký chỉ được ghi ra console
  • -q, --quiet - Vô hiệu hóa ghi nhật ký tệp, chỉ ghi lỗi ra console
  • --list-tools-by-version - Liệt kê tất cả các công cụ đã đăng ký theo phiên bản Máy chủ Octopus được hỗ trợ và thoát

🔨 Công cụ

Công cụ Dựa trên URL

Bắt đầu nhanh: Dán trực tiếp URL Octopus để điều tra sự cố mà không cần trích xuất ID thủ công.

  • get_deployment_from_url: Lấy chi tiết triển khai từ URL triển khai (trả về taskId để theo dõi tiếp)
  • get_task_from_url: Lấy chi tiết tác vụ và nhật ký từ URL tác vụ

Quy trình điều tra triển khai:

1. get_deployment_from_url with deployment URL
   → Returns deployment context + taskResourceUri + grepTaskLogHint

2a. Fetch the structured activity tree via resources/read (or read_resource)
    octopus://spaces/{spaceName}/tasks/{taskId}/details

2b. Or call grep_task_log with the taskId to search the raw log without
    fetching the full body:
       grep_task_log({ spaceName, taskId, pattern: "error|fail", caseInsensitive: true })

Điều tra tác vụ (URL tác vụ trực tiếp):

get_task_from_url with task URL
→ Returns task details and logs immediately

Các công cụ này loại bỏ việc trích xuất ID thủ công bằng cách:

  • Tự động phân tích cú pháp URL
  • Phân giải ID không gian thành tên không gian
  • Xác thực định dạng ID
  • Cung cấp thông báo lỗi rõ ràng

URL ví dụ:

  • Triển khai: https://your-octopus.com/app#/Spaces-1/projects/my-app/deployments/Deployments-123
  • Tác vụ: https://your-octopus.com/app#/Spaces-1/tasks/ServerTasks-456

Xem Làm việc với URL để biết quy trình làm việc chi tiết, ví dụ và thực hành tốt nhất.

Công cụ Cốt lõi

  • list_spaces: Liệt kê tất cả các không gian trong phiên bản Octopus Deploy
  • list_environments: Liệt kê tất cả các môi trường trong một không gian nhất định

Danh mục API & Điểm chặn cuối

Các công cụ và tài nguyên này cho phép tác nhân truy cập các điểm cuối REST của Octopus không có công cụ quản lý chuyên dụng, với sự kiểm soát cứng phía máy chủ giữa các thao tác đọc, ghi và xóa.

  • grep_llms_txt: Tìm kiếm trong danh mục API Octopus (octopus://api/llms.txt) với ngữ nghĩa kiểu grep (phiên bản Octopus tối thiểu được hỗ trợ: 2026.2.3916). Nội dung danh mục lớn (thường từ 300 KB trở lên) — hãy gọi công cụ này thay vì đọc trực tiếp nội dung tài nguyên. Các tham số phản ánh GNU grep (pattern, caseInsensitive, invertMatch, fixedString, beforeContext, afterContext, maxCount). Hữu ích để khám phá điểm cuối (POST /releases), liệt kê điểm cuối xóa (DELETE ), hoặc tìm loại body cho thao tác ghi (Body: Create.*Command).
  • execute: Điểm dừng REST có cấu trúc. Tiếp cận bất kỳ điểm cuối REST nào của Octopus dưới /api. Phương thức HTTP là bộ phân loại đọc/ghi/xóa có thẩm quyền — không bao giờ là cờ isWrite mà LLM có thể đặt. Việc kiểm soát phương thức được mã hóa cứng ở phía máy chủ:
    • GET luôn được phép (tuân theo kiểm tra hình dạng đường dẫn + danh sách từ chối nhạy cảm).
    • POST/PUT/PATCH bị chặn khi --read-only được đặt; nếu không, chúng yêu cầu xác nhận của người dùng thông qua gợi ý.
    • DELETE yêu cầu --allow-deletes (và bị chặn khi --read-only được đặt) cùng với thông báo gợi ý "KHÔNG THỂ ĐẢO NGƯỢC" mạnh hơn.
    • Danh sách từ chối nhạy cảm (điểm cuối khóa API, DELETE /api/spaces/{id}, DELETE /api/users/{id}) được thực thi ngay cả khi cả hai cờ đều bật.
    • Đường dẫn bắt buộc phải là /api hoặc bắt đầu bằng /api/ — URL tuyệt đối, đường dẫn ~/api/... tương đối SDK, và đường dẫn tương đối máy chủ nằm ngoài /api (ví dụ: /octopus/portal/...) đều bị từ chối ngay từ đầu, do đó execute được giới hạn trong phạm vi bề mặt REST API của Octopus.
    • Danh sách cho phép đường dẫn theo bộ công cụ chỉ áp dụng khi --toolsets đã được thu hẹp. Khi tất cả bộ công cụ được bật (mặc định, hoặc --toolsets all rõ ràng), danh sách cho phép bị bỏ qua và bất kỳ đường dẫn nào dưới /api đều có thể truy cập được, tuân theo các rào cản ở trên. Khi --toolsets bị thu hẹp, danh sách cho phép trở thành công tắc ngắt: đường dẫn chỉ được phân giải nếu bộ công cụ sở hữu chúng được bật, vì vậy việc vô hiệu hóa một bộ công cụ (ví dụ: certificates) khiến các đường dẫn của nó không thể truy cập qua execute ngay cả khi GET.

Dữ liệu danh mục cũng được hiển thị dưới dạng Tài nguyên MCP:

  • octopus://api/llms.txt — danh mục markdown của mọi điểm cuối REST Octopus (phương thức HTTP, đường dẫn, tham số truy vấn, loại yêu cầu/phản hồi). Yêu cầu Octopus Server 2026.2.3916 trở lên. Bộ nhớ đệm trong bộ nhớ 5 phút được khóa theo URL máy chủ đã cấu hình. Ưu tiên grep_llms_txt hơn là đọc trực tiếp nội dung.
  • octopus://api/capabilities — JSON mô tả phiên đang chạy: phiên bản máy chủ, bộ công cụ được bật, công cụ khả dụng (với minimumOctopusVersion của chúng), và liệu --read-only / --allow-deletes có đang bật hay không. Hữu ích để tác nhân khám phá những gì có thể truy cập trong phiên này.

Dự án

  • list_projects: Liệt kê tất cả dự án trong một không gian nhất định

Triển khai

  • deploy_release: Triển khai một bản phát hành đến các môi trường (hỗ trợ cả triển khai có tenant và không có tenant)
  • list_deployments: Liệt kê các triển khai trong một không gian với bộ lọc tùy chọn

Bản phát hành

  • create_release: Tạo bản phát hành mới cho một dự án
  • find_releases: Tìm bản phát hành trong một không gian (có thể lấy bản phát hành cụ thể theo ID, hoặc liệt kê/lọc bản phát hành theo dự án)

Chi tiết bản phát hành cũng có sẵn dưới dạng Tài nguyên MCP tại octopus://spaces/{spaceName}/releases/{releaseId} — tìm nạp qua resources/read (hoặc công cụ điểm dừng read_resource) để lấy toàn bộ nội dung bản phát hành, bao gồm ghi chú phát hành và các gói đã chọn.

Runbook

  • find_runbooks: Tìm runbook trong một dự án (có thể lấy runbook cụ thể theo ID, hoặc liệt kê/lọc runbook theo tên một phần). Mỗi bản tóm tắt bao gồm ID snapshot đã xuất bản, chế độ đa tenant và phạm vi môi trường để người gọi có thể chọn mục tiêu hợp lệ trước khi chạy.
  • run_runbook: Chạy runbook trên một hoặc nhiều môi trường. Hỗ trợ chạy có tenant (theo tên tenant hoặc thẻ tenant), biến được nhắc, chế độ lỗi có hướng dẫn, cửa sổ chạy theo lịch, và bao gồm/loại trừ bước hoặc máy. Mặc định sử dụng snapshot đã xuất bản của runbook nếu runbookSnapshotId bị bỏ qua.

Toàn bộ nội dung runbook (bao gồm các trường chính sách thời gian chạy) có sẵn dưới dạng Tài nguyên MCP tại octopus://spaces/{spaceName}/runbooks/{runbookId}.

Tác vụ

Dữ liệu tác vụ chủ yếu được hiển thị dưới dạng Tài nguyên MCP. Sử dụng resources/read (hoặc công cụ điểm dừng read_resource) với một trong những thứ sau:

  • octopus://spaces/{spaceName}/tasks/{taskId} — siêu dữ liệu nhẹ (trạng thái, thời gian, cờ hoàn thành)
  • octopus://spaces/{spaceName}/tasks/{taskId}/details — ServerTaskDetails đầy đủ (Tiến trình, cây ActivityLogs, v.v.)

Để tìm kiếm nhật ký, hãy sử dụng công cụ grep_task_log thay vì tài nguyên /log:

  • grep_task_log: Tìm kiếm nhật ký hoạt động của tác vụ mà không cần tìm nạp toàn bộ nội dung. Các tham số phản ánh GNU grep (pattern, caseInsensitive, invertMatch, fixedString, beforeContext, afterContext, maxCount). Trả về các dòng khớp với lineNumber chỉ mục 1, mảng ngữ cảnh trước/sau tùy chọn, và số lượng totalMatches trên toàn bộ nhật ký.

Cố ý không có tài nguyên /log: nhật ký hoạt động có thể nặng nhiều megabyte, và một tài nguyên có thể định địa chỉ sẽ cám dỗ người gọi tìm nạp toàn bộ nội dung trong khi grep hầu như luôn là công cụ nguyên thủy phù hợp.

Tenant

  • find_tenants: Tìm tenant trong một không gian (có thể lấy tenant cụ thể theo ID hoặc liệt kê/tìm kiếm tenant với bộ lọc)
  • get_tenant_variables: Lấy biến tenant theo loại (tất cả, chung, hoặc dự án)
  • get_missing_tenant_variables: Lấy biến tenant bị thiếu giá trị

Kubernetes

  • get_kubernetes_live_status: Lấy trạng thái trực tiếp của tài nguyên Kubernetes cho một dự án và môi trường (phiên bản tối thiểu được hỗ trợ: 2025.3)

Máy (Mục tiêu triển khai)

  • find_deployment_targets: Tìm mục tiêu triển khai trong một không gian (có thể lấy mục tiêu cụ thể theo ID hoặc liệt kê/tìm kiếm mục tiêu với bộ lọc)

Chứng chỉ

  • find_certificates: Tìm chứng chỉ trong một không gian (có thể lấy chứng chỉ cụ thể theo ID hoặc liệt kê/tìm kiếm chứng chỉ với bộ lọc)

Tài khoản

  • find_accounts: Tìm tài khoản trong một không gian (có thể lấy tài khoản cụ thể theo ID hoặc liệt kê/tìm kiếm tài khoản với bộ lọc)

Gián đoạn

  • find_interruptions: Tìm gián đoạn đang chờ xử lý hoặc lịch sử (can thiệp thủ công, phê duyệt, lời nhắc lỗi có hướng dẫn) trong một không gian, tùy chọn lọc theo tác vụ, dự án, môi trường, tài liệu liên quan, trách nhiệm, hoặc trạng thái chờ xử lý. Trả về tóm tắt ngắn gọn; tham chiếu tài nguyên octopus://spaces/{spaceName}/interruptions/{interruptionId} để lấy định nghĩa Form đầy đủ (loại điều khiển, hướng dẫn Markdown, tùy chọn nút, Form.Values đã gửi).

Feature Toggle

  • find_feature_toggles: Liệt kê feature toggle khách hàng trong một dự án. Mỗi bản tóm tắt bao gồm trạng thái theo môi trường (isEnabled, rolloutPercentage, clientRolloutPercentage) cùng với resourceUri để câu hỏi "X được bật ở đâu" có thể trả lời từ phản hồi danh sách.
  • update_feature_toggle: Điều chỉnh một toggle hiện có. Bề mặt hẹp — bật/tắt một môi trường, thay đổi tỷ lệ phần trăm triển khai, hoặc cập nhật mô tả / trạng thái mặc định ở cấp toggle. Nội bộ tìm nạp toggle hiện tại, áp dụng các bản vá của bạn trong bộ nhớ, và PUT nội dung đã hợp nhất, do đó các môi trường không được đề cập và các trường không được đề cập được bảo toàn. Các bản vá tham chiếu đến môi trường chưa được cấu hình trên toggle sẽ bị từ chối.

Toàn bộ nội dung toggle (mô tả, tenant, phân đoạn, phiên bản tối thiểu) có sẵn dưới dạng Tài nguyên MCP tại octopus://spaces/{spaceName}/projects/{projectId}/featuretoggles/{slug}. Nội dung nhóm triển khai có thể định địa chỉ tại octopus://spaces/{spaceName}/projects/{projectId}/rolloutgroups/{rolloutGroupId} để kiểm tra chỉ đọc.

Ngoài phạm vi (sử dụng giao diện Octopus): tạo feature toggle mới, xóa toggle, đổi tên hoặc gắn lại thẻ, gắn/tháo nhóm triển khai, nhắm mục tiêu tenant, phân đoạn, bộ lọc phiên bản tối thiểu, và quản lý nhóm triển khai / định danh máy khách SDK.

Công cụ bổ sung

  • get_deployment_process: Lấy quy trình triển khai theo ID cho dự án hoặc bản phát hành
  • get_variables: Lấy tất cả biến dự án và biến tập biến thư viện cho một dự án (hỗ trợ dự án config-as-code qua gitRef)
  • get_branches: Lấy nhánh Git cho dự án được kiểm soát phiên bản (phiên bản tối thiểu được hỗ trợ: 2021.2)
  • get_current_user: Lấy thông tin về người dùng đã xác thực hiện tại

🔒 Cân nhắc bảo mật

Máy chủ Octopus MCP bao gồm cả thao tác đọc và ghi. Các cân nhắc bảo mật quan trọng:

Thao tác đọc

  • Có thể đọc toàn bộ nhật ký triển khai, có thể chứa bí mật sản xuất nếu chúng không được đánh dấu là bí mật
  • Truy cập vào dữ liệu cấu hình nhạy cảm và biến
  • Thận trọng khi kết nối với các công cụ và mô hình bạn không hoàn toàn tin tưởng

Thao tác ghi

Theo mặc định, các thao tác ghi sau đây khả dụng:

  • Tạo bản phát hành: Có thể tạo bản phát hành mới cho dự án
  • Triển khai bản phát hành: Có thể kích hoạt triển khai đến các môi trường (bao gồm sản xuất)
  • Chạy runbook: Có thể thực thi runbook trên các môi trường và tenant
  • Cập nhật feature toggle: Có thể lật trạng thái theo môi trường và thay đổi tỷ lệ phần trăm triển khai trên các toggle hiện có
  • POST/PUT/PATCH tùy ý qua điểm dừng execute: Giới hạn trong các đường dẫn dưới /api, với danh sách từ chối nhạy cảm luôn bật. Danh sách cho phép đường dẫn theo bộ công cụ chỉ áp dụng khi --toolsets đã bị thu hẹp; với tất cả bộ công cụ được bật (mặc định), các rào cản đường dẫn duy nhất là ranh giới /api và danh sách từ chối nhạy cảm.

Truyền --read-only để vô hiệu hóa tất cả những điều trên. Yêu cầu DELETE qua execute yêu cầu cờ --allow-deletes bổ sung — một sự chấp thuận có chủ ý cho các thao tác không thể đảo ngược — và vẫn bị chặn khi --read-only được đặt.

Các biện pháp bảo mật quan trọng:

  1. Đặc quyền tối thiểu: Sử dụng khóa API với các quyền tối thiểu cần thiết cho trường hợp sử dụng của bạn
  2. Chọn chế độ chỉ đọc: Ghi được bật theo mặc định. Đối với sản xuất, hãy truyền --read-only trừ khi bạn có trường hợp sử dụng cụ thể, được kiểm soát cho thao tác ghi. DELETE luôn yêu cầu chấp thuận --allow-deletes bổ sung.
  3. Kiểm soát phương thức ở phía máy chủ và được mã hóa cứng: Phương thức HTTP được truyền tới execute là bộ phân loại có thẩm quyền. Tác nhân không thể vượt qua rào cản bằng cách trình bày sai những gì lệnh gọi thực hiện — các yêu cầu POST/PUT/PATCH/DELETE nhận kiểm soát theo cấp bất kể văn xuôi trong nội dung yêu cầu.
  4. Lọc bộ công cụ đóng vai trò như công tắc ngắt: Thu hẹp --toolsets loại bỏ cả công cụ được quản lý của bộ công cụ bị vô hiệu hóa và đường dẫn của chúng khỏi danh sách cho phép execute. (Danh sách cho phép chỉ được tham khảo khi bộ công cụ bị thu hẹp; với tất cả bộ công cụ được bật, execute bị giới hạn bởi kiểm tra hình dạng /api và danh sách từ chối nhạy cảm.)
  5. Rủi ro tiêm nhiễm lời nhắc: Chạy tác nhân theo cách hoàn toàn tự động có thể khiến bạn dễ bị tấn công tiêm nhiễm lời nhắc

Khuyến nghị: Đối với môi trường sản xuất, hãy truyền --read-only trừ khi bạn có trường hợp sử dụng cụ thể, được kiểm soát cho thao tác ghi. Để --allow-deletes tắt trừ khi bạn đặc biệt cần ngữ nghĩa DELETE qua execute.

⚠️ Hạn chế

Phân tích dữ liệu

Bản chất của các công cụ trò chuyện AI hiện tại và chính giao thức MCP khiến việc phân tích lượng lớn dữ liệu trở nên không thực tế. Hầu hết các máy khách MCP hiện không hỗ trợ chuỗi lệnh gọi công cụ (sử dụng đầu ra của công cụ này làm đầu vào cho công cụ tiếp theo) và thay vào đó quay lại sao chép kết quả theo từng token, điều này thường dẫn đến ảo giác. Nếu bạn đang tìm cách xử lý dữ liệu lịch sử từ phiên bản Octopus của mình cho mục đích phân tích, chúng tôi khuyên bạn nên sử dụng trực tiếp API hoặc viết máy khách MCP của riêng bạn có khả năng xử lý kết quả lệnh gọi công cụ theo chương trình.

Hiệu suất

Máy chủ MCP về mặt kỹ thuật chỉ là một lớp mỏng trên API Octopus Server hiện có. Do đó, nó có khả năng truy xuất lượng lớn dữ liệu (ví dụ: yêu cầu hàng nghìn triển khai). Những truy vấn như vậy có thể ảnh hưởng đáng kể đến hiệu suất của phiên bản của bạn. Hướng dẫn mô hình của bạn chỉ truy xuất tập dữ liệu tối thiểu cần thiết (hầu hết các mô hình đều làm rất tốt điều này ngay từ đầu).

🤝 Đóng góp

Chúng tôi hoan nghênh mọi đóng góp! :heart: Vui lòng đọc Hướng dẫn đóng góp để biết thông tin về cách tham gia vào dự án này.

Chúng tôi rất mong muốn được biết cách bạn dự định sử dụng Octopus MCP Server và những tính năng bạn muốn thấy trong các phiên bản tương lai.

Vui lòng sử dụng Issues để gửi phản hồi hoặc yêu cầu tính năng.

Nếu bạn là khách hàng hiện tại của Octopus, vui lòng báo cáo mọi sự cố bạn gặp phải khi sử dụng máy chủ MCP của chúng tôi cho đội ngũ hỗ trợ. Điều này sẽ đảm bảo bạn nhận được phản hồi kịp thời trong phạm vi cam kết hỗ trợ tiêu chuẩn của chúng tôi.

🙋 Câu hỏi thường gặp

Bạn có kế hoạch phát hành máy chủ MCP từ xa không?

Chúng tôi đang làm việc để tích hợp máy chủ MCP trực tiếp vào Octopus Server. Điều này sẽ mở ra cơ hội để chúng tôi xây dựng các công cụ MCP phức tạp hơn, cũng như:

  • Trao cho Quản trị viên Octopus quyền kiểm soát chi tiết hơn đối với các máy khách MCP
  • Hỗ trợ OAuth nguyên bản cho xác thực máy khách
  • Tích hợp các công cụ quét bảo mật vào đầu ra MCP

Nếu bạn quan tâm đến điều này, vui lòng đăng ký sự quan tâm của bạn trên mục lộ trình của chúng tôi.

Giấy phép

Dự án này được cấp phép theo các điều khoản của giấy phép mã nguồn mở Mozilla Public License 2.0.