Octopus Deploy Official MCP Server

ทางการ

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

เอกสาร

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 วิธีการรับรองความถูกต้องนี้มีจุดประสงค์สำหรับสถานการณ์อัตโนมัติเท่านั้น ซึ่งระบบภายนอกจะออกโทเค็นอายุสั้นให้กับ MCP server (เช่น ไปป์ไลน์ CI/CD, การประสานงานอัตโนมัติ หรือเวิร์กโฟลว์ระหว่างเครื่อง) อย่าใช้ Bearer token ที่มีอายุยาวนาน — ให้ใช้ 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 - การค้นหาและดำเนินการรันบุ๊ก
  • tasks - การดำเนินการเกี่ยวกับงาน
  • tenants - การดำเนินการเกี่ยวกับผู้เช่าหลายราย
  • kubernetes - การดำเนินการเกี่ยวกับ Kubernetes
  • machines - การดำเนินการเกี่ยวกับเป้าหมายการปรับใช้
  • certificates - การดำเนินการเกี่ยวกับใบรับรอง
  • accounts - การดำเนินการเกี่ยวกับบัญชี
  • interruptions - การดำเนินการเกี่ยวกับการแทรกแซงด้วยตนเองและการอนุมัติ
  • featureToggles - ตรวจสอบและปรับแต่ง feature toggles ของลูกค้า
  • context - บริบทผู้ใช้ที่รับรองความถูกต้องและโปรเจกต์ (ผู้ใช้ปัจจุบัน, สาขา Git)

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

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

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

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

เครื่องมือที่เขียนแบบมีเงื่อนไข: execute เป็นตัวป้องกัน REST ที่มีโครงสร้าง ซึ่งระดับ (อ่าน / เขียน / ลบ) ถูกกำหนดโดยเมธอด 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 อยู่ในรายการปฏิเสธที่ละเอียดอ่อนแบบตายตัวซึ่งไม่สนใจทั้งสองแฟล็ก
# 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: ค้นหาแคตตาล็อก API ของ Octopus (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 แบบมีโครงสร้าง เข้าถึงเอนด์พอยต์ REST ของ Octopus ใดๆ ภายใต้ /api เมธอด HTTP เป็นตัวจำแนกประเภทอ่าน/เขียน/ลบที่เชื่อถือได้ — ไม่ใช่แฟล็ก isWrite ที่ LLM สามารถตั้งค่าได้ การควบคุมเมธอดถูกฮาร์ดโค้ดฝั่งเซิร์ฟเวอร์:
    • GET อนุญาตเสมอ (ขึ้นอยู่กับการตรวจสอบรูปแบบพาธ + รายการปฏิเสธที่ละเอียดอ่อน)
    • POST/PUT/PATCH ถูกบล็อกเมื่อตั้งค่า --read-only; มิฉะนั้นต้องได้รับการยืนยันจากผู้ใช้ผ่านการสอบถาม
    • DELETE ต้องการ --allow-deletes (และถูกบล็อกเมื่อตั้งค่า --read-only) พร้อมข้อความสอบถาม "IRREVERSIBLE" ที่เข้มงวดกว่า
    • รายการปฏิเสธที่ละเอียดอ่อน (เอนด์พอยต์ API-key, DELETE /api/spaces/{id}, DELETE /api/users/{id}) ถูกบังคับใช้แม้เปิดทั้งสองแฟล็ก
    • พาธต้องเป็น /api หรือเริ่มต้นด้วย /api/ — URL แบบสัมบูรณ์, พาธ ~/api/... แบบสัมพัทธ์ SDK, และพาธแบบสัมพัทธ์โฮสต์นอก /api (เช่น /octopus/portal/...) ถูกปฏิเสธตั้งแต่ต้น ดังนั้น execute จึงถูกจำกัดขอบเขตอยู่ที่พื้นผิว REST API ของ Octopus
    • รายการอนุญาตพาธต่อชุดเครื่องมือมีผลเฉพาะเมื่อ --toolsets ถูกจำกัดให้แคบลง เมื่อเปิดใช้งานทุกชุดเครื่องมือ (ค่าเริ่มต้น หรือ --toolsets all แบบระบุชัด) รายการอนุญาตจะถูกข้ามและพาธใดๆ ภายใต้ /api สามารถเข้าถึงได้ภายใต้เงื่อนไขข้างต้น เมื่อ --toolsets ถูกจำกัดให้แคบลง รายการอนุญาตจะกลายเป็นสวิตช์ตัดการทำงาน: พาธจะแก้ไขได้ก็ต่อเมื่อชุดเครื่องมือที่เป็นเจ้าของถูกเปิดใช้งาน ดังนั้นการปิดใช้งานชุดเครื่องมือ (เช่น certificates) จะทำให้พาธของมันไม่สามารถเข้าถึงได้ผ่าน execute แม้ใน GET

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

  • octopus://api/llms.txt — แคตตาล็อกมาร์กดาวน์ของทุกเอนด์พอยต์ REST ของ Octopus (เมธอด 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: รันรันบุ๊กกับหนึ่งสภาพแวดล้อมหรือมากกว่า รองรับการรันแบบมีผู้เช่า (ตามชื่อผู้เช่าหรือแท็กผู้เช่า), ตัวแปรพร้อมท์, โหมด guided failure, หน้าต่างรันตามกำหนดเวลา, และการรวม/ยกเว้นขั้นตอนหรือเครื่อง ค่าเริ่มต้นใช้สแนปช็อตที่เผยแพร่ของรันบุ๊กหากละเว้น runbookSnapshotId

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

งาน

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

  • octopus://spaces/{spaceName}/tasks/{taskId} — ข้อมูลเมตาแบบเบา (สถานะ, เวลา, แฟล็กการเสร็จสมบูรณ์)
  • octopus://spaces/{spaceName}/tasks/{taskId}/details — รายละเอียดงานเซิร์ฟเวอร์แบบเต็ม (ความคืบหน้า, ทรีบันทึกกิจกรรม ฯลฯ)

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

  • grep_task_log: ค้นหาบันทึกกิจกรรมของงานโดยไม่ต้องดึงเนื้อหาแบบเต็ม พารามิเตอร์เหมือนกับ GNU grep (pattern, caseInsensitive, invertMatch, fixedString, beforeContext, afterContext, maxCount) ส่งคืนบรรทัดที่ตรงกันพร้อม lineNumber แบบ 1-index, อาร์เรย์บริบทก่อน/หลังเสริม, และจำนวน 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: ค้นหาการขัดจังหวะที่ค้างอยู่หรือในอดีต (การแทรกแซงด้วยตนเอง, การอนุมัติ, พร้อมท์ guided-failure) ในพื้นที่ พร้อมตัวกรองเสริมตามงาน, โปรเจกต์, สภาพแวดล้อม, เอกสารที่เกี่ยวข้อง, ความรับผิดชอบ, หรือสถานะค้างอยู่ ส่งคืนสรุปแบบย่อ; อ้างอิงทรัพยากร octopus://spaces/{spaceName}/interruptions/{interruptionId} สำหรับคำจำกัดความฟอร์มแบบเต็ม (ประเภทการควบคุม, คำแนะนำมาร์กดาวน์, ตัวเลือกปุ่ม, ค่าฟอร์มที่ส่ง)

การสลับฟีเจอร์

  • 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} สำหรับการตรวจสอบแบบอ่านอย่างเดียว

นอกขอบเขต (ใช้ UI ของ Octopus): การสร้างการสลับฟีเจอร์ใหม่, การลบการสลับ, การเปลี่ยนชื่อหรือแท็กใหม่, การแนบ/ถอดกลุ่มการเปิดตัว, การกำหนดเป้าหมายผู้เช่า, เซ็กเมนต์, ตัวกรองเวอร์ชันขั้นต่ำ, และการจัดการกลุ่มการเปิดตัว / ตัวระบุไคลเอนต์ 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 ที่มีอยู่ ดังนั้นจึงสามารถดึงข้อมูลจำนวนมากได้ (เช่น การขอการปรับใช้หลายพันรายการ) การสืบค้นดังกล่าวอาจมีผลกระทบอย่างมีนัยสำคัญต่อประสิทธิภาพของอินสแตนซ์ของคุณ แนะนำให้โมเดลของคุณดึงเฉพาะชุดข้อมูลขั้นต่ำที่จำเป็น (โมเดลส่วนใหญ่ทำได้ดีอยู่แล้วตั้งแต่เริ่มต้น)

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

ยินดีต้อนรับการมีส่วนร่วม! :heart: โปรดอ่าน คู่มือการมีส่วนร่วม สำหรับข้อมูลเกี่ยวกับวิธีการเข้าร่วมในโปรเจกต์นี้

เราอยากทราบว่าคุณวางแผนจะใช้ Octopus MCP Server อย่างไร และฟีเจอร์ใดที่คุณอยากเห็นในเวอร์ชันอนาคต

โปรดใช้ Issues เพื่อให้ข้อเสนอแนะ หรือขอฟีเจอร์

หากคุณเป็นลูกค้า Octopus ในปัจจุบัน โปรดรายงานปัญหาใดๆ ที่คุณพบจากการใช้ MCP server ของเราไปยัง ทีมสนับสนุน ซึ่งจะช่วยให้คุณได้รับการตอบกลับอย่างทันท่วงทีภายในการรับประกันการสนับสนุนมาตรฐานของเรา

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

คุณมีแผนจะปล่อย remote MCP server หรือไม่?

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

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

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

ใบอนุญาต

โปรเจกต์นี้ได้รับอนุญาตภายใต้เงื่อนไขของใบอนุญาตโอเพนซอร์ส Mozilla Public License 2.0