Octopus Deploy Official MCP Server

ทางการ

MCP Server ของ Octopus มอบเครื่องมืออันทรงพลังให้ผู้ช่วย AI ของคุณใช้ตรวจสอบ ค้นหา และวินิจฉัยปัญหาภายในอินสแตนซ์ Octopus ของคุณ เปลี่ยนให้เป็นเพื่อนร่วมทีม DevOps ที่ดีที่สุดของคุณ

GitHub
101
ลองใช้ MCP นี้ผู้สนับสนุน

คุณทำอะไรได้บ้างด้วย Octopus Deploy Official MCP?

  • ตรวจสอบการปรับใช้จาก URL — ขอให้ตรวจสอบการปรับใช้โดยวาง URL ของ Octopus; get_deployment_from_url จะส่งคืนบริบทและ ID งานสำหรับการติดตามผล
  • ค้นหาบันทึกงานการปรับใช้ — ใช้ grep_task_log เพื่อค้นหารูปแบบข้อผิดพลาดหรือความล้มเหลวในบันทึกกิจกรรมของงานโดยไม่ต้องดาวน์โหลดเนื้อหาทั้งหมดที่มีขนาดหลายเมกะไบต์
  • สร้างและปรับใช้รีลีส — ขอให้ create_release สำหรับโปรเจกต์ จากนั้น deploy_release ไปยังสภาพแวดล้อมที่ระบุ รวมถึงการปรับใช้แบบมีผู้เช่า
  • รัน runbooks ระหว่างสภาพแวดล้อม — ใช้ run_runbook เพื่อดำเนินการ runbook กับสภาพแวดล้อมหนึ่งหรือหลายสภาพแวดล้อม โดยรองรับการรันแบบมีผู้เช่าและตัวแปรที่แจ้งเตือน
  • ค้นหาและแก้ไขตัวแปรผู้เช่าที่ขาดหายไป — ใช้ get_missing_tenant_variables เพื่อระบุตัวแปรผู้เช่าที่ไม่มีค่า จากนั้นตรวจสอบด้วย get_tenant_variables
  • ตรวจสอบสถานะสดของ Kubernetes — ขอ get_kubernetes_live_status ของทรัพยากรสำหรับโปรเจกต์และสภาพแวดล้อมเพื่อวินิจฉัยปัญหาการปรับใช้

เอกสาร

[!WARNING] เลิกใช้งาน: MCP เซิร์ฟเวอร์นี้เลิกใช้งานแล้ว Remote MCP Server พร้อมใช้งานใน Octopus Server 2026.3 ขึ้นไป ดูเอกสาร Remote MCP Server

Octopus Deploy Logo

Octopus Deploy Official MCP Server

Octopus ช่วยให้การส่งมอบซอฟต์แวร์ไปยัง Kubernetes, คลาวด์หลายผู้ให้บริการ, โครงสร้างพื้นฐานภายในองค์กร และที่อื่นๆ เป็นเรื่องง่าย โดยอัตโนมัติการเผยแพร่ การปรับใช้ และการดำเนินงานของซอฟต์แวร์และปริมาณงาน AI ของคุณด้วยเครื่องมือที่สามารถจัดการ CD ในระดับขนาดใหญ่ในแบบที่เครื่องมืออื่นไม่สามารถทำได้

Model Context Protocol (MCP) ช่วยให้ผู้ช่วย AI ที่คุณใช้ในงานประจำวัน เช่น Claude Code หรือ ChatGPT เชื่อมต่อกับระบบและบริการที่คุณเป็นเจ้าของในรูปแบบมาตรฐาน ทำให้สามารถดึงข้อมูลจากระบบและบริการเหล่านั้นเพื่อตอบคำถามและทำงานต่างๆ ได้

Octopus MCP Server มอบเครื่องมืออันทรงพลังให้กับผู้ช่วย AI ของคุณ เพื่อให้สามารถตรวจสอบ ค้นหา และวินิจฉัยปัญหาภายในอินสแตนซ์ Octopus ของคุณ เปลี่ยนให้เป็นคู่หู DevOps สูงสุดของคุณ สำหรับรายการกรณีการใช้งานที่รองรับและตัวอย่างพรอมต์ ดูเอกสารของเรา

ความเข้ากันได้ของ Octopus Server

เครื่องมือส่วนใหญ่ที่เปิดเผยโดย MCP Server ใช้ API ที่เสถียรซึ่งพร้อมใช้งานตั้งแต่เวอร์ชัน 2021.1 ของ Octopus Server เป็นอย่างน้อย เครื่องมือที่ใหม่กว่าจะระบุเวอร์ชันขั้นต่ำที่รองรับในเอกสาร หรือคุณสามารถใช้อาร์กิวเมนต์บรรทัดคำสั่ง --list-tools-by-version เพื่อตรวจสอบว่าเครื่องมือเฉพาะเกี่ยวข้องกับเวอร์ชันของ Octopus อย่างไร

🚀 การติดตั้ง

ติดตั้งผ่าน Docker

ต้องระบุข้อมูลรับรองผ่านตัวแปรสภาพแวดล้อมเพื่อหลีกเลี่ยงการเปิดเผยในรายการกระบวนการของโฮสต์ (ps aux / /proc/<pid>/cmdline) URL ของ Octopus server ยังสามารถระบุได้ผ่านแฟล็ก --server-url

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

ตัวอย่างการกำหนดค่าแบบเต็ม (สำหรับ Claude Desktop, Claude Code และ 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"
      }
    },
  }
}

สำหรับผู้ใช้ Apple Mac คุณอาจต้องเพิ่มอาร์กิวเมนต์ต่อไปนี้ในการกำหนดค่าเพื่อบังคับให้ Docker ใช้แพลตฟอร์ม Linux:

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

เรากำลังวางแผนที่จะเผยแพร่บิลด์ ARM ดั้งเดิมในเร็วๆ นี้ เพื่อให้ไม่ต้องใช้อาร์กิวเมนต์เหล่านั้นอีกต่อไป

ติดตั้งผ่าน Node

ข้อกำหนด

การกำหนดค่า

ตัวอย่างการกำหนดค่าแบบเต็ม (สำหรับ Claude Desktop, Claude Code และ Cursor):

เปิดใช้งานเครื่องมือเขียน (ค่าเริ่มต้น):

{
  "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"
      }
    }
  }
}

โหมดอ่านอย่างเดียว (แนะนำสำหรับการผลิต):

{
  "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"
      }
    }
  }
}

Octopus MCP Server มักถูกกำหนดค่าภายใน AI Client ที่คุณเลือก

บรรจุเป็นแพ็คเกจ npm และดำเนินการผ่านคำสั่ง npx ของ Node ต้องระบุข้อมูลรับรอง (API key หรือ access token) ผ่านตัวแปรสภาพแวดล้อม — ไม่ยอมรับเป็นอาร์กิวเมนต์บรรทัดคำสั่งเพื่อหลีกเลี่ยงการเปิดเผยความลับในรายการกระบวนการ URL ของ Octopus server อาจระบุผ่านตัวแปรสภาพแวดล้อม OCTOPUS_SERVER_URL หรือแฟล็ก --server-url

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

หรือใช้ URL ของเซิร์ฟเวอร์บนบรรทัดคำสั่ง:

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

การรับรองความถูกต้อง

MCP server รองรับวิธีการรับรองความถูกต้องสองวิธี ทั้งสองวิธีระบุผ่านตัวแปรสภาพแวดล้อม — ไม่ยอมรับข้อมูลรับรองบนบรรทัดคำสั่งเนื่องจากแฟล็กมองเห็นได้ในรายการกระบวนการของโฮสต์สำหรับผู้ใช้ในเครื่องทุกคน

API Key (แนะนำสำหรับการใช้งานแบบโต้ตอบ)

API keys เป็นวิธีการรับรองความถูกต้องมาตรฐานสำหรับ Octopus Deploy คุณสามารถสร้างได้จากโปรไฟล์ผู้ใช้ Octopus Deploy ของคุณ

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

Access Token / Bearer Token (เฉพาะสถานการณ์อัตโนมัติ)

เซิร์ฟเวอร์ยังรองรับ access token ระยะสั้น (Bearer tokens) เป็นทางเลือกแทน API keys วิธีการรับรองความถูกต้องนี้มีไว้ สำหรับสถานการณ์อัตโนมัติเท่านั้น ที่ระบบภายนอกออก token ระยะสั้นให้กับ MCP server (เช่น CI/CD pipelines, การจัดระบบอัตโนมัติ หรือเวิร์กโฟลว์เครื่องต่อเครื่อง) อย่าใช้ Bearer tokens ที่มีอายุยาวนาน — ให้ใช้ API keys แทนสำหรับเซสชันแบบโต้ตอบหรือระยะยาว

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

ตัวอย่างการกำหนดค่าแบบเต็มด้วย access token:

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

หากระบุทั้ง API key และ access token access token จะมีความสำคัญกว่า วิธีการรับรองความถูกต้องที่ใช้งานอยู่จะถูกบันทึกในไฟล์บันทึก (กำหนดค่าได้ด้วย --log-file) เพื่อให้ผู้ปฏิบัติงานสามารถยืนยันได้ว่ากำลังใช้ข้อมูลรับรองใดอยู่

ตัวเลือกการกำหนดค่า

Octopus MCP Server รองรับตัวเลือกบรรทัดคำสั่งหลายรายการเพื่อปรับแต่งว่าเครื่องมือใดบ้างที่พร้อมใช้งาน

หากคุณไม่แน่ใจว่าต้องการเครื่องมือใด เราขอแนะนำให้รันโดยไม่มีตัวเลือกบรรทัดคำสั่งเพิ่มเติมและใช้ค่าเริ่มต้นที่ให้มา

ชุดเครื่องมือ

ใช้พารามิเตอร์ --toolsets เพื่อเปิดใช้งานกลุ่มเครื่องมือเฉพาะ:

# 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

ชุดเครื่องมือที่พร้อมใช้งาน:

  • core - การดำเนินการพื้นฐาน (เปิดใช้งานเสมอ)
  • projects - การดำเนินการโครงการ
  • deployments - การดำเนินการปรับใช้
  • releases - การจัดการเผยแพร่
  • runbooks - การค้นพบและการดำเนินการ Runbook
  • tasks - การดำเนินการงาน
  • tenants - การดำเนินการหลายผู้เช่า
  • kubernetes - การดำเนินการ Kubernetes
  • machines - การดำเนินการเป้าหมายการปรับใช้
  • certificates - การดำเนินการใบรับรอง
  • accounts - การดำเนินการบัญชี
  • interruptions - การดำเนินการแทรกแซงด้วยตนเองและการอนุมัติ
  • featureToggles - ตรวจสอบและปรับการสลับคุณลักษณะของลูกค้า
  • context - บริบทผู้ใช้และโครงการที่รับรองความถูกต้อง (ผู้ใช้ปัจจุบัน, สาขา Git)

โหมดอ่านอย่างเดียว

เซิร์ฟเวอร์ทำงานโดยเปิดใช้งานเครื่องมือเขียนเป็นค่าเริ่มต้น ส่ง --read-only เพื่อปิดใช้งานเครื่องมือเขียนทั้งหมดและบล็อก POST/PUT/PATCH/DELETE ผ่าน execute เครื่องมือคัดสรรส่วนใหญ่เป็นแบบอ่านอย่างเดียวอยู่แล้ว มีเพียงชุดเล็กๆ ที่ดำเนินการเขียน

เครื่องมือที่เปิดใช้งานการเขียน (เขียนเสมอ):

  • create_release - สร้างเผยแพร่ใหม่
  • deploy_release - ปรับใช้เผยแพร่ไปยังสภาพแวดล้อมและผู้เช่า
  • run_runbook - รัน runbook กับสภาพแวดล้อมหนึ่งรายการขึ้นไป (และผู้เช่าที่ไม่บังคับ)
  • update_feature_toggle - ปรับสถานะต่อสภาพแวดล้อมและเปอร์เซ็นต์การเปิดตัวบน feature toggle ที่มีอยู่

เครื่องมือที่เขียนตามเงื่อนไข: execute เป็น REST backstop ที่มีโครงสร้างซึ่งระดับ (อ่าน / เขียน / ลบ) ถูกกำหนดโดยวิธี HTTP ที่ส่งให้ ดูส่วน API Catalog & Backstop สำหรับรายละเอียด

เครื่องมือเขียนถูกควบคุมโดยพรอมต์การชักชวน MCP: ไคลเอนต์ที่รองรับการชักชวนจะถูกขอให้ยืนยันก่อนที่การเรียกจะดำเนินการ ไคลเอนต์ที่ไม่รองรับการชักชวนต้องส่ง confirm: true ในอาร์กิวเมนต์เครื่องมือ — มิฉะนั้นเครื่องมือจะหยุดทำงานพร้อมข้อผิดพลาด ตั้งค่า OCTOPUS_SKIP_ELICITATION=true เพื่อข้ามเกตทั้งหมด (มีไว้สำหรับระบบอัตโนมัติที่ไม่มีการดูแล)

เซิร์ฟเวอร์ใช้การจำแนกสามระดับอ่าน/เขียน/ลบ บังคับใช้ฝั่งเซิร์ฟเวอร์ตามวิธี HTTP (เอเจนต์ไม่สามารถเลี่ยงได้โดยการโกหกเกี่ยวกับเจตนา):

  • read — อนุญาตเสมอ คำขอ GET ผ่าน execute รวมถึงเครื่องมือ find_* / get_* / list_* ทั้งหมด
  • write — POST/PUT/PATCH ผ่าน execute และเครื่องมือเขียนเสมอด้านบน ถูกบล็อกเมื่อตั้งค่า --read-only
  • delete — DELETE ผ่าน execute ต้องใช้ --allow-deletes และถูกบล็อกเมื่อตั้งค่า --read-only ชุดเล็กๆ ของเส้นทางการลบที่หายนะ (เช่น DELETE /api/spaces/{id}, DELETE /api/users/{id}) และจุดสิ้นสุด API-key อยู่ใน denylist ที่ละเอียดอ่อนแบบฮาร์ดซึ่งละเว้นทั้งสองแฟล็ก
# 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

หมายเหตุด้านความปลอดภัย: ใช้ API key ที่มีสิทธิ์เหมาะสมและน้อยที่สุด — การดำเนินการเขียนสามารถสร้างเผยแพร่และเรียกใช้การปรับใช้ในอินสแตนซ์ Octopus ของคุณ สำหรับการผลิต พิจารณาส่ง --read-only เว้นแต่คุณมีกรณีการใช้งานเฉพาะและควบคุมสำหรับการเขียน --allow-deletes ปิดอยู่โดยค่าเริ่มต้น เปิดใช้งานเฉพาะเมื่อเอเจนต์ต้องออกคำขอ DELETE ผ่าน execute หากคุณส่ง --allow-deletes ร่วมกับ --read-only เซิร์ฟเวอร์จะพิมพ์คำเตือนเริ่มต้นไปยัง stderr — คำขอ DELETE ยังคงถูกบล็อกโดยเกตอ่านอย่างเดียว

ตัวอย่างที่สมบูรณ์

ตัวอย่างทั้งหมดด้านล่างถือว่าตั้งค่า OCTOPUS_API_KEY ในสภาพแวดล้อม แฟล็ก --server-url แสดงเพื่อความชัดเจน แต่สามารถระบุผ่าน 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

อาร์กิวเมนต์บรรทัดคำสั่งอื่นๆ

  • --read-only - เปิดใช้งานโหมดอ่านอย่างเดียว: ปิดใช้งานเครื่องมือเขียนคัดสรรทั้งหมดและบล็อก POST/PUT/PATCH/DELETE ผ่าน execute การเขียนเปิดใช้งานโดยค่าเริ่มต้น แฟล็กนี้ปิดใช้งาน ดู โหมดอ่านอย่างเดียว
  • --allow-deletes - อนุญาตคำขอ DELETE ผ่านเครื่องมือ execute ละเว้น (พร้อมคำเตือนเริ่มต้น) เมื่อตั้งค่า --read-only ค่าเริ่มต้น false
  • --log-level <level> - ระดับบันทึกขั้นต่ำ (info, error)
  • --log-file <path> - เส้นทางหรือชื่อไฟล์บันทึก หากไม่ระบุ บันทึกจะเขียนไปยังคอนโซลเท่านั้น
  • -q, --quiet - ปิดใช้งานการบันทึกไฟล์ บันทึกเฉพาะข้อผิดพลาดไปยังคอนโซล
  • --list-tools-by-version - แสดงรายการเครื่องมือที่ลงทะเบียนทั้งหมดตามเวอร์ชัน Octopus Server ที่รองรับและออก

🔨 เครื่องมือ

เครื่องมือตาม URL

เริ่มต้นอย่างรวดเร็ว: วาง URL ของ Octopus โดยตรงเพื่อตรวจสอบปัญหาโดยไม่ต้องแยก ID ด้วยตนเอง

  • get_deployment_from_url: รับรายละเอียดการปรับใช้จาก URL การปรับใช้ (ส่งคืน taskId สำหรับการติดตามผล)
  • get_task_from_url: รับรายละเอียดงานและบันทึกจาก URL งาน

เวิร์กโฟลว์การตรวจสอบการปรับใช้:

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 })

การตรวจสอบงาน (URL งานโดยตรง):

get_task_from_url with task URL
→ Returns task details and logs immediately

เครื่องมือเหล่านี้ช่วยลดการแยก ID ด้วยตนเองโดย:

  • แยกวิเคราะห์ URL โดยอัตโนมัติ
  • แก้ไข ID พื้นที่เป็นชื่อพื้นที่
  • ตรวจสอบรูปแบบ ID
  • ให้ข้อความแสดงข้อผิดพลาดที่ชัดเจน

ตัวอย่าง URL:

  • การปรับใช้: https://your-octopus.com/app#/Spaces-1/projects/my-app/deployments/Deployments-123
  • งาน: https://your-octopus.com/app#/Spaces-1/tasks/ServerTasks-456

ดู การทำงานกับ URL สำหรับเวิร์กโฟลว์ ตัวอย่าง และแนวทางปฏิบัติที่ดีที่สุดโดยละเอียด

เครื่องมือหลัก

  • list_spaces: แสดงรายการพื้นที่ทั้งหมดในอินสแตนซ์ Octopus Deploy
  • list_environments: แสดงรายการสภาพแวดล้อมทั้งหมดในพื้นที่ที่กำหนด

API Catalog & Backstop

เครื่องมือและทรัพยากรเหล่านี้ช่วยให้เอเจนต์เข้าถึงจุดสิ้นสุด REST ของ Octopus ที่ไม่มีเครื่องมือคัดสรรเฉพาะ โดยมีการควบคุมระหว่างอ่าน เขียน และลบอย่างเข้มงวดฝั่งเซิร์ฟเวอร์

  • grep_llms_txt: ค้นหาแคตตาล็อก Octopus API (octopus://api/llms.txt) ด้วยความหมายแบบ grep (เวอร์ชัน Octopus ขั้นต่ำที่รองรับ: 2026.2.3916) เนื้อหาของแคตตาล็อกมีขนาดใหญ่ (โดยทั่วไปมากกว่า 300+ KB) — เรียกใช้เครื่องมือนี้แทนการอ่านเนื้อหาทรัพยากรโดยตรง พารามิเตอร์เลียนแบบ GNU grep (pattern, caseInsensitive, invertMatch, fixedString, beforeContext, afterContext, maxCount) มีประโยชน์สำหรับการค้นหาจุดสิ้นสุด (POST /releases), การแจกแจงจุดสิ้นสุดการลบ (DELETE ), หรือการค้นหาประเภทเนื้อหาสำหรับการดำเนินการเขียน (Body: Create.*Command)
  • execute: ตัวสำรอง REST แบบมีโครงสร้าง เข้าถึงจุดสิ้นสุด Octopus REST ใด ๆ ภายใต้ /api วิธี HTTP เป็นตัวจำแนกการอ่าน/เขียน/ลบที่เชื่อถือได้ — ไม่ใช่แฟล็ก isWrite ที่ LLM สามารถตั้งค่าได้ การจำกัดวิธีถูกเขียนตายตัวบนฝั่งเซิร์ฟเวอร์:
    • GET อนุญาตเสมอ (ขึ้นอยู่กับการตรวจสอบรูปแบบเส้นทาง + รายการบล็อกข้อมูลละเอียดอ่อน)
    • POST/PUT/PATCH ถูกบล็อกเมื่อตั้งค่า --read-only; มิฉะนั้นต้องมีการยืนยันจากผู้ใช้ผ่านการสอบถาม
    • DELETE ต้องใช้ --allow-deletes (และถูกบล็อกเมื่อตั้งค่า --read-only) พร้อมกับข้อความสอบถาม "IRREVERSIBLE" ที่เข้มงวดกว่า
    • รายการบล็อกข้อมูลละเอียดอ่อน (จุดสิ้นสุดคีย์ API, DELETE /api/spaces/{id}, DELETE /api/users/{id}) ถูกบังคับใช้แม้เปิดแฟล็กทั้งสอง
    • เส้นทางต้องเป็น /api หรือเริ่มต้นด้วย /api/ — URL แบบสัมบูรณ์, เส้นทาง ~/api/... ที่สัมพันธ์กับ SDK, และเส้นทางที่สัมพันธ์กับโฮสต์นอก /api (เช่น /octopus/portal/...) ถูกปฏิเสธตั้งแต่ต้น ดังนั้น execute จึงถูกจำกัดอยู่ที่พื้นผิว Octopus REST API
    • รายการอนุญาตเส้นทางต่อชุดเครื่องมือใช้เฉพาะเมื่อ --toolsets ถูกจำกัดแคบลง เมื่อเปิดทุกชุดเครื่องมือ (ค่าเริ่มต้น หรือ --toolsets all ที่ชัดเจน) รายการอนุญาตจะถูกข้าม และเส้นทางใด ๆ ภายใต้ /api สามารถเข้าถึงได้ภายใต้เงื่อนไขข้างต้น เมื่อ --toolsets ถูกจำกัดแคบลง รายการอนุญาตจะกลายเป็นสวิตช์ปิด: เส้นทางจะถูกแก้ไขเฉพาะเมื่อชุดเครื่องมือที่เป็นเจ้าของถูกเปิดใช้งาน ดังนั้นการปิดใช้งานชุดเครื่องมือ (เช่น certificates) ทำให้เส้นทางของมันไม่สามารถเข้าถึงได้ผ่าน execute แม้บน GET

ข้อมูลแคตตาล็อกยังถูกเปิดเผยเป็นทรัพยากร MCP:

  • octopus://api/llms.txt — แคตตาล็อก Markdown ของทุกจุดสิ้นสุด Octopus REST (วิธี HTTP, เส้นทาง, พารามิเตอร์คิวรี, ประเภทคำขอ/การตอบสนอง) ต้องใช้ Octopus Server 2026.2.3916 หรือใหม่กว่า แคชในหน่วยความจำ 5 นาทีโดยใช้ URL เซิร์ฟเวอร์ที่กำหนดค่าเป็นคีย์ ควรใช้ grep_llms_txt มากกว่าการอ่านเนื้อหาตรง ๆ
  • octopus://api/capabilities — JSON อธิบายเซสชันที่กำลังทำงาน: เวอร์ชันเซิร์ฟเวอร์, ชุดเครื่องมือที่เปิดใช้งาน, เครื่องมือที่มีอยู่ (พร้อม minimumOctopusVersion ของมัน), และว่าเปิด --read-only / --allow-deletes หรือไม่ มีประโยชน์สำหรับเอเจนต์ในการค้นหาว่าอะไรเข้าถึงได้ในเซสชันนี้

โปรเจกต์

  • list_projects: แสดงรายการโปรเจกต์ทั้งหมดในพื้นที่ที่กำหนด

การปรับใช้

  • deploy_release: ปรับใช้รีลีสไปยังสภาพแวดล้อม (รองรับทั้งการปรับใช้แบบมีผู้เช่าและไม่มีผู้เช่า)
  • list_deployments: แสดงรายการการปรับใช้ในพื้นที่พร้อมตัวกรองเสริม

รีลีส

  • create_release: สร้างรีลีสใหม่สำหรับโปรเจกต์
  • find_releases: ค้นหารีลีสในพื้นที่ (สามารถดึงรีลีสเฉพาะด้วย ID หรือแสดงรายการ/กรองรีลีสตามโปรเจกต์)

รายละเอียดรีลีสยังมีเป็นทรัพยากร MCP ที่ octopus://spaces/{spaceName}/releases/{releaseId} — ดึงผ่าน resources/read (หรือเครื่องมือสำรอง read_resource) เพื่อรับเนื้อหารีลีสเต็มรูปแบบ รวมถึงบันทึกรีลีสและแพ็กเกจที่เลือก

รันบุ๊ก

  • find_runbooks: ค้นหารันบุ๊กในโปรเจกต์ (สามารถดึงรันบุ๊กเฉพาะด้วย ID หรือแสดงรายการ/กรองรันบุ๊กตามชื่อบางส่วน) แต่ละสรุปประกอบด้วย ID สแนปชอตที่เผยแพร่, โหมดหลายผู้เช่า, และขอบเขตสภาพแวดล้อม เพื่อให้ผู้เรียกสามารถเลือกเป้าหมายที่ถูกต้องก่อนรัน
  • run_runbook: รันรันบุ๊กกับสภาพแวดล้อมหนึ่งหรือมากกว่า รองรับการรันแบบมีผู้เช่า (ตามชื่อผู้เช่าหรือแท็กผู้เช่า), ตัวแปรที่สอบถาม, โหมดความล้มเหลวแบบนำทาง, ช่วงเวลาการรันตามกำหนดการ, และการรวม/แยกขั้นตอนหรือเครื่องจักร ค่าเริ่มต้นคือสแนปชอตที่เผยแพร่ของรันบุ๊กหากละเว้น runbookSnapshotId

เนื้อหารันบุ๊กเต็มรูปแบบ (รวมถึงฟิลด์นโยบายรันไทม์) มีเป็นทรัพยากร MCP ที่ octopus://spaces/{spaceName}/runbooks/{runbookId}

งาน

ข้อมูลงานถูกเปิดเผยเป็นทรัพยากร MCP เป็นหลัก ใช้ resources/read (หรือเครื่องมือสำรอง read_resource) กับหนึ่งใน:

  • octopus://spaces/{spaceName}/tasks/{taskId} — เมตาดาต้าน้ำหนักเบา (สถานะ, เวลา, แฟล็กความสำเร็จ)
  • octopus://spaces/{spaceName}/tasks/{taskId}/details — รายละเอียด ServerTaskDetails เต็มรูปแบบ (Progress, ต้นไม้ ActivityLogs, ฯลฯ)

สำหรับการค้นหาล็อก ใช้เครื่องมือ grep_task_log แทนทรัพยากร /log:

  • grep_task_log: ค้นหาล็อกกิจกรรมของงานโดยไม่ต้องดึงเนื้อหาเต็มรูปแบบ พารามิเตอร์เลียนแบบ GNU grep (pattern, caseInsensitive, invertMatch, fixedString, beforeContext, afterContext, maxCount) คืนบรรทัดที่ตรงกับ 1-indexed lineNumber, อาร์เรย์บริบทรอบข้างก่อน/หลังเสริม, และจำนวน totalMatches ทั่วทั้งล็อก

โดยตั้งใจไม่มีทรัพยากร /log: ล็อกกิจกรรมอาจมีขนาดหลายเมกะไบต์ และทรัพยากรที่ระบุแอดเดรสได้จะล่อให้ผู้เรียกดึงเนื้อหาทั้งหมดเมื่อ grep เกือบจะเป็นพรีมิทีฟที่ถูกต้องเสมอ

ผู้เช่า

  • find_tenants: ค้นหาผู้เช่าในพื้นที่ (สามารถดึงผู้เช่าเฉพาะด้วย ID หรือแสดงรายการ/ค้นหาผู้เช่าด้วยตัวกรอง)
  • get_tenant_variables: รับตัวแปรผู้เช่าตามประเภท (ทั้งหมด, ทั่วไป, หรือโปรเจกต์)
  • get_missing_tenant_variables: รับตัวแปรผู้เช่าที่ขาดค่า

Kubernetes

  • get_kubernetes_live_status: รับสถานะสดของทรัพยากร Kubernetes สำหรับโปรเจกต์และสภาพแวดล้อม (เวอร์ชันขั้นต่ำที่รองรับ: 2025.3)

เครื่องจักร (เป้าหมายการปรับใช้)

  • find_deployment_targets: ค้นหาเป้าหมายการปรับใช้ในพื้นที่ (สามารถดึงเป้าหมายเฉพาะด้วย ID หรือแสดงรายการ/ค้นหาเป้าหมายด้วยตัวกรอง)

ใบรับรอง

  • find_certificates: ค้นหาใบรับรองในพื้นที่ (สามารถดึงใบรับรองเฉพาะด้วย ID หรือแสดงรายการ/ค้นหาใบรับรองด้วยตัวกรอง)

บัญชี

  • find_accounts: ค้นหาบัญชีในพื้นที่ (สามารถดึงบัญชีเฉพาะด้วย ID หรือแสดงรายการ/ค้นหาบัญชีด้วยตัวกรอง)

การขัดจังหวะ

  • find_interruptions: ค้นหาการขัดจังหวะที่รอดำเนินการหรือในอดีต (การแทรกแซงด้วยตนเอง, การอนุมัติ, พรอมต์ความล้มเหลวแบบนำทาง) ในพื้นที่ โดยกรองตามงาน, โปรเจกต์, สภาพแวดล้อม, เอกสารที่เกี่ยวข้อง, ความรับผิดชอบ, หรือสถานะรอดำเนินการได้ คืนสรุปแบบสั้น; อ้างอิงทรัพยากร octopus://spaces/{spaceName}/interruptions/{interruptionId} สำหรับคำจำกัดความ Form เต็มรูปแบบ (ประเภทตัวควบคุม, คำแนะนำ Markdown, ตัวเลือกปุ่ม, ค่า Form.Values ที่ส่ง)

สวิตช์คุณสมบัติ

  • find_feature_toggles: แสดงรายการสวิตช์คุณสมบัติลูกค้าในโปรเจกต์ แต่ละสรุปประกอบด้วยสถานะต่อสภาพแวดล้อม (isEnabled, rolloutPercentage, clientRolloutPercentage) พร้อมกับ resourceUri เพื่อให้ตอบคำถาม "เปิด X ที่ไหน" ได้จากรายการตอบสนอง
  • update_feature_toggle: ปรับสวิตช์ที่มีอยู่ พื้นผิวแคบ — สลับสภาพแวดล้อมเปิด/ปิด, เปลี่ยนเปอร์เซ็นต์การเปิดตัว, หรืออัปเดตคำอธิบาย/สถานะเริ่มต้นระดับสวิตช์ ภายในดึงสวิตช์ปัจจุบัน, ใช้แพตช์ของคุณในหน่วยความจำ, และ PUT เนื้อหาที่รวมกัน ดังนั้นสภาพแวดล้อมและฟิลด์ที่ไม่กล่าวถึงจะถูกเก็บรักษา แพตช์ที่อ้างอิงสภาพแวดล้อมที่ไม่ได้กำหนดค่าบนสวิตช์จะถูกปฏิเสธ

เนื้อหาสวิตช์เต็มรูปแบบ (คำอธิบาย, ผู้เช่า, เซ็กเมนต์, เวอร์ชันขั้นต่ำ) มีเป็นทรัพยากร MCP ที่ octopus://spaces/{spaceName}/projects/{projectId}/featuretoggles/{slug} เนื้อหากลุ่มการเปิดตัวสามารถระบุแอดเดรสได้ที่ octopus://spaces/{spaceName}/projects/{projectId}/rolloutgroups/{rolloutGroupId} สำหรับการตรวจสอบแบบอ่านอย่างเดียว

นอกขอบเขต (ใช้ Octopus UI): การสร้างสวิตช์คุณสมบัติใหม่, การลบสวิตช์, การเปลี่ยนชื่อหรือแท็กใหม่, การแนบ/ถอดกลุ่มการเปิดตัว, การกำหนดเป้าหมายผู้เช่า, เซ็กเมนต์, ตัวกรองเวอร์ชันขั้นต่ำ, และการจัดการกลุ่มการเปิดตัว / ตัวระบุไคลเอ็นต์ SDK

เครื่องมือเพิ่มเติม

  • get_deployment_process: รับกระบวนการปรับใช้ด้วย ID สำหรับโปรเจกต์หรือรีลีส
  • get_variables: รับตัวแปรโปรเจกต์ทั้งหมดและตัวแปรชุดไลบรารีสำหรับโปรเจกต์ (รองรับโปรเจกต์ config-as-code ผ่าน gitRef)
  • get_branches: รับสาขา Git สำหรับโปรเจกต์ที่ควบคุมเวอร์ชัน (เวอร์ชันขั้นต่ำที่รองรับ: 2021.2)
  • get_current_user: รับข้อมูลเกี่ยวกับผู้ใช้ที่ตรวจสอบสิทธิ์ปัจจุบัน

🔒 ข้อพิจารณาด้านความปลอดภัย

Octopus MCP Server รวมถึงการดำเนินการอ่านและเขียน ข้อพิจารณาด้านความปลอดภัยที่สำคัญ:

การดำเนินการอ่าน

  • สามารถอ่านล็อกการปรับใช้เต็มรูปแบบ ซึ่งอาจรวมถึงความลับในการผลิตหากไม่ได้ทำเครื่องหมายเป็นความลับ
  • การเข้าถึงข้อมูลการกำหนดค่าที่ละเอียดอ่อนและตัวแปร
  • ใช้ความระมัดระวังเมื่อเชื่อมต่อกับเครื่องมือและโมเดลที่คุณไม่ไว้วางใจอย่างเต็มที่

การดำเนินการเขียน

โดยค่าเริ่มต้น การดำเนินการเขียนต่อไปนี้พร้อมใช้งาน:

  • การสร้างรีลีส: สามารถสร้างรีลีสใหม่สำหรับโปรเจกต์
  • การปรับใช้รีลีส: สามารถทริกเกอร์การปรับใช้ไปยังสภาพแวดล้อม (รวมถึงการผลิต)
  • การรันรันบุ๊ก: สามารถรันรันบุ๊กกับสภาพแวดล้อมและผู้เช่า
  • การอัปเดตสวิตช์คุณสมบัติ: สามารถสลับสถานะต่อสภาพแวดล้อมและเปลี่ยนเปอร์เซ็นต์การเปิดตัวบนสวิตช์ที่มีอยู่
  • POST/PUT/PATCH ตามอำเภอใจผ่านตัวสำรอง execute: จำกัดอยู่ที่เส้นทางภายใต้ /api, พร้อมรายการบล็อกข้อมูลละเอียดอ่อนที่เปิดตลอดเวลา รายการอนุญาตเส้นทางต่อชุดเครื่องมือใช้เฉพาะเมื่อ --toolsets ถูกจำกัดแคบลง; เมื่อเปิดทุกชุดเครื่องมือ (ค่าเริ่มต้น) เกตเส้นทางเดียวคือขอบเขต /api และรายการบล็อกข้อมูลละเอียดอ่อน

ส่ง --read-only เพื่อปิดใช้งานทั้งหมดข้างต้น คำขอ DELETE ผ่าน execute ต้องใช้แฟล็ก --allow-deletes เพิ่มเติม — การเลือกเข้าร่วมโดยเจตนาสำหรับการดำเนินการที่ไม่สามารถย้อนกลับ — และยังคงถูกบล็อกเมื่อตั้งค่า --read-only

มาตรการความปลอดภัยที่สำคัญ:

  1. สิทธิ์น้อยที่สุด: ใช้คีย์ API ที่มีสิทธิ์ขั้นต่ำที่จำเป็นสำหรับกรณีการใช้งานของคุณ
  2. เลือกเข้าร่วมโหมดอ่านอย่างเดียว: การเขียนเปิดใช้งานโดยค่าเริ่มต้น สำหรับการผลิต ส่ง --read-only เว้นแต่คุณมีกรณีการใช้งานเฉพาะและควบคุมได้สำหรับการดำเนินการเขียน DELETE ต้องใช้การเลือกเข้าร่วม --allow-deletes เพิ่มเติมเสมอ
  3. การจำกัดวิธีเป็นฝั่งเซิร์ฟเวอร์และเขียนตายตัว: วิธี HTTP ที่ส่งไปยัง execute เป็นตัวจำแนกที่เชื่อถือได้ เอเจนต์ไม่สามารถเลี่ยงเกตโดยแสร้งว่าการเรียกทำอะไร — คำขอ POST/PUT/PATCH/DELETE ได้รับการจำกัดตามระดับโดยไม่คำนึงถึงข้อความในเนื้อหาคำขอ
  4. การกรองชุดเครื่องมือทำหน้าที่เป็นสวิตช์ปิด: การจำกัด --toolsets แคบลงลบทั้งเครื่องมือที่ดูแลของชุดเครื่องมือที่ปิดใช้งานและเส้นทางของมันจากรายการอนุญาต execute (รายการอนุญาตถูกปรึกษาเฉพาะเมื่อชุดเครื่องมือถูกจำกัดแคบลง; เมื่อเปิดทุกชุดเครื่องมือ execute ถูกจำกัดโดยการตรวจสอบรูปร่าง /api และรายการบล็อกข้อมูลละเอียดอ่อนแทน)
  5. ความเสี่ยงการฉีดพรอมต์: การรันเอเจนต์ในลักษณะอัตโนมัติเต็มรูปแบบอาจทำให้คุณเสี่ยงต่อการโจมตีแบบฉีดพรอมต์

คำแนะนำ: สำหรับสภาพแวดล้อมการผลิต ส่ง --read-only เว้นแต่คุณมีกรณีการใช้งานเฉพาะและควบคุมได้สำหรับการดำเนินการเขียน ปล่อย --allow-deletes ไว้เว้นแต่คุณต้องการความหมาย DELETE ผ่าน execute โดยเฉพาะ

⚠️ ข้อจำกัด

การวิเคราะห์ข้อมูล

ลักษณะของเครื่องมือแชท AI ปัจจุบันและโปรโตคอล MCP เองทำให้ไม่สามารถวิเคราะห์ข้อมูลจำนวนมากได้จริง ไคลเอ็นต์ MCP ส่วนใหญ่ในปัจจุบันไม่รองรับการเชื่อมโยงการเรียกเครื่องมือ (การใช้เอาต์พุตของเครื่องมือหนึ่งเป็นอินพุตของเครื่องมือถัดไป) และกลับไปคัดลอกผลลัพธ์แบบโทเคนต่อโทเคน ซึ่งมักนำไปสู่ภาพหลอน หากคุณต้องการประมวลผลข้อมูลประวัติจากอินสแตนซ์ Octopus ของคุณเพื่อการวิเคราะห์ เราขอแนะนำให้ใช้ API โดยตรงหรือเขียนไคลเอ็นต์ MCP ของคุณเองที่สามารถประมวลผลผลการเรียกเครื่องมือโดยโปรแกรม

ประสิทธิภาพ

MCP Server เป็นเพียงชั้นบาง ๆ บน API Octopus Server ที่มีอยู่ ดังนั้นจึงสามารถดึงข้อมูลจำนวนมากได้ (เช่น การขอการปรับใช้หลายพันรายการ) คำค้นหาดังกล่าวอาจมีผลกระทบอย่างมีนัยสำคัญต่อประสิทธิภาพของอินสแตนซ์ของคุณ สั่งให้โมเดลของคุณดึงเฉพาะชุดข้อมูลขั้นต่ำที่ต้องการ (โมเดลส่วนใหญ่ทำได้ดีมากจากกล่อง)

🤝 การมีส่วนร่วม

Contributions are welcome! :heart: Please read our Contributing Guide for information about how to get involved in this project.

We are eager to hear how you plan to use Octopus MCP Server and what features you would like to see included in future version.

Please use Issues to provide feedback, or request features.

If you are a current Octopus customer, please report any issues you experience using our MCP server to our support team. This will ensure you get a timely response within our standard support guarantees.

🙋 คำถามที่พบบ่อย

คุณมีแผนที่จะเปิดตัว MCP server แบบระยะไกลหรือไม่?

เรากำลังดำเนินการผสานรวม MCP server เข้ากับ Octopus Server โดยตรง ซึ่งจะเปิดโอกาสให้เราสร้างเครื่องมือ MCP ที่ซับซ้อนมากขึ้น รวมถึง:

  • ให้ผู้ดูแลระบบ Octopus ควบคุมไคลเอนต์ MCP ได้ละเอียดยิ่งขึ้น
  • รองรับ OAuth สำหรับการตรวจสอบสิทธิ์ไคลเอนต์โดยกำเนิด
  • ผสานรวมเครื่องมือสแกนความปลอดภัยเข้ากับเอาต์พุตของ MCP

หากคุณสนใจ โปรดลงทะเบียนความสนใจของคุณใน รายการแผนงานของเรา

สัญญาอนุญาต

โครงการนี้อยู่ภายใต้สัญญาอนุญาตโอเพนซอร์ส Mozilla Public License 2.0